From 6cece230dafcb86f9df68d4a85f16b4e4705a64c Mon Sep 17 00:00:00 2001 From: Tony Murray Date: Thu, 14 Jul 2022 08:18:47 -0500 Subject: [PATCH] Remove memcached and use redis fully (#286) --- README.md | 24 ++++++++++++------ examples/compose/docker-compose.yml | 24 ++++++++---------- examples/compose/librenms.env | 2 -- examples/pwd/librenms.yml | 26 +++++++------------- examples/rrdcached-server/docker-compose.yml | 24 ++++++++---------- examples/rrdcached-server/librenms.env | 2 -- examples/traefik/docker-compose.yml | 24 ++++++++---------- examples/traefik/librenms.env | 2 -- rootfs/etc/cont-init.d/03-config.sh | 10 -------- test/docker-compose.yml | 9 +------ test/librenms.env | 2 -- 11 files changed, 56 insertions(+), 93 deletions(-) diff --git a/README.md b/README.md index ec84018..b39d621 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ ___ * OPCache enabled to store precompiled script bytecode in shared memory * [s6-overlay](https://github.com/just-containers/s6-overlay/) as process supervisor * [Traefik](https://github.com/containous/traefik-library-image) as reverse proxy and creation/renewal of Let's Encrypt certificates (see [this template](examples/traefik)) -* [Memcached](https://github.com/docker-library/memcached) image ready to use for better scalability +* [Redis](https://github.com/docker-library/redis) image ready to use for better scalability * [RRDcached](https://github.com/crazy-max/docker-rrdcached) image ready to use for data caching and graphs * [msmtpd SMTP relay](https://github.com/crazy-max/docker-msmtpd) image to send emails * [MariaDB](https://github.com/docker-library/mariadb) image as database instance @@ -119,6 +119,21 @@ Image: librenms/librenms:latest * `REAL_IP_HEADER`: Request header field whose value will be used to replace the client address (default `X-Forwarded-For`) * `LOG_IP_VAR`: Use another variable to retrieve the remote IP address for access [log_format](http://nginx.org/en/docs/http/ngx_http_log_module.html#log_format) on Nginx. (default `remote_addr`) +### Redis Settings + + > Redis variables should be set on all containers and are required when running more than one dispatcher. + +* `REDIS_HOST`: Redis host for poller synchronization +* `REDIS_SENTINEL`: Redis Sentinel host for high availability Redis cluster +* `REDIS_SENTINEL_SERVICE`: Redis Sentinel service name (default `librenms`) +* `REDIS_SCHEME`: Redis scheme (default `tcp`) +* `REDIS_PORT`: Redis port (default `6379`) +* `REDIS_PASSWORD`: Redis password +* `REDIS_DB`: Redis database (default `0`) +* `REDIS_CACHE_DB`: Redis cache database (default `1`) +* `SESSION_DRIVER`: [Driver to use for session storage](https://github.com/librenms/librenms/blob/master/config/session.php) (default `file`) +* `CACHE_DRIVER`: [Driver to use for cache and locks](https://github.com/librenms/librenms/blob/master/config/cache.php) (default `database`) + ### Dispatcher service > **Warning** @@ -128,13 +143,6 @@ Image: librenms/librenms:latest * `SIDECAR_DISPATCHER`: Set to `1` to enable sidecar dispatcher mode for this container (default `0`) * `DISPATCHER_NODE_ID`: Unique node ID for your dispatcher service * `DISPATCHER_ARGS`: Additional args to pass to the [dispatcher service](https://github.com/librenms/librenms/blob/master/librenms-service.py) -* `REDIS_HOST`: Redis host for poller synchronization -* `REDIS_SENTINEL`: Redis Sentinel host for high availability Redis cluster -* `REDIS_SENTINEL_SERVICE`: Redis Sentinel service name (default `librenms`) -* `REDIS_SCHEME`: Redis scheme (default `tcp`) -* `REDIS_PORT`: Redis port (default `6379`) -* `REDIS_PASSWORD`: Redis password -* `REDIS_DB`: Redis database (default `0`) ### Syslog-ng diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index b6b6e0b..4192133 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -20,13 +20,6 @@ services: - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" restart: always - memcached: - image: memcached:alpine - container_name: librenms_memcached - environment: - - "TZ=${TZ}" - restart: always - redis: image: redis:5.0-alpine container_name: librenms_redis @@ -54,7 +47,7 @@ services: protocol: tcp depends_on: - db - - memcached + - redis - msmtpd volumes: - "./librenms:/data" @@ -70,8 +63,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" restart: always dispatcher: @@ -99,8 +92,8 @@ services: - "DB_TIMEOUT=60" - "DISPATCHER_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_DISPATCHER=1" restart: always @@ -134,8 +127,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SYSLOGNG=1" restart: always @@ -168,5 +161,8 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index d63137c..3494da9 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -7,8 +7,6 @@ REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=remote_addr LIBRENMS_SNMP_COMMUNITY=librenmsdocker -MEMCACHED_HOST=memcached -MEMCACHED_PORT=11211 LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index e8ebc6a..e2296c7 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -17,8 +17,6 @@ x-envlibrenms: &envlibrenms REAL_IP_HEADER: "X-Forwarded-For" LOG_IP_VAR: "remote_addr" LIBRENMS_SNMP_COMMUNITY: "librenmsdocker" - MEMCACHED_HOST: "memcached" - MEMCACHED_PORT: "11211" LIBRENMS_WEATHERMAP: "true" LIBRENMS_WEATHERMAP_SCHEDULE: "*/5 * * * *" @@ -41,12 +39,6 @@ services: MYSQL_PASSWORD: *MYSQL_PASSWORD restart: always - memcached: - image: memcached:alpine - environment: - TZ: *TZ - restart: always - redis: image: redis:5.0-alpine environment: @@ -63,7 +55,7 @@ services: - "8000:8000" depends_on: - db - - memcached + - redis volumes: - "librenms:/data" environment: @@ -77,8 +69,8 @@ services: DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" REDIS_HOST: "redis" - REDIS_PORT: "6379" - REDIS_DB: "0" + CACHE_DRIVER: "redis" + SESSION_DRIVER: "redis" restart: always dispatcher: @@ -104,8 +96,8 @@ services: DB_TIMEOUT: "60" DISPATCHER_NODE_ID: "dispatcher1234" REDIS_HOST: "redis" - REDIS_PORT: "6379" - REDIS_DB: "0" + CACHE_DRIVER: "redis" + SESSION_DRIVER: "redis" SIDECAR_DISPATCHER: "1" restart: always @@ -132,8 +124,8 @@ services: DB_TIMEOUT: "60" DISPATCHER_NODE_ID: "dispatcher5678" REDIS_HOST: "redis" - REDIS_PORT: "6379" - REDIS_DB: "0" + CACHE_DRIVER: "redis" + SESSION_DRIVER: "redis" SIDECAR_DISPATCHER: "1" restart: always @@ -158,8 +150,8 @@ services: DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" REDIS_HOST: "redis" - REDIS_PORT: "6379" - REDIS_DB: "0" + CACHE_DRIVER: "redis" + SESSION_DRIVER: "redis" SIDECAR_SYSLOGNG: "1" restart: always diff --git a/examples/rrdcached-server/docker-compose.yml b/examples/rrdcached-server/docker-compose.yml index b952bd9..c3a21c9 100644 --- a/examples/rrdcached-server/docker-compose.yml +++ b/examples/rrdcached-server/docker-compose.yml @@ -20,13 +20,6 @@ services: - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" restart: always - memcached: - image: memcached:alpine - container_name: librenms_memcached - environment: - - "TZ=${TZ}" - restart: always - redis: image: redis:5.0-alpine container_name: librenms_redis @@ -71,7 +64,7 @@ services: protocol: tcp depends_on: - db - - memcached + - redis - rrdcached - msmtpd volumes: @@ -88,8 +81,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" restart: always dispatcher: @@ -117,8 +110,8 @@ services: - "DB_TIMEOUT=60" - "DISPATCHER_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_DISPATCHER=1" restart: always @@ -152,8 +145,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SYSLOGNG=1" restart: always @@ -186,5 +179,8 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/rrdcached-server/librenms.env b/examples/rrdcached-server/librenms.env index b9d3908..9424710 100644 --- a/examples/rrdcached-server/librenms.env +++ b/examples/rrdcached-server/librenms.env @@ -7,8 +7,6 @@ REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=remote_addr LIBRENMS_SNMP_COMMUNITY=librenmsdocker -MEMCACHED_HOST=memcached -MEMCACHED_PORT=11211 RRDCACHED_SERVER=rrdcached:42217 LIBRENMS_WEATHERMAP=false diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index 81bc7f8..c6c5966 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -54,13 +54,6 @@ services: - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" restart: always - memcached: - image: memcached:alpine - container_name: librenms_memcached - environment: - - "TZ=${TZ}" - restart: always - redis: image: redis:5.0-alpine container_name: librenms_redis @@ -81,7 +74,7 @@ services: hostname: librenms depends_on: - db - - memcached + - redis - msmtpd volumes: - "./librenms:/data" @@ -105,8 +98,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" restart: always dispatcher: @@ -131,8 +124,8 @@ services: - "DB_TIMEOUT=60" - "DISPATCHER_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_DISPATCHER=1" restart: always @@ -163,8 +156,8 @@ services: - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - "REDIS_HOST=redis" - - "REDIS_PORT=6379" - - "REDIS_DB=0" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SYSLOGNG=1" restart: always @@ -194,5 +187,8 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" + - "REDIS_HOST=redis" + - "CACHE_DRIVER=redis" + - "SESSION_DRIVER=redis" - "SIDECAR_SNMPTRAPD=1" restart: always diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env index fa9ee04..5627e0d 100644 --- a/examples/traefik/librenms.env +++ b/examples/traefik/librenms.env @@ -7,8 +7,6 @@ REAL_IP_HEADER=X-Forwarded-For LOG_IP_VAR=http_x_forwarded_for LIBRENMS_SNMP_COMMUNITY=librenmsdocker -MEMCACHED_HOST=memcached -MEMCACHED_PORT=11211 LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/rootfs/etc/cont-init.d/03-config.sh b/rootfs/etc/cont-init.d/03-config.sh index 5829d1d..fc5b7d6 100644 --- a/rootfs/etc/cont-init.d/03-config.sh +++ b/rootfs/etc/cont-init.d/03-config.sh @@ -165,16 +165,6 @@ cat >${LIBRENMS_PATH}/config.d/services.php <${LIBRENMS_PATH}/config.d/memcached.php <${LIBRENMS_PATH}/config.d/rrdcached.php <