开源的SNMP网管系统LibreNMS
什么是 SNMP ?
簡單網絡管理協議( SNMP) 是專門設計用于在 IP 網絡管理網絡節點(服務器、工作站、路由器、交換機及 HUBS 等)的一種標準協議,它是一種應用層協議。SNMP 使網絡管理員能夠管理網絡效能,發現并解決網絡問題以及規劃網絡增長。通過 SNMP 接收隨機消息(及事件報告)獲知網絡出現問題。【百度百科】
什么是 LibreNMS ?
LibreNMS 是一套開源、功能齊全的網絡監控系統,基于 PHP 、MySQL、SNMP 技術開發,提供豐富的功能和設備支持。
前言
對于熟悉 Docker Compose 的人來說,LibreNMS 的安裝并不復雜,官方提供了安裝的 demo,在 https://github.com/librenms/docker/tree/master/examples/compose 能找到 4 個文件
下載后根據自己的情況修改保存,主要也就是端口和卷,然后建兩個空目錄,分別是 db 和 librenms
再運行 docker-compose up -d 就搞定了,一共會啟動 8 個容器
使用了一陣,各方面都挺正常的
but,老蘇覺得咱也不是專業的網管,能不能簡化一下呢?比如就裝一個 librenms 容器呢?
結論是可行的,但是圖表出不來
下圖是 Docker Compose 安裝的同一個頁面
其他功能可以正常使用,具體原因老蘇也沒弄明白。如果你只是想體驗一下,而且沒有強迫癥的話,就跟著老蘇來試試單容器的效果。
安裝
數據庫
通過 phpMyAdmin 在 MariaDB 10 中新建用戶 librenms,創建同名的庫 librenms 并授予所有權限。
如果使用 MariaDB 5,首次登陸會顯示下圖
群暉上的 MariaDB 10 版本是 10.3.7,已經可以滿足要求,不然就需要另外通過容器來安裝了 MariaDB 了
安裝鏡像
在群暉上以 Docker 方式安裝。
在注冊表中搜索 librenms ,選擇第一個 librenms/librenms,版本選擇 latest。
卷
在 docker 文件夾中,創建一個新文件夾,并將其命名為 librenms,再建一個子目錄 data
| docker/librenms/data | /data | 存放設置等 |
/data:包含配置、插件、rrd 數據庫、日志、額外的監控插件、額外的 syslog-ng 配置文件
端口
http 端口改為了 8234 ,其他采用了默認的自動
| 8234 | 8000 |
環境
完整的環境變量參數在:https://github.com/librenms/docker/blob/master/doc/docker/environment-variables.md
老蘇只是按自己的需要改了幾個跟數據庫相關的部分:
| TZ | 時區 |
| DB_HOST | 數據庫主機名或者 IP |
| DB_PORT | 數據庫端口 |
| DB_NAME | 數據庫名稱 |
| DB_USER | 數據庫用戶 |
| DB_PASSWORD | 數據庫密碼 |
| DB_TIMEOUT | 數據庫超時 |
TZ 默認值為 UTC,改為 Asia/Shanghai、PUID 和 PGID 用了默認的 1000
點 + 號新增跟數據庫相關的內容
3306 是 MariaDB 5 的默認端口,3307 才是 MariaDB 10 的默認端口
運行
在瀏覽器中輸入 http://群暉IP:8234,就能看到登陸界面了
默認的賬號:librenms,密碼:librenms
登陸成功后
設置中文
點右上角用戶 librenms --> My Settings --> Language
下拉選擇 簡體中文
就像界面上提示的 多國語系功能尚未完備,很多地方依然還是顯示的英文
新增設備
菜單欄中 設備
點 新增設備
這種方式只能一臺設備一臺設備添加
路由器
首先要在路由器中啟用 SNMP 協議
填入相關信息,應用
- 第一個紅框中是一些說明信息
- 第二個框是 Community String,你可以認為這是一個密碼,建議像密碼一樣設的復雜一點,老蘇這里只是為了演示。
- 大部分網絡供應商提供的設備默認密碼為 “public” 。(這就是所謂的“默認公共社區字符串”。)
回到 LibreNMS 的 新增設備 頁面
剛添加完成,還是一個 Generic Device
需要在 Capture 中 Discovery一下(Docker Compose 安裝的似乎不用,估計是有 dispatcher 的緣故)
完成之后就能正確顯示了
群暉
控制面板 --> 終端機和SNMP --> SNMP,默認也沒有啟用 SNMP 服務
- 這里的 社群 就是 Community String
回到 LibreNMS 的 新增設備 頁面
兩個設備添加完成之后,可以在設備列表中看到
自動發現
如果你是一個網管,管理著很多的設備,這種逐個添加設備的方式顯然不太適合,因此就會需要用到自動發現功能
但是在你使用之前,老蘇想告訴你,這個功能特別耗資源,而且也很費時,如果你是在內存比較小的機器、或者貓盤這類設備上安裝的 LibreNMS,不建議使用,一旦開啟就會像下面👇這樣,老蘇的機器中途還自動關機了一次
操作需要進入容器內部,進入容器可以通過 SSH 客戶端,也可以通過群暉 Docker 的終端機
SSH 客戶端
SSH 客戶端直接執行下面👇的命令即可進入到容器內部
librenms-librenms1 為容器的名稱
# 用 root 身份進入 docker exec --user root -it librenms-librenms1 /bin/bash終端機
容器上右鍵進入「詳情」
「終端機」 => 「新增」 => 「通過命令啟動」=> 「請輸入一個命令」=> 「bash」
進入容器之后,操作命令都是一樣的了,默認在 /opt/librenms 下
你可以抓取自定義的網段
# 自定義網段掃描 ./snmp-scan.py 192.168.0.0/16也可以將需要掃描的網段添加在 config.php 中
$config['nets'][] = "192.168.0.0/16";然后執行掃描
# 根據配置文件掃描 ./snmp-scan.py診斷
如果運行中有什么問題,可以用下面的方法進行診斷
# Do not run validate.php as root docker exec --user librenms -it librenms-librenms1 /bin/bash# 診斷 ./validate.php似乎不管怎么裝都會有這個數據庫警告
處不處理好像也沒什么不同,只是看著舒服一點
小結
LibreNMS 可以通過 SNMP 協議,將設備的處理器、操作系統、內存、網卡、存儲等信息收集起來,通過圖表的方式進行展示和查詢,利用報警可以讓我們及時了解設備的狀況,而通過歷史數據又可以很容易分析出故障的原因,更多的功能等待你去發掘。
參考文檔
librenms/librenms: Community-based GPL-licensed network monitoring system
地址:https://github.com/librenms/librenms
LibreNMS
地址:https://www.librenms.org/
librenms/docker: LibreNMS Docker image based on Alpine Linux and Nginx
地址:https://github.com/librenms/docker
LibreNMS Docs
地址:https://docs.librenms.org/
Synology SNMP Network Monitoring with LibreNMS Docker - Jason Loong
地址:https://jasonloong.com/2017/synology-snmp-network-monitoring-with-librenms-docker/
總結
以上是生活随笔為你收集整理的开源的SNMP网管系统LibreNMS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: unity序列帧动画的粒子特效
- 下一篇: win10系统怎么改奇摩输入法_Yaho