【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)備并運用解決方案。 一套良好的監(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等容器運行時環(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ù)的其他開源工具。 人們在開源警報工具方面遇到的唯一問題是,配置時間和過程有時看起來很費勁,但是一旦設(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è)施并確保正常運行時間很長。 原文標(biāo)題:Infrastructure monitoring: Defense against surprise downtime,作者:Abhishek Tamrakar |
|