diff --git a/README.md b/README.md index 7a1121b..2597bc7 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/doc/docker/environment-variables.md b/doc/docker/environment-variables.md index 8de0c04..018141f 100644 --- a/doc/docker/environment-variables.md +++ b/doc/docker/environment-variables.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`) diff --git a/doc/notes/cron.md b/doc/notes/cron.md deleted file mode 100644 index ab40d91..0000000 --- a/doc/notes/cron.md +++ /dev/null @@ -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`
-> :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). diff --git a/doc/notes/dispatcher-service.md b/doc/notes/dispatcher-service.md index d34c4cb..c833a74 100644 --- a/doc/notes/dispatcher-service.md +++ b/doc/notes/dispatcher-service.md @@ -12,5 +12,3 @@ docker run -d --name librenms_dispatcher \ > `-v librenms:/data`
> :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). diff --git a/examples/compose-legacy/.env b/examples/compose-legacy/.env deleted file mode 100644 index d6c0aed..0000000 --- a/examples/compose-legacy/.env +++ /dev/null @@ -1,7 +0,0 @@ -TZ=Europe/Paris -PUID=1000 -PGID=1000 - -MYSQL_DATABASE=librenms -MYSQL_USER=librenms -MYSQL_PASSWORD=asupersecretpassword diff --git a/examples/compose-legacy/docker-compose.yml b/examples/compose-legacy/docker-compose.yml deleted file mode 100644 index ca43975..0000000 --- a/examples/compose-legacy/docker-compose.yml +++ /dev/null @@ -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 diff --git a/examples/compose-legacy/librenms.env b/examples/compose-legacy/librenms.env deleted file mode 100644 index e9b8a8d..0000000 --- a/examples/compose-legacy/librenms.env +++ /dev/null @@ -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 * * * * diff --git a/examples/compose-legacy/msmtpd.env b/examples/compose-legacy/msmtpd.env deleted file mode 100644 index 170bec9..0000000 --- a/examples/compose-legacy/msmtpd.env +++ /dev/null @@ -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 diff --git a/rootfs/etc/cont-init.d/04-svc-main.sh b/rootfs/etc/cont-init.d/04-svc-main.sh index fe332cb..a1861b2 100644 --- a/rootfs/etc/cont-init.d/04-svc-main.sh +++ b/rootfs/etc/cont-init.d/04-svc-main.sh @@ -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 diff --git a/rootfs/etc/cont-init.d/06-svc-cron.sh b/rootfs/etc/cont-init.d/06-svc-cron.sh deleted file mode 100644 index 2a95e1d..0000000 --- a/rootfs/etc/cont-init.d/06-svc-cron.sh +++ /dev/null @@ -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 <> ${CRONTAB_PATH}/librenms <> ${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 <