1
0
Fork 0
mirror of https://github.com/librenms/docker.git synced 2026-01-23 02:14:48 +00:00

Remove LIBRENMS_SERVICE_* env vars (now handle through WebUI)

Check poller_cluster table exists before running dispatcher
This commit is contained in:
CrazyMax 2020-07-03 20:04:52 +02:00
parent 9b875b5c42
commit db32c6e043
No known key found for this signature in database
GPG key ID: 3248E46B6BB8C7F7
8 changed files with 19 additions and 105 deletions

View file

@ -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`)

View file

@ -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
```

View file

@ -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"

View file

@ -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 * * * *

View file

@ -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"

View file

@ -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"

View file

@ -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 * * * *

View file

@ -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 <<EOL
<?php
\$config['service_poller_workers'] = ${LIBRENMS_SERVICE_POLLER_WORKERS};
\$config['service_services_workers'] = ${LIBRENMS_SERVICE_SERVICES_WORKERS};
\$config['service_discovery_workers'] = ${LIBRENMS_SERVICE_DISCOVERY_WORKERS};
\$config['service_poller_frequency'] = ${LIBRENMS_SERVICE_POLLER_FREQUENCY};
\$config['service_services_frequency'] = ${LIBRENMS_SERVICE_SERVICES_FREQUENCY};
\$config['service_discovery_frequency'] = ${LIBRENMS_SERVICE_DISCOVERY_FREQUENCY};
\$config['service_billing_frequency'] = ${LIBRENMS_SERVICE_BILLING_FREQUENCY};
\$config['service_billing_calculate_frequency'] = ${LIBRENMS_SERVICE_BILLING_CALCULATE_FREQUENCY};
\$config['service_poller_down_retry'] = ${LIBRENMS_SERVICE_POLLER_DOWN_RETRY};
\$config['service_loglevel'] = '${LIBRENMS_SERVICE_LOGLEVEL}';
\$config['service_update_frequency'] = ${LIBRENMS_SERVICE_UPDATE_FREQUENCY};
\$config['service_ping_enabled'] = ${LIBRENMS_SERVICE_PING_ENABLED};
\$config['service_watchdog_enabled'] = ${LIBRENMS_SERVICE_WATCHDOG_ENABLED};
EOL
# Create service
mkdir -p /etc/services.d/dispatcher
cat > /etc/services.d/dispatcher/run <<EOL