前一篇的內容是以 LibreNMS 搭配 SNMP 取得裝置的詳細資訊,儘管豐富但仍然不夠全面。
LibreNMS 的功力當然不僅於此,所以本篇將介紹如何更進一步的取得更多裝置其它資訊,讓 LibreNMS 可以看到更多有用的資訊。
IPMI/BMC
IPMI 是伺服器主機板上提供的管理功能,可以提供硬體上許多的管理能力與詳細硬體資訊。在 LibreNMS 中要使用它,請進入已經加入 LibreNMS 監控的裝置中,點選右方功能表的齒輪圖示,再點選 [Edit] 進入設定頁,接著切換至 [IPMI] 頁籤,並於此處輸入該主機的 IPMI 相關帳密資訊即可完成。
設定 IPMI 整合
經過這樣設定之後,下一次的輪詢就會結合 IPMI 的結果加以顯示,該裝置就可以有更完整的資訊輸出。
顯示 IPMI 資訊
如上圖的範例,就是顯示由 IPMI 中取得的詳細風扇轉速、電壓等使用資訊。
在其中一次的客戶案例就是經由監測溫度值看到問題,該主機平常的 CPU 運作溫度大約都在 45~55 度之間徘徊,但有一天夜裡開始,溫度持續維持在 85 度以上,有時甚至飆到 99 度後當機。
經過了解,是因為該主機運作已久,原本 CPU 與散熱片之間的散熱膏已經完全損耗,使得導熱能力大幅下降所致,經過停機檢修把散熱膏重新塗佈以後,該伺服器即恢復正常運作。
發行版本
某些 Linux 發行版本不會在 SNMP 中可以取得詳細與正確的資訊,最多只能取得 Linux 核心版本號,這對於想要掌握已安裝的版本較為不便。
我們可以透過 LibreNMS 提供的 Distro 工具,搭配 SNMP 輸出讓 LibreNMS 可以取到更完整且正確的資訊。
在需要被監測的主機上執行以下動作:
下載 Distro 指令碼
curl -o /usr/bin/distro https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/distro chmod +x /usr/bin/distro
在 SNMP 中 Distro 回應值 (/etc/snmp/snmpd.conf)
# 請在最後一行加入 extend .1.3.6.1.4.1.2021.7890.1 distro /usr/bin/distro # 完成後存檔離開並重啟服務 systemctl restart snmpd
經過設定,就可以在 LibreNMS 看到完整的發行版本資訊,除了 Linux,FreeBSD 也同樣受惠。
取得發行版本資訊
代理程式
接著還可以透過 LibreNMS 整合的代理程式機制,取得更多的詳細資訊。
在這個部份 LibreNMS 是藉由整合另一個套件 Check_MK 來增強能力,安裝的方法在官方網站上已有提供,以 Ubuntu 安裝為例:
安裝與設定 Check_MK
cd /opt/ git clone https://github.com/librenms/librenms-agent.git cd librenms-agent cp check_mk_agent /usr/bin/check_mk_agent chmod +x /usr/bin/check_mk_agent cp check_mk@.service check_mk.socket /etc/systemd/system mkdir -p /usr/lib/check_mk_agent/plugins /usr/lib/check_mk_agent/local cp agent-local/* /usr/lib/check_mk_agent/local/ chmod +x /usr/lib/check_mk_agent/local/$script systemctl enable check_mk.socket && systemctl start check_mk.socket
安裝完成後,Check_MK 就會固定監聽 6556/TCP 這個連接埠。
開啟連接 Check_MK
回到 LibreNMS 的 Device 設定頁面,[Device] -> [Edit] -> [Modules],捲至下方將 `unix-agent` 開關切成 ON,即可在下一次輪詢時經由 Check_MK 取得詳細資訊。
經由代理程式取得資訊
從上圖可以看到使用 Check_MK 後,我們可以看到這台伺服器的型號、序號,以其頁籤上多出了Processes、Pkgs 這兩個,分別顯示目前運作中的處理程序、該主機已安裝過的套件以及版本。
目前 LibreNMS 支援連接 Linux、FreeBSD 上運作的 Check_MK,Windows 上雖然也有 Check_MK 可以安裝,但是 LibreNMS 並無法從 Windows 版的 Check_MK 將資訊取回,這是目前較為可惜之處。
更新狀況
對於惡意程式層出不窮的今日,能否儘快安裝更新檔是對抗漏洞攻擊的關鍵之一,LibreNMS 支援我們檢查 Device 上的作業系統是否已將安裝至最新版本,或是仍有更新檔尚未安裝。
這個功能屬於 Application 層面, 可以參考官方的步驟進行,請在要監視的裝置上操作:
下載最新版 OS Update 程式
wget https://raw.githubusercontent.com/librenms/librenms-agent/master/snmp/osupdate -O /etc/snmp/osupdate chmod +x /etc/snmp/osupdate
設定 OS Update 至 SNMP (/etc/snmp/snmpd.conf)
# 在最後一行加入 extend osupdate /etc/snmp/osupdate # 編輯完成後存檔退出並重新啟動服務 systemctl restart snmpd
完成以後,LibreNMS 就可以取得還有多少套件尚未更新。除了觀看圖表,也可以把這些更新數字經過設定後做為警報發送。
未安裝更新數量圖
目前 Application 支援以下應用的監視:
- Apache
- Asterisk
- BIND9/named
- C.H.I.P
- Ceph
- DHCP Stats
- Entropy
- EXIM Stats
- Fail2ban
- FreeBSD NFS Client
- FreeBSD NFS Server
- FreeRADIUS
- FreeSwitch
- GPSD
- Mailscanner
- Memcached
- Munin
- MySQL/MariaDB
- NGINX
- NFS Server
- NTP Client
- NTP Server/NTPD
- Nvidia GPU
- OS Updates
- PHP-FPM
- Pi-hole
- Postfix
- Postgres
- PowerDNS
- Proxmox
- Raspberry PI
- SDFS Info
- SMART
- Squid
- TinyDNS/djbdns
- Unbound
- UPS-nut
- UPS-apcups
- ZFS
小結
在 LibreNMS 所提供的多種功能裡,不僅 SNMP 重要,其它輔助的 Check_MK、Applications 等進階的應用方式,都能夠強化我們對目標裝置的掌握性,資訊取得越多,越能夠從資訊裡取得有用警訊,更可以從圖表中快速了解可疑的關鍵點,早做處理。
LibreNMS 能做的事還不僅於此。下一篇,我將介紹更多資安檢測有關的實用功能,可以協助 IT 管理者解決更多困擾。
參考資料
- Check_MK Setup - LibreNMS Docs
https://docs.librenms.org/Extensions/Agent-Setup/
- Applications - LibreNMS Docs
https://docs.librenms.org/Extensions/Applications/#os-updates