緯育 2026-0512
出自頂極製作所
本課程聚焦「服務監控與維運」的核心理念與實作,說明為何需要持續監測系統與服務,並以中型監控套件 LibreNMS(講者口誤亦稱 LibreOS/LibreMS/LibreNS 等)作為主要範例,示範在 Debian/Ubuntu 環境以 Web 安裝流程完成部署,搭配 MariaDB/MySQL、PHP-FPM、Nginx、SNMP 等服務設定,建立統一監控、告警與通知機制。
內容同時討論安裝過程可能因來源不可控而失敗的現實、硬體/網路/更新/應用衝突等常見故障成因,以及實務上透過硬體清潔保養、電源選型與效率管理、降低系統更動來減少服務中斷風險。課程展示以 ICMP 與 SNMP 方式納管 pfSense、Windows/Linux 等設備,建立 Dashboard、事件與日誌視圖、自動發現與告警整合(Email/IRC/Telegram/SMS),並補充較簡化的替代方案(PHP Server Monitor、Monica)僅做存活檢測。安裝完成後第三方套件與程式放置於 /opt,最終以 Web 介面完成設定與設備納管。
監控目標與環境現況
- 監控目的與重要性
- 建立常態監測與即時通知,降低客戶連線受影響與縮短修復時間;同時掌握客戶端可見度與伺服器端健康。
- 人工定期檢查與日誌分析耗時且易遺漏,需以統一監控套件集中處理。
- 安裝來源不可控的風險
- 自網路下載的套件與相依可能失敗屬常態;當場排除或課後研究,重點在理解方法與維運流程。
- 實作環境取捨
- 僅開啟代表性機臺,確認基本網路連通(路由開通、必要服務如 DHCP/DMS),以攝影機與監控系統觀察機器狀態即可。
故障成因與風險
- 硬體
- 企業伺服器多 CPU、風扇與散熱組合複雜,風扇不轉與散熱異常難辨識、診斷成本高。
- 網路
- 老舊線路或地板/板下管線易斷裂,間歇性斷線掩蓋真正成因;需實體線路檢查。
- 作業系統更新與衝突
- 在無資安/合規壓力下傾向「能不更新就不更新」,避免版本不一致與難以歸因的不穩定。
- 應用/服務層
- Bug、功能重疊與資源衝突(如同機兩個 Web Server 搶同一 Port)、長時間後服務偶發崩潰等。
降低中斷的維運作法
- 硬體清潔與維護
- 吸塵/撢塵、散熱片清潔並確保完全乾燥後再裝回;無風扇電源可靠但成本高。
- 電源選購與效率
- 預留功率以因應老化與高負載情境(大量 GPU/大數據/LLM 訓練);檢視 80 PLUS 等級與效率曲線落點,降低熱耗損與費用。
- 電源/主機板趨勢
- PC 可能轉向僅供 12V,由主機板降壓產生 5V/3.3V,主機板電源轉換職能提升、成本與維修策略需前瞻規劃。
- 降低系統更動
- 穩定配置、減少更新與環境變更,降低衝突與失效機率。
統一監控套件選型與能力
- LibreNMS(核心選擇)
- 以 Web 操作整合自動發現、ICMP/SNMP 監測、資料蒐集、圖表、告警/通知、設備識別與 Logo、儀表板與 API。
- 可監控各類 OS 與網路設備(pfSense、Cisco、Windows、Linux、NAS、UPS、Apache、nginx 等),支援中文介面與多種外部整合。
- 相容其他監控套件輸出與計費報表(多用於代管/雲服務)。
- PHP Server Monitor/Monica(簡化替代)
- 僅檢測存活與基本時間線索,安裝步驟少,適合不需細節指標的情境。
監測機制與資料視圖
- ICMP(預設可用):以 Ping 判定在線/不在。
- SNMP(預設可用,主機需安裝/啟用):依 OID 取出系統細節並可寫入部分設定。
- Agent/Caching/Service 監測(需安裝/啟用):取得更深的服務層資訊與狀態。
- 資料蒐集與圖表
- 蒐集負載、使用率、流量、IO、溫度、風扇、電壓等生成曲線;虛擬機環境多數無法取得感測值。
- 事件與告警
- 以圖形化呈現異常、支援註解與處理記錄;多種通知管道(Email/IRC/Telegram/SMS),可設定樣板與觸發條件。
- 地圖與設備識別
- 可在世界地圖標註位置,自動識別設備類別(Firewall、Server 等),顯示對應 Logo 與資訊。
安裝與配置(非 Docker 路線)
- 安裝特性與目錄
- 屬中型軟體安裝,步驟多且牽涉 Nginx/Apache、PHP、MariaDB/MySQL、CLI 工具與排程;第三方套件置於 /opt。
- SSH 遠端操作
- 建議複製貼上官方文件指令以減少錯誤,安裝失敗回查官方版本差異與改動。
- 資料庫(MariaDB/MySQL)
- 建立本機使用者與強密碼、建立資料庫與授權,FLUSH PRIVILEGES 後以匯入建立表與欄位。
- PHP-FPM
- 複製範例設定檔並調整 user、listen 等參數,重啟並以 systemctl 檢查。
- Nginx
- 新增站台設定(server_name 使用本機/內網 IP),配置 FastCGI 轉發至 PHP-FPM;移除 default,建立 symlink 啟用新站並重啟。
- SNMP v2c
- 編輯 snmpd.conf 設定 community、sysLocation、sysContact;下載 sharespeed 腳本並賦權;重啟 snmpd。
- Cron/Schedule/Logrotate
- 複製官方排程腳本(分鐘級 Cron、秒級 Schedule)與 logrotate 配置,啟用對應 timer。
初始設定與設備納管
- 安裝入口與驗證
- 於安裝頁輸入 DB 連線(host/port/user/password/DB),建立管理員帳號與介面佈景;完成後先至驗證頁檢查健康度再進 Dashboard。
- 新增裝置
- Ping 型主機:僅檢測可達性,關機/開機驗證圖表斷點與事件。
- SNMP 型設備(pfSense 範例):在 pfSense 開啟 SNMP(UDP/161,自訂 community),於 LibreNMS 加入後逐步呈現 CPU/記憶體/磁碟等指標。
- 自我監控:將 LibreNMS 伺服器自身啟用 SNMP 並加入監控。
- 外部公共 DNS:新增 8.8.8.8 以 Ping 作為外網健康指標。
- 儀表板與使用者
- 建立多個 Dashboard,加入時間 Log、地圖、資源小工具;在使用者設定中調整語言(支援中文)、密碼與全域參數。