緯育 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、地圖、資源小工具;在使用者設定中調整語言(支援中文)、密碼與全域參數。

2026-0512-01.png

Webmin 簡介與安裝原理

  • 核心概念與目的
    • Webmin 是以網頁介面進行系統管理的工具,支援多種服務與作業系統元件的圖形化設定,對不熟悉指令的使用者特別友善;講者強調「絕對沒有比指令快,但對不熟悉指令的人方便」。
    • 早期教學版本功能有限,現今版本已大幅擴充,涵蓋系統、網路、服務、使用者/群組、排程等面向。
  • 安裝原理
    • 透過下載兩個 shell script(講者口述為「下載 share script 兩個,然後執行」)完成:步驟為「下載 shell script」→「執行 shell script」。
    • 本質是將 Webmin 官方套件庫加入系統套件來源,之後以套件管理器安裝 Webmin;相較以往手動流程更為簡化。
    • 安裝流程會依作業系統自動選用相容來源(提及 CentOS、RHEL 系、甚至可能的 Solaris)。
  • 作業系統與版本支援
    • 明確提及支援:CentOS(講者亦稱「SyngOS/SendOS」為口誤)、RHEL 9 系列。
    • 其他如 Debian/Ubuntu 等常見發行版通常亦受支援(講者多次口誤,但語境為「大家所知道的通通支援」)。
    • Solaris 支援性「不確定,但應該也有」——需實測或查官方文件。
  • 雲端環境注意事項
    • 雲端供應商以「安全性群組」控制連線埠(不同於傳統稱呼的防火牆)。若開放對外連線,維運介面埠一旦暴露,將遭大量掃描與嘗試登入(講者稱「一萬多」級別)。
    • 建議雲端安裝時特別檢視安全性群組入站規則,避免無必要的開放造成風險。

Webmin 基本操作示範與介面

  • 登入與語系切換
    • 以私網位址 192.168.100.71.1(口述)示範登入 Webmin,登入後透過「Change Language」切換為中文介面,以提升可讀性。
  • 使用者與群組管理
    • 路徑:系統 → 使用者與群組,可檢視現有帳號、建立新使用者。
    • 建立示例:使用者名稱「Amy」、真實姓名「Amy Kwan」,可設定 UID(自動或指定)、家目錄(自動建立或指定)、預設 shell、密碼與驗證方式;亦可調整 shadow 密碼策略(有效期、最小變更日數等)。
    • 建立流程簡化:填寫必要欄位後「建立」即完成。
  • 排程(Cron)管理
    • 位置:排程(講者與助教指示「排成就在這裡」)。
    • 可圖形化設定分、時、日、月、週等欄位,指定執行帳號與命令;支援視覺化時間選取。
  • 服務與伺服器設定(以 Nginx 為例)
    • 位置:伺服器 → Nginx(engines 為口誤),可進入全域(global)設定與模組化細項。
    • 優點:將原需手改主設定檔的操作改為按鈕與表單,降低記憶路徑與語法負擔。
  • SSH 與安全設定
    • 位置:系統/伺服器管理中的 SSH 模組(講者以「旁邊有 ASIS/出局控制」等口誤描述,實為 SSH Login、Access Control 等相關模組)。
    • 如 PermitRootLogin 設定:可在介面勾選或切換,存檔後由 Webmin 寫回實際設定檔;不確定對應檔案時,可先用介面變更,再回頭下載/查看實際改動位置,有助理解檔案結構。
    • 介面通常提供下載設定檔、儲存(Save)與套用等操作,便利版本比對與備份。
  • 硬體、網路、模組化管理
    • 可透過 Webmin 檢視與設定網路介面、硬體資訊、核心模組(Kernel Modules;講者稱 Color Module 為口誤)。
    • 適合不熟悉該發行版工具或路徑者,先以點選完成設定,再回看系統層細節。

指令與圖形化管理的取捨

  • 效率與學習性
    • 指令速度快且可腳本化;Webmin 讓新手快速上手、降低出錯,亦可作為學習橋樑(先以 GUI 變更再回看實際改動檔)。
  • 一致化安裝流程
    • 現行以官方 script 處理多發行版差異,步驟「下載兩個 script 並執行」在多版本上趨於一致,降低環境差異帶來的複雜度。

課程目標、安排與實作規劃

  • 課程目標
    • 不要求學員當場完成所有系統安裝;重點是理解部署流程、常見注意事項、查閱官方文件的方法,並能循序排解問題。
    • 工作型態多元:有人長期重複部署單一堆疊,有人需頻繁面對不同系統與軟體;不可能全都精通,需建立搜尋、驗證與工具化能力。

2026-0512-02.png