一篇文章帶你了解當下主流的監(jiān)控工具
監(jiān)控做為自動化運維的重要組成部分,承擔著反饋的作用。
以往,在缺少告警機制的情況下,企業(yè)無法洞悉到系統(tǒng)發(fā)生故障,只能通過用戶的反饋來獲取,系統(tǒng)運維人員往往也只是充當了一個“救火” 隊員,大面積的系統(tǒng)癱瘓往往也會給企業(yè)和用戶帶來極大的損失
當下,通過監(jiān)控,企業(yè)可以在系統(tǒng)受損時得到反饋,及時處理問題,大大減小了系統(tǒng)故障對企業(yè)和用戶造成的影響,更有可以做到無感知的修復。
選擇監(jiān)控工具的原則是根據(jù)公司業(yè)務場景選擇,而不要盲目的追求新工具(如果公司內部有一定的研發(fā)能力,且對監(jiān)控工具的需求比較大,那嘗試新工具也未嘗不可)。
但是大多數(shù)企業(yè)對于監(jiān)控都是新模塊,面對琳瑯滿目的監(jiān)控工具,不知所措。是選擇便宜的商業(yè)軟件,還是選擇開源工具自主開發(fā),還是選擇第三方公司外包。今天就跟大家分享目前市場上最熱的十個監(jiān)控工具詳解,希望能夠幫助您更好的選擇到合適的監(jiān)控工具。
Prometheus
官方網(wǎng)站:https://prometheus.io/docs/introduction/overview/
Prometheus是一套開源的監(jiān)控系統(tǒng),它將所有信息都存儲為時間序列數(shù)據(jù);因此實現(xiàn)一種Profiling監(jiān)控方式,實時分析系統(tǒng)運行的狀態(tài)、執(zhí)行時間、調用次數(shù)等,以找到系統(tǒng)的熱點,為性能優(yōu)化提供依據(jù)。

本身的功能在于數(shù)據(jù)的提取,不具備監(jiān)控功能,但是依靠它周邊組件從而實現(xiàn)了強大的監(jiān)控功能。
優(yōu)點:
- 易管理性,核心部分只有一個單獨的二進制文件,可直接在本地工作,不依賴于分布式存儲。
- 業(yè)務數(shù)據(jù)相關性,監(jiān)控服務的運行狀態(tài),從而讓用戶可以獲取服務和應用內部真正的運行狀態(tài)。
- 高效,單一Prometheus可以處理數(shù)以百萬的監(jiān)控指標;每秒處理數(shù)十萬的數(shù)據(jù)點。
- 易于伸縮,通過使用功能分區(qū)(sharing)+聯(lián)邦集群(federation)可以對Prometheus進行擴展,形成一個邏輯集群;Prometheus提供多種語言的客戶端SDK。
- 良好的可視化,自帶有Prometheus UI,還提供了一個獨立的基于Ruby On Rails的Dashboard解決方案Promdash。
缺點:
- 對于Prometheus的使用者來說,所有的公制端點都必須是可達的,這意味著一個更加復雜的安全網(wǎng)絡配置。
- 在大型部署中,擴展成為一個問題,Prometheus建議收集短期的工作指標。
- Prometheus的主要設計目標之一是操作簡單性。這樣,Prometheus就限制了監(jiān)控系統(tǒng)的可能失效模式數(shù)量,遵循著一原則,Prometheus目前只局限于單個點,因為集群帶來了額外的操作復雜性,使用單個節(jié)點不那么復雜,但是對可以由Prometheus監(jiān)控的度量指標適量有著嚴格的限制。
Zabbix
官方網(wǎng)站:https://www.zabbix.com/
Zabbix是一個基于WEB界面的提供分布式系統(tǒng)監(jiān)視以及網(wǎng)絡監(jiān)視功能的企業(yè)級的開源解決方案,在企業(yè)中有非常全面的應用,也是目前國內互聯(lián)網(wǎng)用戶中使用最廣的監(jiān)控軟件。

