LibreNMS 是一套 Open source 的功能完整的網路監控系統,
使用 SNMP (Simple Network Management Protocol) 協定來搜集電腦系統的資料。
初次研究後,就發現它可以協助解決設備很多在線上,
測量設備穩定性的事情。
就算該裝置沒有支援 SNMP,也可以使用純 ping 的方式來監控所有線上的設備。
就一步一步帶大家怎麼設定與架設。
LibreNMS 系列文:
-
用 Docker 來架設 LibreNMS 架設網路服務監控系統
https://blog.jks.coffee/setup-librenms-using-docker/ -
用 Gmail 來串接 LibreNMS 的 Email 通知
https://blog.jks.coffee/librenms-gmail-alert-setup/ -
LibreNMS 串接 LINE 通知
https://blog.jks.coffee/librenms-line-message-alert-setup/
以下使用 Docker 裝在 Linux 主機上。
至於 Linux 版本就看大家喜好,
以下示範使用 Ubuntu 系統,若是其他發佈版可以依樣畫葫蘆稍加修改。
我們今天用的是 jarischaefer/docker-librenms
套件來架設,
如果作者版本有更新安裝方式,再煩請告知。
GitHub 位置:
https://github.com/jarischaefer/docker-librenms
Table of Contents
Step1. 產生密鑰
使用指令產生密鑰
$ sudo docker run --rm jarischaefer/docker-librenms generate_key
每台系統密鑰皆不相同,不可以直接複製。
如果有多台要架設,請記得更換密鑰!(這步驟很常忘記)
Step2. 編輯 docker-compose.yml
有關 docker 的設定方式就不贅述了。
有用過 docker 的朋友應該很熟悉 docker-compose
這指令。
現在要來做一個新的 docker-compose.yml
。
docker-compose.yml
version: '3.5'
services:
web:
image: jarischaefer/docker-librenms
restart: always
ports:
- '80:80'
volumes:
- ./librenms_data/logs:/opt/librenms/logs
- ./librenms_data/rrd:/opt/librenms/rrd
environment:
APP_KEY: base64:NA......................................SdA=
DB_HOST: librenms_database
DB_USER: librenms
DB_PASS: Tuq.........tai
DB_NAME: librenms
POLLERS: 16
BASE_URL: http://192.168.1.2
TZ: Asia/Taipei
depends_on:
- mysql
mysql:
image: mariadb:10.5
container_name: librenms_database
restart: always
volumes:
- ./librenms_data/mysql:/var/lib/mysql
environment:
TZ: Asia/Taipei
MYSQL_ROOT_PASSWORD: Cho.........lan
MYSQL_USER: librenms
MYSQL_PASSWORD: Tuq.........tai
MYSQL_DATABASE: librenms
重要參數說明
web 部分
APP_KEY
:密鑰(每台電腦皆不同,請自行產生)DB_HOST
:mysql 的 IP 位址(不需修改)DB_USER
:mysql 使用者DB_PASS
:mysql 密碼DB_NAME
:mysql 資料庫名稱POLLERS
:輪詢器數量BASE_URL
:預設網址(很重要,請記得改!就算是本機服務,也請修改成正確的網址。)TZ
:時區,這裡設定台灣 (Asia/Taipei)
mysql 資料庫部分
這裡使用 MariaDB 資料庫,要換成 mysql 5.7 也可以。
TZ
:時區(與網頁伺服器一致即可)MYSQL_ROOT_PASSWORD
:資料庫 root 密碼MYSQL_USER
:使用者(與DB_USER
一致即可)MYSQL_PASSWORD
:密碼(與DB_PASS
一致即可)MYSQL_DATABASE
:資料庫名稱(與DB_NAME
一致即可)
Step3. 建立資料夾
建立相關路徑的資料夾,讓它能夠掛載。
$ mkdir -p ./librenms_data && \
mkdir -p ./librenms_data/logs && \
mkdir -p ./librenms_data/rrd && \
mkdir -p ./librenms_data/mysql
Step4. 啟動整組服務
利用 docker-compose
把整組服務啟動。
$ sudo docker-compose up -d
Step5. 初始化資料庫
服務整組起來之後,網頁瀏覽器應該可以看到這個訊息:
Database inconsistencies found during a database error, please fix to continue.
Your database is out of date!
不用太緊張,這是正常現象,等下下指令來初始化資料庫。
首先要先找到 librenms_web
的 container,
如果是 docker-compose 整組起來的話,可能會叫做 librenms_web_1
,
執行指令前可以用 docker ps
指令來查看你的目前起的服務名稱(或 ID),確認一下。
$ sudo docker exec librenms_web_1 setup_database
這步驟是初始化它 LibreNMS 的資料庫。
如果失敗了,整個服務會起不來。
Step6. 建立 admin 管理者
它服務跑起來預設是 「沒有任何帳號的」,
我們用該指令來建立 admin 管理者
$ sudo docker exec librenms_web_1 create_admin
librenms_web_1
名稱為 container_id,
可用 docker ps
指令來查看你的目前起的服務名稱(或 ID)。
這指令將會建立一個 admin 管理者:
- 帳號: admin
- 密碼: admin
- E-Mail: [email protected]
記得去改密碼。記得去改密碼。記得去改密碼。
很重要講三次。
瀏覽你的本機網址,就可以看到 LibreNMS 的主頁面了。