差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版 前次修改
下次修改
前次修改
tech:k8s_librenms [2023/10/26 11:51] – [參考網址] jonathantech:k8s_librenms [2025/02/27 14:14] (目前版本) – 增加驗證 Service(Nagios_Plugin) 設定參數 jonathan
行 65: 行 65:
 docker compose exec librenms lnms device:add 10.0.0.197 -c mypass001  docker compose exec librenms lnms device:add 10.0.0.197 -c mypass001 
 </cli> </cli>
-  * 手動執行掃描自動加入監控節點 <cli>+  * 手動執行掃描自動加入監控節點 
 +    - 掃描參數設定  
 +      - [Global Settings]->[Discovery]->[Networks]->[Autodiscovery Networks] 加入掃描網路範圍 Exp. 10.0.0.0/24 
 +      - [Global Settings]->[Poller]->[SNMP]->[Communities (priority)] 加入 SNMP Agent 端的 Communities Exp. nms_ckey001 (預設 public) 
 +    - 進行自動掃描<cli>
 docker compose exec librenms ./snmp-scan.py docker compose exec librenms ./snmp-scan.py
 </cli> </cli>
 +  * 設定每小時自動掃描自動加入監控節點
 +    - 建立 cron.txt <file>
 +0 * * * * cd /var/librenms && docker compose exec librenms ./snmp-scan.py > /tmp/snmp-scan.log 2>&1
 +</file>
 +    - 啟動 crontab <cli>
 +crontab cron.txt
 +crontab -l
 +</cli>
 + 
 +===== 驗證 Service(Nagios_Plugin) 設定參數 =====
 +  * 如果不確定參數該如何下可以正確運作, 可以先使用 cli 模式進行驗證 Exp. 檢查 Mail Server(192.168.11.241) 的 smtps / imaps / pop3s 的 SSL 憑證是否過期 <cli>
 +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
 +</cli>
 +    * Nagios_Plugin 存放在 librenms 容器內的 /usr/lib/monitoring-plugins/
 +    * 如果確定可以正確運作, service 的 parameter 欄位內容就是 -H 192.168.11.241 之後的參數字串 Exp. -p 465 -S -D 30,7 --sni mail.ichiayi.com
  
 +===== 設定告警條件(Alert Rules) =====
 +  * Alerts -> Alert Rules -> Click here to create the default alert rules! 
 +    * ++看畫面|{{:tech:螢幕擷取畫面_2024-01-29_095225.png|}}++
 +    * ++會建立出預設的告警條件項目 |{{:tech:螢幕擷取畫面_2024-01-29_095328.png|}}++
 +    * ++設定預設 Port status up/down 告警條件排除 docker 的介面|{{:tech:螢幕擷取畫面_2024-01-29_121432.png|}}++
 +
 +===== 設定告警通知(Alert Transports) =====
 +  * [[tech/librenms_line-notify|Line Notify]]
 ===== 常見問題 ===== ===== 常見問題 =====
-  * Q : 已經安裝的 LibreNMS 主機設定好 snmpd , 卻無法在 LibreNMS 成功加入, 出現 snmp 無法存取狀況 +  已經安裝的 LibreNMS 主機設定好 snmpd , 卻無法在 LibreNMS 成功加入, 出現 SNMP v2c: No reply with community public 無法存取狀況 
-    * 常見的問題是 LibreNMS 的 snmpd.conf 內所設定授權的 IP 範圍不正確, Exp. LibreNMS 主機 IP : 192.168.11.248 , 所以正常就會設定授權 IP 類似 192.168.11.248/32 Exp. Community: 就設定為<cli>+    * 常見的問題是 LibreNMS 的 snmpd.conf 內所設定授權的 IP 範圍不正確, Exp. LibreNMS 主機 IP : 192.168.11.248 , 所以正常就會設定授權 IP 類似 192.168.11.248/32 Exp. snmod.conf 內設定為<cli>
 : :
 com2sec mylibrenms 192.168.11.248/32 public com2sec mylibrenms 192.168.11.248/32 public
 : :
-</cli>但是這環境已經有 docker 網路, 所以 LibreNMS 連過去主機會使用到 Docker 的網段 Exp. 172.17.0.0/16 <cli> +</cli>但是這環境已經有 docker 網路, 所以 LibreNMS 連過去主機會使用到 Docker 的網段 Exp. 172.20.0.0/16 <cli> 
-root@pve-librenms:~# ip a | grep docker0 +localadmin@pve-librenms:~$ docker network inspect librenms_default | grep "Subnet" 
-4docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default +                    "Subnet""172.20.0.0/16",
-    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0+
 </cli>因此需要將主機 snmpd.conf 的授權 IP 改成這 Docekr 網段 Exp. <cli> </cli>因此需要將主機 snmpd.conf 的授權 IP 改成這 Docekr 網段 Exp. <cli>
 : :
-com2sec mylibrenms 172.17.0.0/16 public+com2sec mylibrenms 172.20.0.0/16 public 
 +
 +</cli>修改 snmpd.conf 後重啟 snmpd 服務就可 
 +    * 如果重新開機 docker network 網段會改變, 可以指定固定網段的 Docker 網路 Exp. librenms-network 修改 compose.yml<cli> 
 +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 
 +</cli> 
 +  - 第一次啟動時 docker compose logs librenms 一直出現 librenms  | nginx: [emerg] socket() [::]:8000 failed (97: Address family not supported by protocol) 
 +    * 主要是該 VM 沒有啟用支援 ipv6, 因此必須將 nginx 內的設定檔關閉 Listen ipv6  
 +      - 修改 compose.yml 設定 LISTEN_IPV6=false<file> 
 +
 +  librenms: 
 +    image: librenms/librenms:latest 
 +
 +    environment: 
 +
 +      - "LISTEN_IPV6=false"
 : :
 +</file>
 +      - 重新啟動 <cli>
 +docker compose up -d
 </cli> </cli>
  
  • tech/k8s_librenms.1698292310.txt.gz
  • 上一次變更: 2023/10/26 11:51
  • jonathan