入門容易、上手簡單、功能強大并且開源免費是對Zabbix的最直觀評價。Zabbix易于管理和配置,能生成比較漂亮的數(shù)據(jù)圖,其自動發(fā)現(xiàn)功能大大減輕日常管理的工作量,豐富的數(shù)據(jù)采集方式和API接口可以讓用戶靈活進行數(shù)據(jù)采集,而分布式系統(tǒng)架構可以支持監(jiān)控更多的設備。理論上,通過Zabbix提供的插件式架構,可以滿足企業(yè)的任何需求。
優(yōu)點:
- 支持多平臺的企業(yè)級分布式開源監(jiān)控軟件
- 安裝部署簡單,多種數(shù)據(jù)采集插件靈活集成
- 功能強大,可實現(xiàn)復雜多條件告警,
- 自帶畫圖功能,得到的數(shù)據(jù)可以繪成圖形
- 提供多種API接口,支持調用腳本
- 出現(xiàn)問題時可自動遠程執(zhí)行命令(需對agent設置執(zhí)行權限)
缺點:
- 項目批量修改不方便;
- 中文資料較少,服務支持有限:
- 入門容易,但是深層次需求需要非常熟悉 Zabbix 并進行大量的二:次定制開發(fā),難度較大;
- 系統(tǒng)級別報警、報警郵件、自定義項目報警需要自己設置,過程繁瑣;
- 缺少數(shù)據(jù)匯總功能,數(shù)據(jù)報表也需進行二次開發(fā)。
Nagios
官方網(wǎng)站:https://www.nagios.org/
Nagios是一款開源的電腦系統(tǒng)和網(wǎng)絡監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機狀態(tài),交換機路由器等網(wǎng)絡設置,打印機等。在系統(tǒng)或服務狀態(tài)異常時發(fā)出郵件或短信報警通知運維人員,在狀態(tài)恢復后發(fā)出正常的郵件或短信通知。

Nagios提供一個基于瀏覽器的web界面,方便管理人員查看系統(tǒng)的運行狀態(tài),網(wǎng)絡狀態(tài)、服務狀態(tài)、日志信息,以及其他異?,F(xiàn)象。
優(yōu)點:
- 出錯的服務器、應用和設備會自動重啟,自動日志滾動
- 配置靈活,可以自定義shell腳本,通過分布式監(jiān)控模式
- 支持以冗余方式進行主機監(jiān)控,報警設置多樣
- 命令重新加載配置文件無需打擾Nagios的運行
缺點:
- 事件控制臺功能弱,插件易用性差
- 對性能、流量等指標的處
- 無歷史數(shù)據(jù),難追查故障
- 配置復雜,初學者費時長
Open-falcon
官方網(wǎng)址:http://open-falcon.org/
小米的監(jiān)控系統(tǒng):OpenFalcon是一款企業(yè)級、高可用、可擴展的開源監(jiān)控解決方案。

可以從運營級別(基本配置即可),以及應用級別(二次開發(fā),通過端口進行日志上報),對服務器、操作系統(tǒng)、中間件、應用進行全面的監(jiān)控,及報警。
優(yōu)點:
- 自動發(fā)現(xiàn),支持 falcon-agent. Snmp、支持用戶主動 push、用戶自定義插件支持;
- 支持單周期億次的數(shù)據(jù)采集、告警判定、歷史數(shù)據(jù)存儲和查詢;
- 支持策略模板、模板繼承和覆蓋、多種告警方式、支持 callback 調用;
- 單機支撐 200 萬 metric 的上報、歸檔、存儲;
- 采用 rdool 的數(shù)據(jù)歸檔策略;
- 多維度的數(shù)據(jù)展示,用戶自定義 Screen;
- 通過各種插件目前支持 Linux、Windows、Mysql、Redis、Memache RabbitMQ 和交換機監(jiān)控。
缺點:
- 發(fā)布時間較短;
- 不支持很多基礎的服務監(jiān)控插件(如 Tomcat、apache 等);
- 功能不完善
- 無專門運維支撐,社區(qū)運營有欠缺。
Ganglia
官方網(wǎng)站:http://ganglia.info/
Ganglia監(jiān)控系統(tǒng)是UC Berkeley開源的一個項目,設計初衷就是要做好分布式集群的監(jiān)控。監(jiān)控層面包含資源層面和業(yè)務層面,資源層面包含cpu、memory、disk、IO、網(wǎng)絡負載等

它是一個易于擴展的監(jiān)控系統(tǒng)。使用它可以實時查看 Linux 服務器和集群(圖形化展示)中的各項性能指標。
優(yōu)點:
- 適合監(jiān)控系統(tǒng)性能,通過曲線很容易見到每個節(jié)點的工作狀態(tài)
- 可以自定義監(jiān)控項,監(jiān)控展示有表格和圖像兩種,支持手機版
- 部署方便,通過不同的分層管理上萬臺機器,無需逐個添加配置,有利于后期的大規(guī)模擴張。
缺點:
- 沒有內置的消息通知系統(tǒng)
- 沒有報警機制,出現(xiàn)問題不能夠及時報警
Cacti
官方網(wǎng)站:https://www.cacti.net/
Cacti是一套基于PHP,MySQL,SNMP及RRDTool開發(fā)的網(wǎng)絡流量監(jiān)測圖形分析工具。它提供了非常強大的數(shù)據(jù)和用戶管理功能,可以指定每一個用戶能查看樹狀結構、host以及任何一張圖,還可以與LDAP結合進行用戶驗證,同時也能自己增加模板,功能非常強大完善。

