運(yùn)維監(jiān)控工具千千萬,僅開源的解決方案就有流量監(jiān)控(MRTG、Cacti、SmokePing、Graphite等)和性能告警(Nagios、Zabbix、Zenoss Core、Ganglia、OpenTSDB等)可供選擇。
并且每種軟件都有自己的特點(diǎn)和功能,各自的側(cè)重點(diǎn)和目標(biāo)不完全相同,在設(shè)計(jì)理念和實(shí)現(xiàn)方法上也大同小異,但都具有共同特征。例如,采集數(shù)據(jù)、分析展示、告警以及簡單的故障自動處理。最終都能達(dá)到對IT系統(tǒng)服務(wù)可用性的一個完全展示。
下面我們將針對目前行業(yè)內(nèi)常用的五種監(jiān)控工具(Cacti、Nagios、Zabbix、Grafana、Prometheus)詳細(xì)介紹各自的特點(diǎn)。
1、Cacti
Cacti(英文含義為仙人掌)是一套基于PHP、MySQL、SNMP和RRDtool開發(fā)的網(wǎng)絡(luò)流量監(jiān)測圖形分析工具。
它通過snmpget來獲取數(shù)據(jù),使用RRDtool繪圖,但使用者無須了解RRDtool復(fù)雜的參數(shù)。它提供了非常強(qiáng)大的數(shù)據(jù)和用戶管理功能,可以指定每一個用戶能查看樹狀結(jié)構(gòu)、主機(jī)設(shè)備以及任何一張圖,還可以與LDAP結(jié)合進(jìn)行用戶認(rèn)證,同時也能自定義模板,在歷史數(shù)據(jù)的展示監(jiān)控方面,其功能相當(dāng)不錯。
Cacti通過添加模板,使不同設(shè)備的監(jiān)控添加具有可復(fù)用性,并且具備可自定義繪圖的功能,具有強(qiáng)大的運(yùn)算能力(數(shù)據(jù)的疊加功能)。
2、Nagios
Nagios是一個企業(yè)級的監(jiān)控系統(tǒng),可監(jiān)控服務(wù)的運(yùn)行狀態(tài)和網(wǎng)絡(luò)信息等,并能監(jiān)視所指定的本地或遠(yuǎn)程主機(jī)參數(shù)以及服務(wù),同時提供異常告警通知功能等。
Nagios可運(yùn)行在Linux和UNIX平臺上,同時提供一個可選的基于瀏覽器的Web界面,以方便系統(tǒng)管理人員查看網(wǎng)絡(luò)狀態(tài)、各種系統(tǒng)問題,以及日志等。Nagios的功能側(cè)重于監(jiān)控服務(wù)的可用性,能及時根據(jù)觸發(fā)條件告警。
目前,Nagios也占領(lǐng)了一定的市場份額,不過從觀察來看,Nagios并沒有與時俱進(jìn),已經(jīng)不能滿足于多變的監(jiān)控需求,架構(gòu)的擴(kuò)展性和使用的便捷性有待增強(qiáng),其高級功能集成在商業(yè)版Nagios XI中。
3.Zabbix
Zabbix是一個分布式監(jiān)控系統(tǒng),支持多種采集方式和采集客戶端,有專用的Agent(代理),也可以支持SNMP、IPMI、JMX、Telnet、SSH等多種協(xié)議,它將采集到的數(shù)據(jù)存放到數(shù)據(jù)庫,然后對其進(jìn)行分析整理,達(dá)到條件觸發(fā)告警。
Zabbix擁有良好的擴(kuò)展性,同時它的功能十分豐富,可以監(jiān)控CPU負(fù)荷、內(nèi)存使用、磁盤使用、網(wǎng)絡(luò)狀況、端口監(jiān)視、日志監(jiān)視等。
但是因?yàn)橄馁Y源較多的緣故,如果監(jiān)控的主機(jī)非常多時,可能會出現(xiàn)監(jiān)控超時、告警超時等現(xiàn)象。
4、Prometheus
Prometheus作為一個數(shù)據(jù)監(jiān)控解決方案,它由一個大型社區(qū)支持,有來自700多家公司的6300個貢獻(xiàn)者,13500個代碼提交和7200個拉取請求。
Prometheus具有以下特性:
多維的數(shù)據(jù)模型(基于時間序列的Key、Value鍵值對)
靈活的查詢和聚合語言PromQL
提供本地存儲和分布式存儲
通過基于HTTP的Pull模型采集時間序列數(shù)據(jù)
可利用Pushgateway(Prometheus的可選中間件)實(shí)現(xiàn)Push模式
可通過動態(tài)服務(wù)發(fā)現(xiàn)或靜態(tài)配置發(fā)現(xiàn)目標(biāo)機(jī)器
支持多種圖表和數(shù)據(jù)大盤
5、Grafana
Grafana是一款采用go語言編寫的開源應(yīng)用,主要用于大規(guī)模指標(biāo)數(shù)據(jù)的可視化展現(xiàn)。
Grafana支持許多不同的數(shù)據(jù)源。每個數(shù)據(jù)源都有一個特定的查詢編輯器,該編輯器定制的特性和功能是公開的特定數(shù)據(jù)來源。官方支持以下數(shù)據(jù)源:Graphite,Elasticsearch,InfluxDB,Prometheus,Cloudwatch,MySQL和OpenTSDB等。
每個數(shù)據(jù)源的查詢語言和能力都是不同的。你可以把來自多個數(shù)據(jù)源的數(shù)據(jù)組合到一個儀表板,但每一個面板被綁定到一個特定的數(shù)據(jù)源,它就屬于一個特定的組織。
最后
每個監(jiān)控工具的優(yōu)勢和能力都是不同的。你可以根據(jù)實(shí)際應(yīng)用需求,選擇適合的監(jiān)控工具。