聊聊什么是監(jiān)控系統(tǒng)
本文轉(zhuǎn)載自微信公眾號「虞大膽的嘰嘰喳喳」,作者虞大膽。轉(zhuǎn)載本文請聯(lián)系虞大膽的嘰嘰喳喳公眾號。
我們有zabbix和promethous兩種監(jiān)控系統(tǒng),其實理解監(jiān)控本質(zhì)很重要,正好看到《promethous監(jiān)控實戰(zhàn)》這本書,第一章對于監(jiān)控的定義描述的非常好,分上下篇說明下。
監(jiān)控是衡量和管理技術(shù)系統(tǒng)的工具和流程,但更重要的是監(jiān)控能將系統(tǒng)和應(yīng)用程序生成的指標轉(zhuǎn)換為對應(yīng)的業(yè)務(wù)價值。監(jiān)控不僅能檢測和解決故障,還能幫助洞察關(guān)鍵的產(chǎn)品和技術(shù)決策,并衡量項目是否成功。
監(jiān)控的一些反模式
1:事后監(jiān)控,將監(jiān)控和運維工作是為應(yīng)用程序的增值組件而非核心功能。
2:機械式監(jiān)控
比如就監(jiān)控主機的CPU,內(nèi)存,而不監(jiān)控應(yīng)用程序是否正常運行的關(guān)鍵服務(wù)。
應(yīng)該根據(jù)價值體系設(shè)計自上而下的監(jiān)控系統(tǒng),比如業(yè)務(wù)邏輯》應(yīng)用程序》操作系統(tǒng)。
3:不夠準確的監(jiān)控
4:不頻繁的監(jiān)控
頻繁的監(jiān)控能夠:
- 識別故障和異常
- 提供更細顆粒度的數(shù)據(jù)
- 滿足響應(yīng)時間預(yù)期,你總不希望用戶提出故障吧
盡量保存長時間的監(jiān)控數(shù)據(jù),做出長期的趨勢圖。
5:缺少自動化和自服務(wù)
監(jiān)控系統(tǒng)沒做好的原因可能是很難實現(xiàn),比如開發(fā)人員去做監(jiān)控就很難,另外不成熟的監(jiān)控系統(tǒng)可能需要手動維護,導(dǎo)致監(jiān)控系統(tǒng)本身出現(xiàn)問題。
所以好的監(jiān)控系統(tǒng):
- 全局視角,從業(yè)務(wù)層依次展開監(jiān)控
- 協(xié)助故障診斷
- 基礎(chǔ)設(shè)施,是開發(fā)人員的信息源頭
- 內(nèi)置于應(yīng)用程序設(shè)計、開發(fā)和部署的生命周期中。
監(jiān)控機制
1:探針和內(nèi)省
內(nèi)省將事件、日志和指標發(fā)送到監(jiān)控工具。而探針是查詢應(yīng)用程序的外部特征,比如端口是否開啟。
2:拉取和推送
是將數(shù)據(jù)發(fā)完監(jiān)控系統(tǒng),還是監(jiān)控系統(tǒng)主動拉取數(shù)據(jù)
3:監(jiān)控數(shù)據(jù)的類型
數(shù)據(jù)主要有兩種形式:
(1)指標,比如promethous就是典型的事件序列數(shù)據(jù)存儲,用于應(yīng)用程序度量的狀態(tài)。
(2)日志,日志數(shù)據(jù)量大,一般是文本的事件,它們對于故障診斷最有用,比如ELK比較擅長日志收集和管理。
監(jiān)控服務(wù)層級
來自于Google的經(jīng)驗,自上而下:
- 產(chǎn)品設(shè)計
- 軟件開發(fā)
- 容量規(guī)劃
- 測試和發(fā)布
- 事后總結(jié)/問題根源分析
- 應(yīng)急事件處理
- 監(jiān)控