周 雷
(中石化寧波工程有限公司,浙江 寧波 315103)
筆者從2008年開始研究監控系統,使用了Nagios開源軟件自己搭建了適用公司的網絡監控系統,通過監控各種網絡服務,比如SMTP、POP3、HTTP、NTP、ICMP、FTP、SSH等,監 控 主機資源,比如CPU、磁盤使用、Syslog等,做到了公司300多臺網絡設備和服務器的監控,為公司基礎設施的穩定運行提供了保障。但隨著公司網絡、服務器和應用系統日益增長,網絡安全的要求日益提高,各系統的監控需求變得越發復雜多樣,原有系統在功能和性能方面都存在局限性。通過研究新的監控系統,實現數據采集、數據存儲、數據分析、數據展示、監控報警和報警處理的流程機制,保障業務及系統的安全性和連續性,達到減少運維壓力、提高運維效率的目的,初步實現監控智能化。
Nightingale由多個組件構成,包含:1.collector:即agent,可以采集機器常見指標,支持日志監控,支持插件機制,支持業務通過接口直接上報數據。2.transfer:提供rpc接口接收collector上報的數據,將數據轉發給多臺tsdb和多臺judge。3.tsdb:即原來的graph組件,用于存儲歷史數據,支持配置為雙寫模式提升系統容災能力,tsdb會把監控數據轉發一份給index。4.index:是索引模塊,替換原來的mysql方案,在內存里構建索引,便于后續數據檢索,性能大幅提升。5.judge:是告警引擎,從monapi(portal)同步監控策略,然后對接收到的數據做告警判斷。6.monapi(alarm):從redis讀取judge生成的事件,進行二次處理,補充一些元信息,生成告警消息,重新推回redis。各發送組件。7.數據庫:仍然使用mysql,主要存儲的內容包括:用戶信息、團隊信息、樹節點信息、告警策略、監控大盤、屏蔽策略、采集策略、部分組件心跳信息等。
1.1 準備好CentOS7,采取yum安裝即可。
1.2 修改redis和nginx配置:修改配置文件中的daemonize為yes,默認端口為5379。
1.3 nginx配置:修改server內容,包含n9e.monapi、n9e.index、n9e.transfer等。
1.4 mysql配置:初始化數據庫n9e_hbs.sql、n9e_mon.sql和n9e_uic.sql。
下載tar包,解壓編譯安裝。
克隆查看,在windows下編譯linux二進制文件,將編譯后文件打包,然后解壓安裝并運行。
metric是監控指標名稱,endpoint是監控實體,tags是監控數據的屬性標簽,step為監控數據的上報周期,value是監控指標的當前值,timestamp是當前時間戳,單位是秒。counterType字段表示指標類型,支持GAUGE和COUNTER,如果不上報這個字段,默認為GAUGE,如果上報的指標是COUNTER類型,需要明確指定。
每一條策略都可以單獨配置告警接收人,策略可以直接綁定到服務樹節點上,節點下的所有機器都會繼承生效,如下:
策略名稱:描述這條策略的作用。
生效節點:關聯的服務樹節點,節點下所有機器都會應用這條策略。
排除節點:生效節點下面的部分子節點可能較為特殊需要排除,可以用此配置解決。
報警級別:分三級,P1最嚴重,報警之后事件通過所有報警通道推送,P3不嚴重,只用部分通道。
統計周期:判斷報警的時候使用最近多長時間以內的數據。
觸發條件:支持與條件,即兩個條件都滿足才報警。
Tag過濾:可以配置只生效監控指標的部分tag,或者排除部分tag。
執行動作:配置報警收斂策略和報警接收人,也支持配置回調,與自動化邏輯打通。
留觀時長:報警恢復后持續觀察多少秒,稱為留觀時長,未再觸發閾值才發送恢復通知。
靜默恢復:即只發送告警消息,不發送恢復通知,默認會發送,即不開啟靜默恢復。
生效時間:即策略生效時間,默認7*24生效,可以配置只生效部分時間段。
建立服務器對象樹,分別建立各應用系統主機,完成后可以在主機列表里看到被監控主機,如果Agent狀態正常,會在監控看圖中看到最新的主機信息,如:CPU、內存、硬盤等,在監控大盤中創建新的大盤,一張圖中顯示多個監控指標。
主機建立好之后,可在監控欄進程中建立proc.num(進程開關監控)和proc.port.listen(端口開關監控),從某業務系統A的443和80端口的監控圖,可看到,正常狀態下,監控值為1。
3.1 報警策略:根據監控策略可設置監控參數的相應閾值,包括生效節點、觸發條件、級別、統計周期和執行動作等。
3.2 報警展示:根據報警策略,相關人收到報警信息相關郵件。
通過此次的部署與實踐,基本掌握了Nightingale的原理和基本功能,但對數據可視化展示(結合grafanna)、二次開發、高可用性(HA)等功能還未涉及。希望在日后工作運維中,根據實際生產需求,不斷完善平臺功能。