1.前言
隨間網際網路、雲端計算的飛速發展,越來越多的企業系統架構越來越複雜,且迭代的速度也為之迅速。隨著業務量、流量的增長,龐大的業務系統架構即將面臨一系列的問題,同時也是企業飛速發展所需解決的痛點。
複雜龐大的業務系統架構,給執行維護增加一定的難度與複雜度。
大量服務應用、模組的API介面的狀態執行情況需要監測。
各類監控資料的收集、分析、整理耗時、費力,統一展示(視覺化)需求迫切。
業務系統執行狀態週報、月報資料難以統計、匯出。
故障點的快速發現與定位,減少業務中斷率勢在必行。
不僅企業管理者面臨的問題,同時也給企業的技術人員帶來一定維護壓力,一個行之有效監控體系迫在眉睫。
畫外音:這也就解釋了為什麼越來越多的企業都在使用監控系統。
2.什麼是監控系統
簡單來說,監控系統就是一套解決應用、服務或系統故障發現、故障預警、故障定位,執行狀態展示等多種功能融合一體的一個解決文案。也可以稱之為一套系統。
監控系統是整個運維環節,乃至整個產品生命週期中最重要的一環,事前及時預警發現故障,事後提供翔實的資料用於追查定位問題。監控系統作為一個成熟的運維產品,業界有很多開源的實現可供選擇。
3.監控系統的目標
對於使用監控來說,首先,得確立目標是什麼,需要達到什麼的效果,這才是重點。筆者根據實際工作經驗總結如下:
對系統、服務或平臺的執行狀態實行實時不間斷監控
不間斷實時反應系統、服務或平臺的執行狀態資訊
提前預知可能存在的故障風險
實現故障預警報警功能
通過監控資料快速定位故障原因
最終保證系統持續、穩定、安全執行
狀態資料視覺化與統計、匯出、歸檔(歷史資料可追溯)
4.如何使用監控
首先需要了解被監控物件的執行、工作原理與過程
確立需要監控被監控物件的哪些指標,如:服務的可用性、埠狀態,網路卡的內外流量等
定義監控閥值報警範圍、報警等級,如:記憶體可用剩餘多少需要報警?磁碟空間使用率達到多少需要報警?
建立完善的故障處理流程體系,如:緊急故障、非緊急故障、一般故障等處理方法與流程
5.監控流程
1、收集資料
通過什麼方式收集資料?
收集哪些資料?
2、儲存資料
儲存資料的介質,如:MySQL資料庫
儲存資料的時限,如:歷史資料的保留時長
3、展示資料
以何種方式展示,如:web介面?開發APP?
展示哪些資料
4、故障報警
電話報警
郵件報警(目前流行)
微信報警(目前流行)
簡訊報警
釘釘報警(目前流行)
5、告警處置
根據故障等級處理:緊急、非緊急
設定的故障處理預案
6.監控物件
瞭解完監控的目標、流程之後,還需要了解到底監控哪些內容?也就是被監控的物件是哪些。一般實際環境中基本監控可以分為以下幾種,如下。
1、CPU監控
CPU整體使用情況:使用者態與核心態,空閒率等
單個CPU的使用情況
2、磁碟監控
磁碟容量:分割槽使用量(已用與可用容量)
磁碟IO
磁碟的資料讀寫效率
3、記憶體監控
記憶體使用量:已用、可用
4、網路監控
內網路卡出入流量
外網路卡出入流量
TCP狀態
5、系統重要程式監控
系統程式狀態
系統服務程式開銷
6、應用服務監控
應用的程式狀態
應用埠狀態
一些個性化的需求
7、硬體裝置監控
以往對裝置監控這塊,我們單憑肉眼觀察其狀態燈的變化與變化頻率來判斷的時代一去不復返了,劣勢大家都知道:重複、繁重、效率低下,而且還不適用於大規模裝置叢集。
路由器狀態
交換機狀態
伺服器狀態
8、安全監控
安全監控一般使用第三方接收較多,個人開發或開源產品不多。
攻擊
漏洞
9、API介面監控
複雜的、大型系統中API監控非常重要,主是針對監控API介面GET、POST、PUT等請求。
圖片來源於網路
介面可用性
介面的正確性
介面的響應時間
7.監控工具介紹
下面介紹下,目前日常實際環境中常用的一些監控工具。每個工具的功能、特性都各有千秋,也因如此,都有著不同的應用場景。目前,實際環境應用最多的無非兩大類:開源產品、商用產品。
7.1 開源產品
1、Cacti
官方網站:http://www.cacti.net
釋出於2001年, Cacti 是一款開源的基於PHP、MySQL、SNMP及RRDTool開發的網路流量監測圖形分析工具。它通過snmpget來獲取資料,使用 RRDtool繪畫圖形,它的介面非常漂亮,能讓你根本無需明白rrdtool的引數能輕易的繪出漂亮的圖形。而且你完全可以不需要了解RRDtool複雜的引數。它提供了非常強大的資料和使用者管理功能,可以指定每一個使用者能檢視樹狀結 構、host以及任何一張圖,還可以與LDAP結合進行使用者驗證,同時也能自己增加模板,讓你新增自己的snmp_query和script!功能非常強大完善,介面友好。
注:目前使用不多。
2、Nagios
官方網站:https://www.nagios.org/
Nagios是一款開源的企業級監控系統,能夠實現對系統CPU、磁碟、網路等方面引數的基本系統監控,以及 SMTP,POP3,HTTP,NNTP等各種基本的服務型別。另外通過安裝外掛和編寫監控指令碼,使用者可以實現應用監控,並針對大量的監控主機和多個物件 部署層次化監控架構。
注:Nagios配置靈活,可以自定義shell指令碼,但配置複雜,學習時間、精力和成本比較大。
3、Grafana
官方網站:http://grafana.org/
Grafana目前使用比較廣泛,它的資料視覺化的展示功能非常強大,我們可以通過influxdb監控,Prometheus採集的主機資訊,而且還不需要安裝任何繪圖外掛,只需要將需要的資料加入到它的資料來源中即可,然後通過內建的外掛來展示你所需要的資料。
注:圖形化介面非常酷炫,配置稍複雜,需要了解其內部演算法。
4、Zabbix
官方網站:https://www.zabbix.com/
Zabbix是一個基於WEB介面的提供分散式系統監控以及網路監控功能的企業級開源運維平臺,也是目前國內網際網路使用者中使用最廣的監控軟體,雲智慧遇到的85%以上使用者在使用Zabbix做監控解決方案。
Zabbix易於管理和配置,能生成比較漂亮的資料圖,其自動發現功能大大減輕日常管理的工作量,豐富的資料採集方式和API介面可以讓使用者靈活進行資料採集,而分散式系統架構可以支援監控更多的裝置。理論上,通過 Zabbix提供的外掛式架構,可以滿足企業的任何需求。
注:入門容易、上手簡單、功能強大並且開源免費,特別是其自動發現功能非常強大。資料統計功能需要二次開發。
5、Open-falcon (小米開源產品)
官方網站:http://open-falcon.org/
Open-falcon是小米運維團隊從網際網路公司的需求出發,根據多年的運維經驗,結合SRE、SA、DEVS的使用經驗和反饋,開發的一套面向網際網路的企業級開源監控產品。
自動發現,支援falcon-agent、snmp、支援使用者主動push、使用者自定義外掛支援
支援每個週期上億次的資料採集、告警判定、歷史資料儲存和查詢
高效的portal、支援策略模板、模板繼承和覆蓋、多種告警方式、支援callback呼叫
單機支撐200萬metric的上報、歸檔、儲存
採用rrdtool的資料歸檔策略,秒級返回上百個metric一年的歷史資料
多維度的資料展示,使用者自定義Screen
通過各種外掛目前支援Linux、Windows、Mysql、Redis、Memache、RabbitMQ和交換機監控。
6、Lepus(天兔)
官方網站:http://www.lepus.cc/
簡潔、直觀、強大的開源資料庫監控系統。
Lepus監控系統部署配置:強大的開源企業級資料庫監控利器Lepus
MySQL/Oracle/MongoDB/Redis一站式效能監控,企業級資料庫監控工具首選。
注:中文開源軟體,監控mysql和redis可以精確到sql語句,因為只有監控資料庫和非關聯式資料庫,監控項不能統一,不能結合其他監控平臺,適用範圍較小。
7.2 商用產品
1、聽雲
官方網站:http://www.tingyun.com
聽雲是幫助客戶實時監控定位從崩潰報錯、慢互動到網路環境出錯等多維度複雜的效能問題。聽雲致力於使用者視角的IT管理創新服務,為不同行業提供終端使用者端到端的完整應用鏈的效能管理解決方案,幫助客戶不斷優化系統效能及使用者體驗,提高使用者滿意度和企業競爭力。
2、監控寶
官方網站:http://www.jiankongbao.com
監控寶是雲智慧為使用者提供IT效能監控(IT Performance Monitoring)的SaaS產品,包含網站監控、伺服器監控、中介軟體監控、資料庫監控、應用監控、API監控和頁面效能監控等功能。包含免費版、暢 享版和企業版,目前使用者約40萬,監控寶app也是國內唯一提供移動監控服務的產品。
注:監控寶通過遍佈全球的300多個分散式監測節點,對網路進行穩定性和可用性的主動監控和實時分析,支援http(https)、ftp、ping、udp、tcp、smtp、traceroute等多種協議,測量CDN效果及DNS狀態,全網全地域效能趨勢分析。最大的缺點就是收費!
3、阿里雲監控
官方網站:https://aliyun.com
阿里雲監控是一款免費網站監控產品,可監控站點和伺服器,並提供多種告警方式:簡訊,旺旺,郵件。
注:只限阿里產品。
8.總結(附思維導圖)
最終使用何種監控產品,監控方法,監控流程等,一切都需要以實際生產環境需求為主。
架構也是不斷在演變的過程,隨著業務系統的迭代而迭代。此文章不一定適合所有的企業架構,比如說:大資料量、大規模業務流量、對預警有較高要求的場景。
本文只是對監控體系做一個初步的巨集觀的基礎介紹與認識,讓大家知道一個監控體系或監控平臺如何從0到1的一個演變過程。建設監控告警是一條持續且漫長的路,坑也很多,本文介紹的一些基本的方法和規律仍然是可以遵循的。
同時,也歡迎小夥伴們留言分享你的運維監控體系構建之路上的點點滴滴!
注:需要此圖原版檔案的可聯絡民工哥。
如果此文章對你瞭解監控系統有所幫助,請轉發分享給更多需要的小夥伴,因為他們面試也需要此裝逼指南壯膽!轉發支援也是創作的最大動力!