在台灣中小企業為主的職場環境下,程式人員提供「一條龍」式的IT技能服務,是普遍常見的工作樣態。從設計構思、開發實作到後續的營運維護,如果不善用工具減輕自身的負擔,想憑著一腔熱血硬撐到底,結果不是爆肝就是離職單吧。IT系統看似五花八門,追根究底來說不外乎由網路設備、伺服器、中介軟體以及應用程式所組成。藉由監控系統適時地在每一層設定監管項目,營運人員將鉅細靡遺觀察IT服務運作的狀態。開碼的監控系統產品很多,而本書介紹的「Zabbix」是相當強大、易用的選擇。
從「設定主機」的步驟開始,使用者就體會到Zabbix包羅萬象的監控能力,主機(Host)指的是任何有連網的可被監控設備,除了一般的電腦/伺服器外,也包含各式網路設備。監控使用的通訊協定,從網路常見的SNMP(Simple Network Management Protocol)、硬體週邊的IPMI(Intelligent Platform Management Interface),到真正發揮出Zabbix驚人威力的Zabbix Agent/Agent2,選項一應俱全。面對最常見的伺服器硬體監控需求,藉由範本(Template)檔的協助,使用者將可快速地將CPU、記憶體、磁碟、網路卡等重點項目設定完成。尤其是自Zabbix 3.4版開始支援的LLD(Low-Level Discovery),自動搜尋伺服器裡的磁碟、網卡名稱帶入監控項目,讓管理者免於一台台手動調整監控項目裡的參數值,讓我這個一直在用Zabbix 2.x版的老用戶,感到這次升級值回票價。
因為範本檔和LLD兩者結合後的強大威力,一般常見的監控標的都可以既有的範本檔中獲得滿足,就連較新穎的HAProxy、Redis等中間層軟體,也都有可以參照的案例可以依循。書中也特別安排一個專章,介紹包含TCP、Nginx、PHP-FPM、MySQL、IPMI、磁碟陣列卡、路由器、VMware、RabbitMQ、Elasticsearch、Kafka、Redis、Oracle、WebLogic、SQL Server、HTTPS。監控項(Item)的實践Zabbix支援18種方法!加上透過Zabbix Agent的自訂使用者參數(UserParameter)功能,應該沒有任何無法監控的項目,唯一的限制就是使用者的想像力。針對非常客製化的應用服務層(自製系統的營運狀態),一樣是拿出傳家寶刀UserParameter就可以迎刃而解。API層的監控則是利用HTTP方法,如此一來同時擁有簡化設定、減少客製化的優點。雖然Zabbix也擁有對伺服器記錄檔的文字資料收集/監控能力,不過功能非常陽春,因此對於這種需求還是用Splunk或ELK這種專門工具比較理想。
和Cacti使用集中式主機輪詢的被動式監控不同,藉由Zabbix Agent的協助下,Zabbix可以採用主動式監控,來達成監控巨量標的的任務。按書中所言,在配置有適當主機規格的前提下,單一台Zabbix Server即可監控上千台伺服器。更別說如果再加上Zabbix Proxy的分散式監控架構,讓異地機房的監控負擔由Proxy先處理後傳回Zabbix Server整合。Zabbix的監控能力,足以滿足九成以上台灣企業的IT規模。簡單一句話:好東西,不學嗎?