優(yōu)點:
- 開源,自由發(fā)行,開放源代碼,運行高效。
- 跨平臺,支持的平臺redhat 、windows 、solaris、centos 、suse
- 界面友好,圖形豐富、各種模板、自定義模板
- 可擴展,支持二十種的插件,豐富的插件資源,大大提高了cacti的功能。
缺點:
- 使用文本式的數(shù)據(jù)庫,數(shù)據(jù)不能重復使用;
- 只能按日、周、月、年來查看數(shù)據(jù);每圖只能畫兩個DS(一條線、一個塊);
- 每取一次數(shù)據(jù)即需要繪圖一次,浪費系統(tǒng)資源;
- 不具備管理功能。
Graylog
官方網(wǎng)站:https://www.graylog.org/
Graylog是一個開源的完整的日志管理工具,功能和ELK類似,但又比ELK要簡單,是強大的日志管理、分析工具。它基于 Elasticsearch, Java和MongoDB。Graylog可以收集監(jiān)控多種不同應用的日志

優(yōu)點:
- 一體化方案,安裝方便,不像ELK有3個獨立系統(tǒng)間的集成問題。
- 個性化定制開發(fā)(帶來很大的自由度)采集日志的腳本,
- 搜索結果高亮顯示。
- 搜索語法簡單
缺點:
- 不能處理多行日志,比如Mysql慢查詢,Tomcat/Jetty應用的Java異常打印
- 不能保留原始日志,只能把原始日志分字段保存,這樣搜索日志結果是一堆Json格式文本,無法閱讀。
- 不符合正則表達式匹配的日志行,被全部丟棄。
Grafana
官方網(wǎng)站:http://grafana.org/

Grafana是一個可視化面板(Dashboard),有著非常漂亮的圖表和布局展示,功能齊全的度量儀表盤和圖形編輯器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作為數(shù)據(jù)源。
Grafana是一個展示的工具,我們可以搭配Prometheus和zabbix一同使用。
Zenoss Core
官方網(wǎng)站:https://www.zenoss.com/
Zenoss Core是開源企業(yè)級IT管理軟件-是智能監(jiān)控軟件,他允許IT管理員依靠單一的WEB控制臺來監(jiān)控網(wǎng)絡架構的狀態(tài)和健康度。

Zenoss Core的強大能力來自于深入的列表與配置管理數(shù)據(jù)庫,以發(fā)現(xiàn)和管理公司IT環(huán)境的各類資產(包括服務器、網(wǎng)絡、和其他結構設備)。Zenoss可以創(chuàng)建 關鍵資產清單和對應的組件級別(接口、服務、進程,已安裝的軟件等)。建立好模型后,就可以監(jiān)控與報告IT架構中各種資源的狀態(tài)和性能容限了。 Zenoss同時提供與CMDB關聯(lián)的事件和錯誤管理系統(tǒng),以協(xié)助提高各類事件和提醒的管理效率。
優(yōu)點:
- 功能全面,網(wǎng)絡管理軟件所應涵蓋的功能主要有:可用性管理,事件管理,性能監(jiān)視等
- 配置使用靈活,由于使用了CMDB數(shù)據(jù)庫來存儲數(shù)據(jù)模型對象,可以方便地對數(shù)據(jù)模型對象進行增刪改操作
- 對開發(fā)者友好,基于zenoss下的開發(fā),方便在于開發(fā)周期短,代碼簡潔,上手較為容易
缺點:
- 對資源要求較高,即使只管理少數(shù)幾臺設備,也需要消耗大量硬件及內存等附加資源
- 針對windows系統(tǒng),開源版只提供SNMP,通過WMI檢測CPU,Disk,軟硬件和性能只在收費版提供
Graphite
官方網(wǎng)站:https://graphiteapp.org/
Graphite 是一款用 Python 寫的開源企業(yè)級監(jiān)控繪圖工具,可以在廉價機硬件上運行。Graphite 可以實時收集、存儲、顯示時間序列類型的數(shù)據(jù)。

優(yōu)點:
- 非常快,它的架構是模塊化可規(guī)?;?/li>
- 有很多與Graphite相互協(xié)作的開源工具
- Graphite完成單個工作且做得很好
缺點:
- Graphite不能對數(shù)據(jù)進行分片,因此要解決這個問題就是采用多個Graphite實例
- Graphite的安裝是一個很復雜的任務,盡管目前有了完整的Docker映像可以一次性安裝Graphite及其依賴