安裝 LibreNMS (Docker)

  • 預計採用 image - librenms/librenms:latest
  • 環境變數:
    • TZ : Asia/Taipei
    • LISTEN_IPV6 : false
    • DB_HOST : 172.16.0.201
    • DB_PORT : 8306
    • DB_USER : librenms
    • DB_PASSWORD : my_password999
  • Port : 8000 (http)
  • Volumes : /var/librenms/librenms ( config / plugins / rrd files/ logs… )
  • 建立 librenms 目錄

    sudo mkdir /var/librenms/
    sudo chown 1000:1000 /var/librenms/
    cd /var/librenms/

  • 下載 docker compsoe 設定檔

    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

  • 將 .env 內的設定改成符合自己的設定 Exp.
    TZ=Asia/Taipei
    PUID=1000
    PGID=1000
    
    MYSQL_DATABASE=librenms
    MYSQL_USER=librenms
    MYSQL_PASSWORD=my_password999
  • 將 msmtpd.env 內的設定改成符合自己的設定 Exp.
    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

  • 當啟動完成就可以直接輸入 http://server_ip:8000 來建立使用者
  • cd /var/librenms
    docker compose down
    docker compose pull
    docker compose up -d

  • 新增監控節點 Exp. 10.0.0.197 / snmp community : mypass001

    docker compose exec librenms lnms device:add 10.0.0.197 -c mypass001 

  • 手動執行掃描自動加入監控節點
    1. 掃描參數設定
      1. [Global Settings]→[Discovery]→[Networks]→[Autodiscovery Networks] 加入掃描網路範圍 Exp. 10.0.0.0/24
      2. [Global Settings]→[Poller]→[SNMP]→[Communities (priority)] 加入 SNMP Agent 端的 Communities Exp. nms_ckey001 (預設 public)
    2. 進行自動掃描

      docker compose exec librenms ./snmp-scan.py

  1. 已經安裝的 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. snmod.conf 內設定為

      :
      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 服務就可

  2. 第一次啟動時 docker compose logs librenms 一直出現 librenms | nginx: [emerg] socket() [::]:8000 failed (97: Address family not supported by protocol)
    • 主要是該 VM 沒有啟用支援 ipv6, 因此必須將 nginx 內的設定檔關閉 Listen ipv6
      1. 修改 compose.yml 設定 LISTEN_IPV6=false
        :
          librenms:
            image: librenms/librenms:latest
        :
            environment:
        :
              - "LISTEN_IPV6=false"
        :
      2. 重新啟動

        docker compose up -d

  • tech/k8s_librenms.txt
  • 上一次變更: 2024/03/02 09:06
  • jonathan