做好基礎(chǔ)設(shè)施監(jiān)控,防范意外停機(jī)
譯文
【51CTO.com快譯】基礎(chǔ)設(shè)施監(jiān)控是基礎(chǔ)設(shè)施管理的一個組成部分。它是IT管理員防范意外停機(jī)的***道防線。嚴(yán)重的問題可能導(dǎo)致基礎(chǔ)設(shè)施出現(xiàn)大量停機(jī)時間,有時導(dǎo)致嚴(yán)重的經(jīng)濟(jì)損失。
監(jiān)控系統(tǒng)從你的基礎(chǔ)設(shè)施收集時間序列數(shù)據(jù),以便對其進(jìn)行分析,預(yù)測基礎(chǔ)設(shè)施及底層部件即將出現(xiàn)的問題。這使得IT管理員或支持人員有時間在問題發(fā)生之前準(zhǔn)備并運(yùn)用解決方案。
一套良好的監(jiān)控系統(tǒng)具有以下功能:
1. 長期測量基礎(chǔ)設(shè)施的性能
2. 節(jié)點級分析和警報
3. 網(wǎng)絡(luò)級分析和警報
4. 停機(jī)分析和警報
5. 回答事件管理和根本原因分析(RCA)的五個W:
○實際問題是什么?
○什么時候發(fā)生的?
○為什么會發(fā)生?
○什么系統(tǒng)或部件出現(xiàn)停機(jī)?
○需要采取什么措施才能在將來避免?
建立強(qiáng)大的監(jiān)控系統(tǒng)
有許多工具可以構(gòu)建可行且強(qiáng)大的監(jiān)控系統(tǒng)。唯一的決定是使用哪個工具;答案在于你希望通過監(jiān)控實現(xiàn)的目標(biāo)以及要考慮的各種財務(wù)和業(yè)務(wù)因素。
雖然一些監(jiān)控工具是專有的,但許多開源工具(無人管理的軟件或社區(qū)管理的軟件)的效果甚至比閉源工具還好。
本文將介紹開源工具以及如何用它們來構(gòu)建一套強(qiáng)大的監(jiān)控架構(gòu)。
日志收集和分析
日志大有幫助。日志不僅有助于調(diào)試問題,還提供了大量信息,幫助預(yù)測即將發(fā)生的問題。遇到軟件組件問題時,應(yīng)首先分析日志。
Fluentd和Logstash都可用于收集日志;我選擇Fluentd而不是Logstash的唯一原因是因為它獨立于Java進(jìn)程;它是用C + Ruby編寫的,得到Docker等容器運(yùn)行時環(huán)境和Kubernetes等編排工具的廣泛支持。
日志分析是指分析逐漸收集的日志數(shù)據(jù),并生成實時日志度量指標(biāo)。Elasticsearch是這方面的一款強(qiáng)大工具。
***,你需要一個工具來收集日志度量指標(biāo),以便能夠使用易于理解的圖表和圖形直觀地顯示日志趨勢。Kibana是我在這方面所青睞的選擇。
圖1. 日志工作流程
由于日志可能保存敏感信息,因此需要記住幾個安全要點:
•始終通過安全的連接傳輸日志。
•應(yīng)在受限制的子網(wǎng)內(nèi)實施日志/監(jiān)控基礎(chǔ)設(shè)施。
•應(yīng)僅限于利益相關(guān)者訪問監(jiān)控用戶界面(比如Kibana和Grafana)。
節(jié)點級度量指標(biāo)
并非一切都記入日志!
沒錯,日志監(jiān)控的是軟件或進(jìn)程,而不是基礎(chǔ)設(shè)施中的每個部件。
操作系統(tǒng)磁盤、外部掛載的數(shù)據(jù)磁盤、Elastic Block Store、CPU、I/O、網(wǎng)絡(luò)數(shù)據(jù)包、入站和出站連接、物理內(nèi)存、虛擬內(nèi)存、緩沖區(qū)空間和隊列是很少出現(xiàn)在日志中的一些主要部件,除非它們出了故障。
那么,如何收集這類數(shù)據(jù)呢?
Prometheus是個答案。你只需在虛擬機(jī)節(jié)點上安裝針對特定軟件的導(dǎo)出器,并配置Prometheus,從這些無人值守的部件收集基于時間的數(shù)據(jù)。Grafana使用Prometheus收集的數(shù)據(jù)來實時直觀地顯示節(jié)點的當(dāng)前狀態(tài)。
如果你在尋找一個更簡單的解決方案來收集時間序列指標(biāo),不妨考慮Etricbeat,這是Elastic.io的內(nèi)部開源工具,它可以與Kibana一起使用以取代Prometheus和Grafana。
警報和通知
沒有警報和通知,你就無法充分利用監(jiān)控。除非利益相關(guān)者(無論他們?nèi)嗽谀睦铮┙拥接嘘P(guān)問題的通知,否則他們就無法分析和解決問題、防止客戶受到影響并在將來避免它。
Prometheus使用其內(nèi)部的Alertmanager和Grafana來創(chuàng)建預(yù)定義的警報規(guī)則,可以基于配置的規(guī)則發(fā)送警報。Sensu和Nagios是提供警報和監(jiān)控服務(wù)的其他開源工具。
人們在開源警報工具方面遇到的唯一問題是,配置時間和過程有時看起來很費(fèi)勁,但是一旦設(shè)置好,這些工具的效果比專有工具還好。
然而,開源工具的***優(yōu)點是我們可以控制它們的行為。
監(jiān)控工作流程和架構(gòu)
良好的監(jiān)控架構(gòu)是強(qiáng)大而穩(wěn)定的監(jiān)控系統(tǒng)的支柱。它可能看起來像這個圖。
圖2. Devops監(jiān)控架構(gòu)
***,你要根據(jù)自己的需求和基礎(chǔ)設(shè)施來選擇工具。許多企業(yè)組織使用本文中討論的開源工具來監(jiān)控基礎(chǔ)設(shè)施并確保正常運(yùn)行時間很長。
原文標(biāo)題:Infrastructure monitoring: Defense against surprise downtime,作者:Abhishek Tamrakar
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】