sudo mkdir /var/librenms/ sudo chown 1000:1000 /var/librenms/ cd /var/librenms/
wget https://github.com/librenms/docker/raw/master/examples/compose/.env wget https://github.com/librenms/docker/raw/master/examples/compose/compose.yml wget https://github.com/librenms/docker/raw/master/examples/compose/librenms.env wget https://github.com/librenms/docker/raw/master/examples/compose/msmtpd.env
TZ=Asia/Taipei PUID=1000 PGID=1000 MYSQL_DATABASE=librenms MYSQL_USER=librenms MYSQL_PASSWORD=my_password999
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 [email protected]
docker compose up -d docker compose logs -f
cd /var/librenms docker compose down docker compose pull docker compose up -d
docker compose exec librenms lnms device:add 10.0.0.197 -c mypass001
docker compose exec librenms ./snmp-scan.py
0 * * * * cd /var/librenms && docker compose exec librenms ./snmp-scan.py > /tmp/snmp-scan.log 2>&1
crontab cron.txt crontab -l
docker compose exec -it librenms /usr/lib/monitoring-plugins/check_ssmtp -H 192.168.11.241 -p 465 -S -D 30,7 --sni mail.ichiayi.com docker compose exec -it librenms /usr/lib/monitoring-plugins/check_spop -H 192.168.11.241 -p 995 -S -D 25,7 --sni mail.ichiayi.com docker compose exec -it librenms /usr/lib/monitoring-plugins/check_simap -H 192.168.11.241 -p 993 -S -D 25,7 --sni mail.ichiayi.com
: com2sec mylibrenms 192.168.11.248/32 public :
但是這環境已經有 docker 網路, 所以 LibreNMS 連過去主機會使用到 Docker 的網段 Exp. 172.20.0.0/16
localadmin@pve-librenms:~$ docker network inspect librenms_default | grep "Subnet" "Subnet": "172.20.0.0/16",
因此需要將主機 snmpd.conf 的授權 IP 改成這 Docekr 網段 Exp.
: com2sec mylibrenms 172.20.0.0/16 public :
修改 snmpd.conf 後重啟 snmpd 服務就可
name: librenms networks: librenms-network: name: librenms-network ipam: driver: default config: - subnet: 172.20.0.0/16 gateway: 172.20.0.1 services: db: image: mariadb:10.5 container_name: librenms_db networks: - librenms-network command: - "mysqld" - "--innodb-file-per-table=1" - "--lower-case-table-names=0" - "--character-set-server=utf8mb4" - "--collation-server=utf8mb4_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 redis: image: redis:5.0-alpine container_name: librenms_redis networks: - librenms-network environment: - "TZ=${TZ}" restart: always msmtpd: image: crazymax/msmtpd:latest container_name: librenms_msmtpd networks: - librenms-network env_file: - "./msmtpd.env" restart: always librenms: image: librenms/librenms:latest container_name: librenms hostname: librenms networks: - librenms-network cap_add: - NET_ADMIN - NET_RAW ports: - target: 8000 published: 8000 protocol: tcp depends_on: - db - redis - 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 dispatcher: image: librenms/librenms:latest container_name: librenms_dispatcher hostname: librenms-dispatcher networks: - librenms-network cap_add: - NET_ADMIN - NET_RAW depends_on: - librenms - redis 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" - "DISPATCHER_NODE_ID=dispatcher1" - "SIDECAR_DISPATCHER=1" restart: always syslogng: image: librenms/librenms:latest container_name: librenms_syslogng hostname: librenms-syslogng networks: - librenms-network cap_add: - NET_ADMIN - NET_RAW depends_on: - librenms - redis 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 snmptrapd: image: librenms/librenms:latest container_name: librenms_snmptrapd hostname: librenms-snmptrapd networks: - librenms-network cap_add: - NET_ADMIN - NET_RAW depends_on: - librenms - redis ports: - target: 162 published: 162 protocol: tcp - target: 162 published: 162 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_SNMPTRAPD=1" restart: always
: librenms: image: librenms/librenms:latest : environment: : - "LISTEN_IPV6=false" :
docker compose up -d