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