阿裏P9架構師談:高並發網站的監控系統選型、比較、核心監控指標
在高並發分布式環境下,對於訪問量大的業務、接口等,需要及時的監控網站的健康程度,防止網站出現訪問緩慢,甚至在特殊情況出現應用服務器雪崩等場景,在高並發場景下網站無法正常訪問的情況,這些就會涉及到分布式監控系統,對於核心指標提前監控,防患於未然。
常見的開源監控系統
1.Zabbix
Zabbix是一個基於WEB界面的提供分布式系統監控以及網絡監控功能的企業級開源運維平臺,也是目前國內互聯網用戶中使用最廣的監控軟件。
入門容易、上手簡單、功能強大並且開源免費。
Zabbix易於管理和配置,能生成比較漂亮的數據圖,其自動發 現功能大大減輕日常管理的工作量,豐富的數據采集方式和API接口可以讓用戶靈活進行數據采集,而分布式系統架構可以支持監控更多的設備。
2.Nagios
Nagios是一款開源的企業級監控系統,能夠實現對系統CPU、磁盤、網絡等方面參數的基本系統監控,以及 SMTP,POP3,HTTP,NNTP等各種基本的服務類型。另外通過安裝插件和編寫監控腳本,用戶可以實現應用監控,並針對大量的監控主機和多個對象 部署層次化監控架構。
Nagios最大的特點是其強大的管理中心,盡管其功能是監控服務和主機的,但Nagios自身並不包括這部分功能代碼,所有的監控、告警功能都是由相關插件完成的。
3.開源監控工具比較
4.建議首選Zabbix,免費開源監控首選,以下我主要以Zabbix為例,主要談監控流程和核心監控指標。
Zabbix監控流程
Zabbix的監控流程可以簡單描述為:
數據采集-->數據存儲-->數據分析-->數據展示-->監控報警
數據采集:Zabbix通過SNMP、Agent、ICMP、SSH、IPMI等進行數據采集
數據存儲:Zabbix存儲在MySQL上,也可以存儲在其他數據庫
數據展示:web界面展示、(移動APP、java_php開發一個web界面也可以)
數據報警:郵件報警、微信報警、短信報警、報警升級機制
Zabbix的監控配置流程可以簡單描述為:
告警是由一系列的流程組成,首先是觸發器達到閥值,產生一個事件,接下來由Action對事件信息進行處理,其中包括兩部分:
第一部分是發送消息,即將告警信息發送給用戶。
第二部分是執行命令,即將事件用命令進行處理,達到對事件故障自動嘗試恢復的效果。
Host groups(主機組)→Hosts(主機)→template(模板)→Applications(監控項組)→Items(監控項)→graph(圖形) →screen (圖形分組)→Triggers(觸發器)→Event(事件)→Actions(處理動作)→Media types(告警升級|1.執行遠程命令2.發送告警郵件)→User groups(用戶組)→Users(用戶)→Medias(告警郵件)
在實際生產使用的時候,Items、Trigger、Graph采用模板來進行監控,模板特點就是可以重復的事情一次完成,修改了模板等於修改了所有調用此模板的主機。
Zabbix監控功能
1.監控指標
主機的性能監控
網絡設備性能監控
數據庫性能監控
多種告警方式
詳細的報表圖表繪制
監控主機zabbix有專用的agent,可以監控Linux,Windows,FreeBSD等 。
監控網絡設備zabbix通過SNMP,ssh(不多用)
2.可監控對象
設備:服務器,路由器,交換機
軟件:OS,網絡,應用程序
主機性能指標監控
故障監控: down機,服務不可用,主機不可達
3.基礎監控數據
主要包括以下幾個類別:
CPU
Load
內存
磁盤
IO
網絡相關
內核參數
ss 統計輸出
端口采集
核心服務的進程存活信息采集
關鍵業務進程資源消耗
NTP offset采集
DNS解析采集
對於這些基礎監控選項全部理解透徹的時刻,也就是對Linux運行原理及命令進階的時刻。
4.JVM監控
對於Java作為主要開發語言的大多數公司,對於JVM的監控不可或缺。
每個JVM應用的參數,比如:
GC
類加載
JVM內存
進程
線程等
而這些參數的獲得,都可以通過MxBeans實現。
5.mysql四大性能指標
查詢吞吐量
查詢執行性能
連接情況
緩沖池使用情況
6.業務應用監控
對於業務需要監控的接口,比如響應時間等。
以上就是分布式監控系統總結。
阿裏P9架構師談:高並發網站的監控系統選型、比較、核心監控指標