阿里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.業務應用監控
對於業務需要監控的介面,比如響應時間等。
以上就是分散式監控系統總結。