1
0
Fork 0
mirror of https://github.com/librenms/docker.git synced 2026-08-04 15:54:23 +00:00

Remove deprecated sidecar cron container

This commit is contained in:
CrazyMax 2020-07-03 18:24:48 +02:00
parent 96b00b6f9c
commit 67e6921060
No known key found for this signature in database
GPG key ID: 3248E46B6BB8C7F7
12 changed files with 3 additions and 339 deletions

View file

@ -24,7 +24,7 @@ If you are interested, [check out](https://hub.docker.com/r/crazymax/) my other
* Run as non-root user
* Multi-platform image
* [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service) or legacy [cron](doc/docker/environment-variables.md#cron-legacy) as "sidecar" containers
* [Dispatcher service](doc/docker/environment-variables.md#dispatcher-service) as "sidecar" container
* Syslog-ng support through a ["sidecar" container](doc/docker/environment-variables.md#syslog-ng)
* Ability to configure [distributed polling](https://docs.librenms.org/Extensions/Distributed-Poller/)
* Built-in LibreNMS [Weathermap plugin](https://docs.librenms.org/Extensions/Weathermap/)
@ -66,7 +66,6 @@ Image: librenms/librenms:latest
* [LNMS command](doc/notes/lnms-command.md)
* [Validate](doc/notes/validate.md)
* [Dispatcher service](doc/notes/dispatcher-service.md)
* [Cron (legacy)](doc/notes/cron.md)
* [Syslog-ng](doc/notes/syslog-ng.md)
* [Additional Monitoring plugins (Nagios)](doc/notes/additional-monitoring-plugins.md)
* [Upgrade](doc/upgrade.md)

View file

@ -37,25 +37,6 @@
* `REDIS_PASSWORD`: Redis password
* `REDIS_DB`: Redis database (default `0`)
### Cron (legacy)
> :warning: Only used if you enable and run a [sidecar cron container](../notes/cron.md)
* `SIDECAR_CRON`: Set to `1` to enable sidecar cron mode for this container (default `0`)
* `LIBRENMS_CRON_DISCOVERY_ENABLE`: Enable LibreNMS discovery for this container cronjobs (default `true`)
* `LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS`: Spawn multiple discovery.php processes in parallel (default `1`)
* `LIBRENMS_CRON_DAILY_ENABLE`: Enable LibreNMS daily script for this container cronjobs (default `true`)
* `LIBRENMS_CRON_ALERTS_ENABLE`: Enable LibreNMS alerts generation for this container cronjobs (default `true`)
* `LIBRENMS_CRON_BILLING_ENABLE`: Enable LibreNMS billing polling for this container cronjobs (default `true`)
* `LIBRENMS_CRON_BILLING_CALCULATE_ENABLE`: Enable LibreNMS billing for this container cronjobs (default `true`)
* `LIBRENMS_CRON_CHECK_SERVICES_ENABLE`: Enable LibreNMS service checks for this container cronjobs (default `true`)
* `LIBRENMS_CRON_POLLER_ENABLE`: Enable LibreNMS polling for this container cronjobs (default `true`)
* `LIBRENMS_CRON_SNMPSCAN_ENABLE`: Enable LibreNMS SNMP network scanning for this container cronjobs (default `false`)
* `LIBRENMS_CRON_SNMPSCAN_INTERVAL`: SNMP network scanning cron interval (daily, in "Minute Hour", default `5 0`)
* `LIBRENMS_CRON_SNMPSCAN_NETS`: Networks to scan for SNMP network scanning, in CIDR notation. Multiple networks can be specified separated by a comma. If this is not set the default is to scan networks defined in `$config['nets']`
* `LIBRENMS_CRON_SNMPSCAN_THREADS`: SNMP network scanning threads to use (default `32`)
* `LIBRENMS_CRON_SNMPSCAN_LOGFILE`: SNMP network scanning cron log file (default `/dev/null`)
### Distributed Poller
* `LIBRENMS_POLLER_THREADS`: Threads that `poller-wrapper.py` runs (default `16`)

View file

@ -1,16 +0,0 @@
## Cron (legacy)
If you want to enable the old crons, you have to run a "sidecar" container (see cron service in [docker-compose.yml](../../examples/compose-legacy/docker-compose.yml) example) or run a simple container like this :
```bash
docker run -d --name librenms_cron \
--env-file $(pwd)/librenms.env \
-e SIDECAR_CRON=1 \
-v librenms:/data \
librenms/librenms:latest
```
> `-v librenms:/data`<br />
> :warning: `librenms` must be a valid volume already attached to a LibreNMS container
> :no_entry: Can't be used with [sidecar dispatcher container](dispatcher-service.md).

View file

@ -12,5 +12,3 @@ docker run -d --name librenms_dispatcher \
> `-v librenms:/data`<br />
> :warning: `librenms` must be a valid volume already attached to a LibreNMS container
> :no_entry: Can't be used with [sidecar cron container](cron.md).

View file

@ -1,7 +0,0 @@
TZ=Europe/Paris
PUID=1000
PGID=1000
MYSQL_DATABASE=librenms
MYSQL_USER=librenms
MYSQL_PASSWORD=asupersecretpassword

View file

@ -1,134 +0,0 @@
version: "3.5"
services:
db:
image: mariadb:10.4
container_name: librenms_db
command:
- "mysqld"
- "--innodb-file-per-table=1"
- "--lower-case-table-names=0"
- "--character-set-server=utf8"
- "--collation-server=utf8_unicode_ci"
volumes:
- "./db:/var/lib/mysql"
environment:
- "TZ=${TZ}"
- "MYSQL_ALLOW_EMPTY_PASSWORD=yes"
- "MYSQL_DATABASE=${MYSQL_DATABASE}"
- "MYSQL_USER=${MYSQL_USER}"
- "MYSQL_PASSWORD=${MYSQL_PASSWORD}"
restart: always
memcached:
image: memcached:alpine
container_name: librenms_memcached
environment:
- "TZ=${TZ}"
restart: always
rrdcached:
image: crazymax/rrdcached
container_name: librenms_rrdcached
volumes:
- "./librenms/rrd:/data/db"
- "./rrd-journal:/data/journal"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "LOG_LEVEL=LOG_INFO"
- "WRITE_TIMEOUT=1800"
- "WRITE_JITTER=1800"
- "WRITE_THREADS=4"
- "FLUSH_DEAD_DATA_INTERVAL=3600"
restart: always
msmtpd:
image: crazymax/msmtpd:latest
container_name: librenms_msmtpd
env_file:
- "./msmtpd.env"
restart: always
librenms:
image: librenms/librenms:latest
container_name: librenms
domainname: example.com
hostname: librenms
ports:
- target: 8000
published: 8000
protocol: tcp
depends_on:
- db
- memcached
- rrdcached
- msmtpd
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "DB_TIMEOUT=60"
restart: always
cron:
image: librenms/librenms:latest
container_name: librenms_cron
domainname: example.com
hostname: librenms
depends_on:
- librenms
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "DB_TIMEOUT=60"
- "SIDECAR_CRON=1"
restart: always
syslog-ng:
image: librenms/librenms:latest
container_name: librenms_syslog
domainname: example.com
hostname: librenms
depends_on:
- librenms
ports:
- target: 514
published: 514
protocol: tcp
- target: 514
published: 514
protocol: udp
volumes:
- "./librenms:/data"
env_file:
- "./librenms.env"
environment:
- "TZ=${TZ}"
- "PUID=${PUID}"
- "PGID=${PGID}"
- "DB_HOST=db"
- "DB_NAME=${MYSQL_DATABASE}"
- "DB_USER=${MYSQL_USER}"
- "DB_PASSWORD=${MYSQL_PASSWORD}"
- "DB_TIMEOUT=60"
- "SIDECAR_SYSLOGNG=1"
restart: always

View file

@ -1,29 +0,0 @@
MEMORY_LIMIT=256M
UPLOAD_MAX_SIZE=16M
OPCACHE_MEM_SIZE=128
REAL_IP_FROM=0.0.0.0/32
REAL_IP_HEADER=X-Forwarded-For
LOG_IP_VAR=remote_addr
LIBRENMS_POLLER_THREADS=16
LIBRENMS_POLLER_INTERVAL=5
LIBRENMS_CRON_DISCOVERY_ENABLE=true
LIBRENMS_CRON_DAILY_ENABLE=true
LIBRENMS_CRON_ALERTS_ENABLE=true
LIBRENMS_CRON_BILLING_ENABLE=true
LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=true
LIBRENMS_CRON_CHECK_SERVICES_ENABLE=true
LIBRENMS_CRON_POLLER_ENABLE=true
LIBRENMS_CRON_SNMPSCAN_ENABLE=true
LIBRENMS_CRON_SNMPSCAN_NETS=192.168.0.0/24,192.168.1.0/24
LIBRENMS_CRON_SNMPSCAN_LOGFILE=/data/logs/snmp-scan.log
LIBRENMS_SNMP_COMMUNITY=librenmsdocker
MEMCACHED_HOST=memcached
MEMCACHED_PORT=11211
RRDCACHED_HOST=rrdcached
RRDCACHED_PORT=42217
LIBRENMS_WEATHERMAP=false
LIBRENMS_WEATHERMAP_SCHEDULE=*/5 * * * *

View file

@ -1,10 +0,0 @@
# https://github.com/crazy-max/docker-msmtpd
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_TLS=on
SMTP_STARTTLS=on
SMTP_TLS_CHECKCERT=on
SMTP_AUTH=on
SMTP_USER=foo
SMTP_PASSWORD=bar
SMTP_FROM=foo@gmail.com

View file

@ -28,11 +28,10 @@ DB_NAME=${DB_NAME:-librenms}
DB_USER=${DB_USER:-librenms}
DB_TIMEOUT=${DB_TIMEOUT:-60}
SIDECAR_CRON=${SIDECAR_CRON:-0}
SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0}
SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0}
if [ "$SIDECAR_CRON" = "1" ] || [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then
if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ]; then
exit 0
fi

View file

@ -1,116 +0,0 @@
#!/usr/bin/with-contenv sh
CRONTAB_PATH="/var/spool/cron/crontabs"
SIDECAR_CRON=${SIDECAR_CRON:-0}
LIBRENMS_POLLER_THREADS=${LIBRENMS_POLLER_THREADS:-16}
LIBRENMS_POLLER_INTERVAL=${LIBRENMS_POLLER_INTERVAL:-5}
LIBRENMS_CRON_DISCOVERY_ENABLE=${LIBRENMS_CRON_DISCOVERY_ENABLE:-true}
LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS=${LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS:-1}
LIBRENMS_CRON_DAILY_ENABLE=${LIBRENMS_CRON_DAILY_ENABLE:-true}
LIBRENMS_CRON_ALERTS_ENABLE=${LIBRENMS_CRON_ALERTS_ENABLE:-true}
LIBRENMS_CRON_BILLING_ENABLE=${LIBRENMS_CRON_BILLING_ENABLE:-true}
LIBRENMS_CRON_BILLING_CALCULATE_ENABLE=${LIBRENMS_CRON_BILLING_CALCULATE_ENABLE:-true}
LIBRENMS_CRON_CHECK_SERVICES_ENABLE=${LIBRENMS_CRON_CHECK_SERVICES_ENABLE:-true}
LIBRENMS_CRON_POLLER_ENABLE=${LIBRENMS_CRON_POLLER_ENABLE:-true}
LIBRENMS_CRON_SNMPSCAN_ENABLE=${LIBRENMS_CRON_SNMPSCAN_ENABLE:-false}
LIBRENMS_CRON_SNMPSCAN_INTERVAL=${LIBRENMS_CRON_SNMPSCAN_INTERVAL:-"5 0"}
LIBRENMS_CRON_SNMPSCAN_NETS=${LIBRENMS_CRON_SNMPSCAN_NETS:-""}
LIBRENMS_CRON_SNMPSCAN_NETS=${LIBRENMS_CRON_SNMPSCAN_NETS:+",$LIBRENMS_CRON_SNMPSCAN_NETS"}
LIBRENMS_CRON_SNMPSCAN_NETS=${LIBRENMS_CRON_SNMPSCAN_NETS//,/ -r }
LIBRENMS_CRON_SNMPSCAN_THREADS=${LIBRENMS_CRON_SNMPSCAN_THREADS:-32}
LIBRENMS_CRON_SNMPSCAN_LOGFILE=${LIBRENMS_CRON_SNMPSCAN_LOGFILE:-/dev/null}
# Continue only if sidecar cron container
if [ "$SIDECAR_CRON" != "1" ]; then
exit 0
fi
echo ">>> WARNING: Sidecar cron container is deprecated and will be removed soon."
echo ">>> Please switch to the dispatcher service."
echo ">>> https://github.com/librenms/docker/blob/master/doc/notes/dispatcher-service.md"
rm -rf ${CRONTAB_PATH}
mkdir -m 0644 -p ${CRONTAB_PATH}
touch ${CRONTAB_PATH}/librenms
# Add crontab
cat "${LIBRENMS_PATH}/librenms.nonroot.cron" > ${CRONTAB_PATH}/librenms
sed -i -e "s/ librenms //" ${CRONTAB_PATH}/librenms
if [ "$LIBRENMS_CRON_DISCOVERY_ENABLE" != "true" ]; then
echo "Disable discovery cron"
sed -i "/discovery-wrapper.py/d" ${CRONTAB_PATH}/librenms
sed -i "/discovery.php/d" ${CRONTAB_PATH}/librenms
else
echo "Enable discovery cron"
sed -i -e "s/discovery-wrapper.py 1/discovery-wrapper.py ${LIBRENMS_CRON_DISCOVERY_WRAPPER_WORKERS}/" ${CRONTAB_PATH}/librenms
fi
if [ "$LIBRENMS_CRON_DAILY_ENABLE" != "true" ]; then
echo "Disable daily script cron"
sed -i "/daily.sh/d" ${CRONTAB_PATH}/librenms
else
echo "Enable daily script cron"
fi
if [ "$LIBRENMS_CRON_ALERTS_ENABLE" != "true" ]; then
echo "Disable alerts generation cron"
sed -i "/alerts.php/d" ${CRONTAB_PATH}/librenms
else
echo "Enable alerts generation cron"
fi
if [ "$LIBRENMS_CRON_BILLING_ENABLE" != "true" ]; then
echo "Disable billing polling cron"
sed -i "/poll-billing.php/d" ${CRONTAB_PATH}/librenms
else
echo "Enable billing polling cron"
fi
if [ "$LIBRENMS_CRON_BILLING_CALCULATE_ENABLE" != "true" ]; then
echo "Disable billing cron"
sed -i "/billing-calculate.php/d" ${CRONTAB_PATH}/librenms
else
echo "Enable billing cron"
fi
if [ "$LIBRENMS_CRON_CHECK_SERVICES_ENABLE" != "true" ]; then
echo "Disable service checks cron"
sed -i "/check-services.php/d" ${CRONTAB_PATH}/librenms
else
echo "Enable service checks cron"
fi
sed -i "/poller-wrapper.py/d" ${CRONTAB_PATH}/librenms
if [ "$LIBRENMS_CRON_POLLER_ENABLE" = "true" ]; then
echo "Enable polling cron"
cat >> ${CRONTAB_PATH}/librenms <<EOL
*/${LIBRENMS_POLLER_INTERVAL} * * * * /opt/librenms/cronic /opt/librenms/poller-wrapper.py ${LIBRENMS_POLLER_THREADS}
EOL
else
echo "Disable polling cron"
fi
if [ "$LIBRENMS_CRON_SNMPSCAN_ENABLE" = "true" ]; then
echo "Enable snmp-scan cron"
cat >> ${CRONTAB_PATH}/librenms <<EOL
${LIBRENMS_CRON_SNMPSCAN_INTERVAL} * * * /opt/librenms/snmp-scan.py ${LIBRENMS_CRON_SNMPSCAN_NETS} -t ${LIBRENMS_CRON_SNMPSCAN_THREADS} >> ${LIBRENMS_CRON_SNMPSCAN_LOGFILE} 2>&1
EOL
else
echo "Disable snmp-scan cron"
fi
# Fix perms
echo "Fixing crontabs permissions..."
chmod -R 0644 ${CRONTAB_PATH}
# Create service
mkdir -p /etc/services.d/cron
cat > /etc/services.d/cron/run <<EOL
#!/usr/bin/execlineb -P
with-contenv
exec busybox crond -f -L /dev/stdout
EOL
chmod +x /etc/services.d/cron/run

View file

@ -5,11 +5,10 @@ CRONTAB_PATH="/var/spool/cron/crontabs"
LIBRENMS_WEATHERMAP=${LIBRENMS_WEATHERMAP:-false}
LIBRENMS_WEATHERMAP_SCHEDULE=${LIBRENMS_WEATHERMAP_SCHEDULE:-*/5 * * * *}
SIDECAR_CRON=${SIDECAR_CRON:-0}
SIDECAR_DISPATCHER=${SIDECAR_DISPATCHER:-0}
SIDECAR_SYSLOGNG=${SIDECAR_SYSLOGNG:-0}
if [ "$SIDECAR_CRON" = "1" ] || [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$LIBRENMS_WEATHERMAP" != "true" ]; then
if [ "$SIDECAR_DISPATCHER" = "1" ] || [ "$SIDECAR_SYSLOGNG" = "1" ] || [ "$LIBRENMS_WEATHERMAP" != "true" ]; then
exit 0
fi