2019-09-27
監(jiān)控系統(tǒng)是運維人員的眼睛,監(jiān)控是為了發(fā)現(xiàn)潛在問題并能及時告警,是故障診斷和分析的基礎平臺。在發(fā)生事故之前就能預警,最大限度降低系統(tǒng)故障率,是監(jiān)控系統(tǒng)的終極目標和價值體現(xiàn)。本文旨在幫助大家詳細了解監(jiān)控系統(tǒng),并提供三大開源的監(jiān)控解決方案。
監(jiān)控系統(tǒng)
監(jiān)控粒度、監(jiān)控指標完整性、監(jiān)控實時性是評價監(jiān)控系統(tǒng)的三要素。從分層體系可以把監(jiān)控系統(tǒng)分為三個層次:
硬件層:硬件是指服務器物理機本身,或者網絡設備、安全設備等等,這類監(jiān)控一般使用廠商提供的接口來實現(xiàn),比如IPMI(智能平臺管理接口)、SNMP,物理設備出廠一般會提供此接口。一般情況下,通過IPMI可以直接獲取設備的運行狀態(tài)信息,包括服務器各部分的溫濕度、硬盤狀態(tài)、風扇轉速等信息。硬件監(jiān)控的目的是物理設備出現(xiàn)故障時可以第一時間發(fā)現(xiàn)并更換配件,在物理機層面保證高可用。
系統(tǒng)層:操作系統(tǒng),或者稱為基礎監(jiān)控,包括設備的CPU、Mem利用率、磁盤空間使用情況、進程的CPU負載、網絡吞吐量等操作系統(tǒng)層面的指標,監(jiān)控這些指標的意義在于保證操作系統(tǒng)的健康運行,并在出現(xiàn)告警后第一時間排除故障,操作系統(tǒng)是應用系統(tǒng)的基礎,系統(tǒng)級故障往往很致命,直接關系到應用系統(tǒng)是否能夠正常運行,嚴重的系統(tǒng)級故障甚至無法恢復,我們要在系統(tǒng)出現(xiàn)故障前了解系統(tǒng)的運行狀況,時刻保持系統(tǒng)的健康運行。
業(yè)務層:業(yè)務系統(tǒng)的健康一般能吸引企業(yè)最直接的關注,而業(yè)務系統(tǒng)出現(xiàn)故障對應用的影響也最直接,對業(yè)務系統(tǒng)的監(jiān)控是理所當然的,業(yè)務系統(tǒng)的監(jiān)控指標并不像硬件、操作系統(tǒng)那樣具有普遍性。常規(guī)架構的前臺-后臺,我們一般關注Java內存分配、Nginx活動連接數和進程信息。特殊架構的業(yè)務系統(tǒng)需要根據業(yè)務人員關注重點來調整監(jiān)控指標。
三大開源運維監(jiān)控系統(tǒng)
Cacti平臺
Cacti是一套基于PHP、MySQL、SNMP及RRDTool開發(fā)的網絡流量監(jiān)測圖形分析工具。它通過snmpget來獲取數據,使用 RRDtool繪畫圖形,而且你完全可以不需要了解RRDtool復雜的參數。它提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀結構、host以及任何一張圖,還可以與LDAP結合進行用戶驗證,同時也能自己增加模板,功能非常強大完善。
優(yōu)點:
1. 適合監(jiān)控系統(tǒng)性能,通過曲線很容易見到每個節(jié)點的工作狀態(tài),對合理調整、分配系統(tǒng)資源,提高系統(tǒng)整體性能起到重要作用;
2. 支持瀏覽器方式訪問,但不能監(jiān)控節(jié)點硬件技術指標;
3. 適合大型集群環(huán)境;
4. 部署方便,不用逐臺機器添加配置;
5. 一臺服務器能夠通過不同的分層管理上萬臺機器;
6. 可以自定義監(jiān)控項,監(jiān)控展示有表格和圖像兩種,支持手機版。
缺點:
1. 沒有內置的消息通知系統(tǒng);
2. 沒有報警機制,出現(xiàn)問題不能夠及時報警。
Nagios監(jiān)控
Nagios是一款開源的免費網絡監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機狀態(tài),交換機、路由器等網絡設備,以及打印機、復印機等外設。在系統(tǒng)或服務狀態(tài)異常時發(fā)出郵件或短信報警,第一時間通知網站運維人員,在狀態(tài)恢復后發(fā)出正常的郵件或短信通知。
優(yōu)點:
1. 自動化運維,出錯的服務器、應用和設備會自動重啟;
2. 配置靈活,監(jiān)控項目很多,可以自定義shell腳本,通過分布式監(jiān)控模式,非常適合大型網絡;
3. 自動日志滾動;
4. 支持以冗余方式進行主機監(jiān)控;
5. 在服務事件和主機事件之間良好的相關性;
6. 命令重新加載配置文件無需打擾Nagios的運行;
7. 報警設置多樣性。
缺點:
1. 很弱的事件控制臺;
2. 對性能、流量等指標的處理不給力;
3. 看不到歷史數據,只能看到報警事件,很難追查故障原因;
4. 配置復雜,初學者投入的時間、精力比較大;
5. 插件的易用性不好。
Zabbix企業(yè)級監(jiān)控平臺
Zabbix是一款開源的企業(yè)級監(jiān)控平臺,基于CS 架構??捎糜诒O(jiān)視各種網絡服務、服務器和網絡設備等狀態(tài)。它具有高可用性,分布式監(jiān)控手段,對分布于不同網段的設備提供了proxy方式來監(jiān)控,對于部署的友好程度顯而易見;支持虛擬人工神經網絡平臺和監(jiān)控方法,真正的開源,沒有附加的組件,基于Zabbix目前已經有一些商業(yè)公司提供自有的監(jiān)控方案來滿足企業(yè)的需求,在商業(yè)生態(tài)方面Zabbix的無疑是做的最好的。
優(yōu)點:
1. 支持多平臺的企業(yè)級分布式開源監(jiān)控軟件;
2. 安裝部署簡單,管理方便;
3. 功能強大、監(jiān)控靈活,可實現(xiàn)復雜多條件告警;
4. 多種數據采集插件,靈活集成;
5. 自帶畫圖功能,得到的數據可以繪成圖形;
6. 同時支持調用腳本,很方便;
7. 提供多種API接口,定制化最高的監(jiān)控軟件;
8. 出現(xiàn)問題時可自動遠程執(zhí)行命令(需對agent設置執(zhí)行權限)。
缺點:
1. 項目批量修改不方便;
2. 社區(qū)雖然成熟,但是中文資料相對較少,服務支持有限;
3. 入門容易,能實現(xiàn)基礎的監(jiān)控,但是深層次需求需要非常熟悉Zabbix并進行大量的二次定制開發(fā),難度較大;
4. 系統(tǒng)級別報警設置相對比較多,如果不篩選的話報警郵件會很多;并且自定義的項目報警需要自己設置,過程比較繁瑣;
5. 缺少數據匯總功能,如無法查看一組服務器平均值,需進行二次開發(fā);
6. 數據報表需要特殊二次開發(fā)定義。
總結
Cacti在一些需要展示的場景中更適合,因為Cacti真的可以繪制出很理想的圖形,但在告警方面比較薄弱。
Nagios有完善的報警機制,能夠對數據狀態(tài)進行實時轉換,并完成報警。但Nagios僅關注狀態(tài)轉換,并完成報警。受監(jiān)控設備數影響,如果監(jiān)控的設備過多,會導致Nagios不能夠很好的監(jiān)控,最多能夠監(jiān)控100-300臺設備之間。適合中小型企業(yè)使用。
Zabbix結合了Cacti和Nagios的優(yōu)點,完善的告警機制和圖形化的展示,可采用分布式的監(jiān)控手段,對更多的設備進行監(jiān)控。Zabbix是企業(yè)級的監(jiān)控平臺,配置稍微復雜,需要專業(yè)人員部署。
據統(tǒng)計數據,Zabbix的市場份額明顯比Nagios和Cacti的高出很多,這也與其學習曲線有關,如果不需要監(jiān)控很復雜的指標,Zabbix是自帶這些功能的,而且全web操作,對技術人員要求很低,但是如果要實現(xiàn)比較復雜的監(jiān)控指標,學習成本就會大大增加,初學者根據自身情況,并結合公司業(yè)務選擇一款適合自己的才是最好的。
沒有最好的工具,只有用的最好的人。
文章部分引用于https://blog.csdn.net/varyall/article/details/82722911
上一篇 :美國銀行再爆用戶信息泄露事件
下一篇 :日志分析與安全防護