diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 018141f..230f468 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.md @@ -18,21 +18,8 @@ > :warning: Only used if you enable and run a [sidecar dispatcher container](../notes/dispatcher-service.md) * `SIDECAR_DISPATCHER`: Set to `1` to enable sidecar dispatcher mode for this container (default `0`) -* `LIBRENMS_SERVICE_NODE_ID`: Unique node ID for your dispatcher service -* `LIBRENMS_SERVICE_POLLER_WORKERS`: Processes spawned for polling (default `24`) -* `LIBRENMS_SERVICE_SERVICES_WORKERS`: Processes spawned for service polling (default `8`) -* `LIBRENMS_SERVICE_DISCOVERY_WORKERS`: Processes spawned for discovery (default `16`) -* `LIBRENMS_SERVICE_POLLER_FREQUENCY`: Seconds between polling attempts (default `300`) -* `LIBRENMS_SERVICE_SERVICES_FREQUENCY`: Seconds between service polling attempts (default `300`) -* `LIBRENMS_SERVICE_DISCOVERY_FREQUENCY`: Seconds between polling attempts (default `21600`) -* `LIBRENMS_SERVICE_BILLING_FREQUENCY`: Seconds between polling attempts (default `300`) -* `LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY`: Billing interval (default `60`) -* `LIBRENMS_SERVICE_POLLER_DOWN_RETRY`: Seconds between failed polling attempts (default `60`) -* `LIBRENMS_SERVICE_LOGLEVEL`: Must be one of 'DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL' (default `INFO`) -* `LIBRENMS_SERVICE_UPDATE_FREQUENCY`: Seconds between LibreNMS update checks (default `86400`) -* `LIBRENMS_SERVICE_PING_ENABLED`: Enable fast ping scheduler (default `false`) -* `LIBRENMS_SERVICE_WATCHDOG_ENABLED`: Enable watchdog scheduler (default `false`) -* `REDIS_HOST`: Redis host for poller synchronization (default `localhost`) +* `DISPATCHER_NODE_ID`: Unique node ID for your dispatcher service +* `REDIS_HOST`: Redis host for poller synchronization * `REDIS_PORT`: Redis port (default `6379`) * `REDIS_PASSWORD`: Redis password * `REDIS_DB`: Redis database (default `0`) diff --git a/doc/notes/dispatcher-service.md b/doc/notes/dispatcher-service.md index 4b23423..1151319 100644 --- a/doc/notes/dispatcher-service.md +++ b/doc/notes/dispatcher-service.md @@ -5,8 +5,8 @@ If you want to enable the new [Dispatcher service](https://docs.librenms.org/Ext ```bash docker run -d --name librenms_dispatcher \ --env-file $(pwd)/librenms.env \ - -e LIBRENMS_SERVICE_NODE_ID=dispatcher1 \ -e SIDECAR_DISPATCHER=1 \ + -e DISPATCHER_NODE_ID=dispatcher1 \ -v librenms:/data \ librenms/librenms:latest ``` diff --git a/examples/compose/docker-compose.yml b/examples/compose/docker-compose.yml index 45cb4f7..9018466 100644 --- a/examples/compose/docker-compose.yml +++ b/examples/compose/docker-compose.yml @@ -106,7 +106,7 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "LIBRENMS_SERVICE_NODE_ID=dispatcher1" + - "DISPATCHER_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - "REDIS_PORT=6379" - "REDIS_DB=0" diff --git a/examples/compose/librenms.env b/examples/compose/librenms.env index 6fae16c..8454af4 100644 --- a/examples/compose/librenms.env +++ b/examples/compose/librenms.env @@ -11,21 +11,5 @@ MEMCACHED_PORT=11211 RRDCACHED_HOST=rrdcached RRDCACHED_PORT=42217 -LIBRENMS_SERVICE_POLLER_WORKERS=24 -LIBRENMS_SERVICE_SERVICES_WORKERS=8 -LIBRENMS_SERVICE_DISCOVERY_WORKERS=16 - -LIBRENMS_SERVICE_POLLER_FREQUENCY=300 -LIBRENMS_SERVICE_SERVICES_FREQUENCY=300 -LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=21600 -LIBRENMS_SERVICE_BILLING_FREQUENCY=300 -LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=60 -LIBRENMS_SERVICE_POLLER_DOWN_RETRY=60 -LIBRENMS_SERVICE_LOGLEVEL=INFO -LIBRENMS_SERVICE_UPDATE_FREQUENCY=86400 - -LIBRENMS_SERVICE_PING_ENABLED=false -LIBRENMS_SERVICE_WATCHDOG_ENABLED=false - LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/examples/pwd/librenms.yml b/examples/pwd/librenms.yml index 5dd15d4..99b6a7e 100644 --- a/examples/pwd/librenms.yml +++ b/examples/pwd/librenms.yml @@ -20,19 +20,6 @@ x-envlibrenms: &envlibrenms MEMCACHED_PORT: "11211" RRDCACHED_HOST: "rrdcached" RRDCACHED_PORT: "42217" - LIBRENMS_SERVICE_POLLER_WORKERS: "24" - LIBRENMS_SERVICE_SERVICES_WORKERS: "8" - LIBRENMS_SERVICE_DISCOVERY_WORKERS: "16" - LIBRENMS_SERVICE_POLLER_FREQUENCY: "300" - LIBRENMS_SERVICE_SERVICES_FREQUENCY: "300" - LIBRENMS_SERVICE_DISCOVERY_FREQUENCY: "21600" - LIBRENMS_SERVICE_BILLING_FREQUENCY: "300" - LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY: "60" - LIBRENMS_SERVICE_POLLER_DOWN_RETRY: "60" - LIBRENMS_SERVICE_LOGLEVEL: "INFO" - LIBRENMS_SERVICE_UPDATE_FREQUENCY: "86400" - LIBRENMS_SERVICE_PING_ENABLED: "false" - LIBRENMS_SERVICE_WATCHDOG_ENABLED: "false" LIBRENMS_WEATHERMAP: "true" LIBRENMS_WEATHERMAP_SCHEDULE: "*/5 * * * *" @@ -125,7 +112,7 @@ services: DB_USER: *MYSQL_USER DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" - LIBRENMS_SERVICE_NODE_ID: "dispatcher1234" + DISPATCHER_NODE_ID: "dispatcher1234" REDIS_HOST: "redis" REDIS_PORT: "6379" REDIS_DB: "0" @@ -150,7 +137,7 @@ services: DB_USER: *MYSQL_USER DB_PASSWORD: *MYSQL_PASSWORD DB_TIMEOUT: "60" - LIBRENMS_SERVICE_NODE_ID: "dispatcher5678" + DISPATCHER_NODE_ID: "dispatcher5678" REDIS_HOST: "redis" REDIS_PORT: "6379" REDIS_DB: "0" diff --git a/examples/traefik/docker-compose.yml b/examples/traefik/docker-compose.yml index df5c073..cc0f83b 100644 --- a/examples/traefik/docker-compose.yml +++ b/examples/traefik/docker-compose.yml @@ -138,7 +138,7 @@ services: - "DB_USER=${MYSQL_USER}" - "DB_PASSWORD=${MYSQL_PASSWORD}" - "DB_TIMEOUT=60" - - "LIBRENMS_SERVICE_NODE_ID=dispatcher1" + - "DISPATCHER_NODE_ID=dispatcher1" - "REDIS_HOST=redis" - "REDIS_PORT=6379" - "REDIS_DB=0" diff --git a/examples/traefik/librenms.env b/examples/traefik/librenms.env index 6cdca5c..b54dda2 100644 --- a/examples/traefik/librenms.env +++ b/examples/traefik/librenms.env @@ -11,21 +11,5 @@ MEMCACHED_PORT=11211 RRDCACHED_HOST=rrdcached RRDCACHED_PORT=42217 -LIBRENMS_SERVICE_POLLER_WORKERS=24 -LIBRENMS_SERVICE_SERVICES_WORKERS=8 -LIBRENMS_SERVICE_DISCOVERY_WORKERS=16 - -LIBRENMS_SERVICE_POLLER_FREQUENCY=300 -LIBRENMS_SERVICE_SERVICES_FREQUENCY=300 -LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=21600 -LIBRENMS_SERVICE_BILLING_FREQUENCY=300 -LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=60 -LIBRENMS_SERVICE_POLLER_DOWN_RETRY=60 -LIBRENMS_SERVICE_LOGLEVEL=INFO -LIBRENMS_SERVICE_UPDATE_FREQUENCY=86400 - -LIBRENMS_SERVICE_PING_ENABLED=false -LIBRENMS_SERVICE_WATCHDOG_ENABLED=false - LIBRENMS_WEATHERMAP=false LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * * diff --git a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh index e739f9b..fa64374 100644 --- a/rootfs/etc/cont-init.d/05-svc-dispatcher.sh +++ b/rootfs/etc/cont-init.d/05-svc-dispatcher.sh @@ -29,23 +29,7 @@ DB_USERNAME=${DB_USERNAME:-librenms} DB_TIMEOUT=${DB_TIMEOUT:-60} SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0} -#LIBRENMS_SERVICE_NODE_ID=${LIBRENMS_SERVICE_NODE_ID:-dispatcher1} - -LIBRENMS_SERVICE_POLLER_WORKERS=${LIBRENMS_SERVICE_POLLER_WORKERS:-24} -LIBRENMS_SERVICE_SERVICES_WORKERS=${LIBRENMS_SERVICE_SERVICES_WORKERS:-8} -LIBRENMS_SERVICE_DISCOVERY_WORKERS=${LIBRENMS_SERVICE_DISCOVERY_WORKERS:-16} - -LIBRENMS_SERVICE_POLLER_FREQUENCY=${LIBRENMS_SERVICE_POLLER_FREQUENCY:-300} -LIBRENMS_SERVICE_SERVICES_FREQUENCY=${LIBRENMS_SERVICE_SERVICES_FREQUENCY:-300} -LIBRENMS_SERVICE_DISCOVERY_FREQUENCY=${LIBRENMS_SERVICE_DISCOVERY_FREQUENCY:-21600} -LIBRENMS_SERVICE_BILLING_FREQUENCY=${LIBRENMS_SERVICE_BILLING_FREQUENCY:-300} -LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY=${LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY:-60} -LIBRENMS_SERVICE_POLLER_DOWN_RETRY=${LIBRENMS_SERVICE_POLLER_DOWN_RETRY:-60} -LIBRENMS_SERVICE_LOGLEVEL=${LIBRENMS_SERVICE_LOGLEVEL:-INFO} -LIBRENMS_SERVICE_UPDATE_FREQUENCY=${LIBRENMS_SERVICE_UPDATE_FREQUENCY:-86400} - -LIBRENMS_SERVICE_PING_ENABLED=${LIBRENMS_SERVICE_PING_ENABLED:-false} -LIBRENMS_SERVICE_WATCHDOG_ENABLED=${LIBRENMS_SERVICE_WATCHDOG_ENABLED:-false} +#DISPATCHER_NODE_ID=${DISPATCHER_NODE_ID:-dispatcher1} #REDIS_HOST=${REDIS_HOST:-localhost} REDIS_PORT=${REDIS_PORT:-6379} @@ -81,6 +65,14 @@ while ! ${dbcmd} -e "show databases;" > /dev/null 2>&1; do fi; done echo "Database ready!" +while ! ${dbcmd} -e "desc $DB_DATABASE.poller_cluster;" > /dev/null 2>&1; do + sleep 1 + counter=$((counter + 1)) + if [ ${counter} -gt ${DB_TIMEOUT} ]; then + >&2 echo "ERROR: Table $DB_DATABASE.poller_cluster does not exist on $DB_HOST" + exit 1 + fi; +done # Node ID if [ ! -f "/data/.env" ]; then @@ -88,9 +80,9 @@ if [ ! -f "/data/.env" ]; then exit 1 fi cat "/data/.env" >> "${LIBRENMS_PATH}/.env" -if [ -n "$LIBRENMS_SERVICE_NODE_ID" ]; then - echo "NODE_ID: $LIBRENMS_SERVICE_NODE_ID" - sed -i "s|^NODE_ID=.*|NODE_ID=$LIBRENMS_SERVICE_NODE_ID|g" "${LIBRENMS_PATH}/.env" +if [ -n "$DISPATCHER_NODE_ID" ]; then + echo "NODE_ID: $DISPATCHER_NODE_ID" + sed -i "s|^NODE_ID=.*|NODE_ID=$DISPATCHER_NODE_ID|g" "${LIBRENMS_PATH}/.env" fi # Redis @@ -106,26 +98,6 @@ REDIS_PASSWORD=${REDIS_PASSWORD} REDIS_DB=${REDIS_DB} EOL -# Configuration -cat > ${LIBRENMS_PATH}/config.d/dispatcher.php < /etc/services.d/dispatcher/run <