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:
parent
96b00b6f9c
commit
67e6921060
12 changed files with 3 additions and 339 deletions
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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`)
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
TZ=Europe/Paris
|
||||
PUID=1000
|
||||
PGID=1000
|
||||
|
||||
MYSQL_DATABASE=librenms
|
||||
MYSQL_USER=librenms
|
||||
MYSQL_PASSWORD=asupersecretpassword
|
||||
|
|
@ -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
|
||||
|
|
@ -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 * * * *
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue