避免警報(bào)疲勞:為Kubernetes工程團(tuán)隊(duì)提供的八條建議
譯文【51CTO.com快譯】監(jiān)控Kubernetes集群并不容易,而時(shí)常發(fā)出的警報(bào)通常是一個(gè)令人煩惱的問題。Kubernetes工程團(tuán)隊(duì)需要了解如何減少警報(bào)疲勞。
如果你是Kubernetes工程團(tuán)隊(duì)的一員,可能知道什么是警報(bào)以及它對(duì)工作和生活有何影響。而當(dāng)涉及到Kubernetes時(shí),其警報(bào)的數(shù)量將會(huì)迅速增長。本文將介紹一些引起警報(bào)疲勞的常見原因,并提供有助于減少這種疲勞的技巧和建議。
什么是警報(bào)疲勞?
簡單來說,當(dāng)你在一天內(nèi)收到大量與工作相關(guān)的警報(bào)時(shí),就會(huì)發(fā)生警報(bào)疲勞。無關(guān)的大量警報(bào)會(huì)降低你的工作效率,因?yàn)槟阈枰诠ぷ髦谐槌龃罅繒r(shí)間以確認(rèn)和處理警報(bào)。
如果你在下班之后也收到此類警報(bào),那么將會(huì)影響日常生活。為了建立一個(gè)高效和快樂的Kubernetes團(tuán)隊(duì),關(guān)鍵是要減少不必要的警報(bào),并專注于提供具有價(jià)值和可操作的內(nèi)容。
如何減少警報(bào)疲勞
以下討論一些實(shí)用的技巧和建議,以減輕Kubernetes團(tuán)隊(duì)成員面臨的警報(bào)疲勞。
提示1:明確定義指標(biāo)和閾值
解決任何問題的第一步是明確定義。在這個(gè)例子中,警報(bào)的原因是指標(biāo)中的閾值。因此,為其確定正確的指標(biāo)和適當(dāng)?shù)拈撝抵陵P(guān)重要。對(duì)于基于Kubernetes的項(xiàng)目,需要超越標(biāo)準(zhǔn)的指標(biāo)集。你應(yīng)該監(jiān)控Pod的生命周期以及節(jié)點(diǎn)和集群的單個(gè)資源消耗,以保持對(duì)系統(tǒng)的控制。
當(dāng)涉及到標(biāo)準(zhǔn)指標(biāo)時(shí),應(yīng)該設(shè)置額外的閾值和警報(bào),以了解何時(shí)出現(xiàn)異常行為。例如,你可以設(shè)置多個(gè)磁盤使用警告警報(bào),并根據(jù)嚴(yán)重性對(duì)它們進(jìn)行分類,以了解何時(shí)介入,并檢查其系統(tǒng)是否存在問題。同樣,也可以使用其他指標(biāo)進(jìn)行設(shè)置,例如CPU消耗、內(nèi)存消耗等。
提示2:定義警報(bào)層次結(jié)構(gòu)并根據(jù)嚴(yán)重性確定優(yōu)先級(jí)
從大量數(shù)據(jù)中獲取有用信息的最佳方法之一是對(duì)警報(bào)進(jìn)行組織。同樣,應(yīng)該將警報(bào)進(jìn)行分類,并根據(jù)類別修改發(fā)送警報(bào)的行為。
首先,你可以根據(jù)系統(tǒng)事件對(duì)正常運(yùn)行時(shí)間的影響,將其分為嚴(yán)重事件、警告事件和異常事件。然后,你可以將警報(bào)工具配置為僅針對(duì)關(guān)鍵事件發(fā)送警報(bào)。這樣,你將減少團(tuán)隊(duì)收到的警報(bào)數(shù)量,并且每個(gè)警報(bào)都要求他們采取行動(dòng),而不是簡單地予以確認(rèn)。你還可以為每個(gè)事件類別分配給不同的團(tuán)隊(duì),以密切關(guān)注系統(tǒng)。
提示3:將類似的警報(bào)分組在一起
雖然對(duì)警報(bào)進(jìn)行分類有助于分組,但它仍然不能解決一個(gè)主要問題:重復(fù)。你可能會(huì)收到系統(tǒng)中重復(fù)事件的警報(bào)?;蛘呖赡軙?huì)收到已解決問題的重復(fù)警報(bào),因?yàn)榫瘓?bào)工具不夠智能。唯一的解決方案是采用更加智能的監(jiān)控解決方案,該解決方案可跨團(tuán)隊(duì)和成員可靠地同步發(fā)布警報(bào)。
對(duì)于源自重復(fù)事件的重復(fù)警報(bào),還可以考慮應(yīng)用過濾器和規(guī)則將類似的警報(bào)組合在一起??梢砸揽渴录峁┑男畔泶_定它們是否重復(fù)發(fā)生。通過這種方式,可以針對(duì)許多類似問題發(fā)送較少的警報(bào),并且Kubernetes團(tuán)隊(duì)成員可以在需要時(shí)通過監(jiān)控平臺(tái)訪問所有其他警報(bào)。
提示4:盡可能多地收集有關(guān)警報(bào)的場景數(shù)據(jù)
要增強(qiáng)警報(bào)分類和聚合,需要收集大量數(shù)據(jù)。因此,應(yīng)該盡力收集有關(guān)系統(tǒng)中發(fā)生的事件的盡可能多的信息。這些信息將幫助區(qū)分重復(fù)事件,并幫助確定類似事件是否需要特別關(guān)注。除了提高警報(bào)策略的質(zhì)量之外,它還可以在以后解決問題時(shí)提供幫助。
提示5:在團(tuán)隊(duì)中定義明確的角色并相應(yīng)地直接發(fā)出警報(bào)
只有在對(duì)團(tuán)隊(duì)進(jìn)行同樣操作時(shí),對(duì)警報(bào)進(jìn)行分類才有效。每當(dāng)IT基礎(chǔ)設(shè)施遇到警告時(shí),向Kubernetes團(tuán)隊(duì)發(fā)送警報(bào)是沒有意義的。因此需要設(shè)計(jì)一個(gè)事件管理層次結(jié)構(gòu),并使警報(bào)工具與其保持一致,以邏輯地上報(bào)問題。
如上所述,你可以將錯(cuò)誤類別與團(tuán)隊(duì)相匹配,或者根據(jù)錯(cuò)誤來源的基礎(chǔ)設(shè)施將錯(cuò)誤與團(tuán)隊(duì)相匹配。這樣才能找出最適合特定用例的層次結(jié)構(gòu)。
提示6:與無關(guān)的警報(bào)來源斷開連接
這適用于每個(gè)人,并且所有團(tuán)隊(duì)成員都應(yīng)該遵循。團(tuán)隊(duì)在多個(gè)項(xiàng)目上工作,其中一些項(xiàng)目被轉(zhuǎn)移到另一個(gè)團(tuán)隊(duì)或完全退役,這是很自然的。但是,這些項(xiàng)目的警報(bào)訂閱可能沒有及時(shí)更新,從而導(dǎo)致不時(shí)向你發(fā)送不相關(guān)的警報(bào)。因此需要確保取消訂閱,以減少警報(bào)噪音。
在仍然分配給你的項(xiàng)目的情況下,可能存在分配給其他團(tuán)隊(duì)成員的問題,但正在向整個(gè)團(tuán)隊(duì)發(fā)送警報(bào)。為了整理你的提醒收件箱,最好也盡快取消訂閱。
提示7:禁止在工作時(shí)間以外發(fā)出非緊急警報(bào)
警報(bào)疲勞不只發(fā)生在工作時(shí)間,而在業(yè)余時(shí)間發(fā)布警報(bào)會(huì)讓你感到沮喪。在理想情況下,Kubernetes團(tuán)隊(duì)?wèi)?yīng)該選擇一種警報(bào)工具,該工具允許在設(shè)定的持續(xù)時(shí)間內(nèi)抑制和推遲警報(bào)。如果該工具可以根據(jù)警報(bào)分類(發(fā)送關(guān)鍵警報(bào)并推遲其他警報(bào))實(shí)現(xiàn)這一點(diǎn)會(huì)更好。這將幫助你在工作時(shí)間之外保持健康的生活方式。
如果抑制警報(bào)對(duì)你來說太過困難,可以考慮將其委托給在你不在時(shí)值班的另一名團(tuán)隊(duì)成員。而很多成員正在全天候監(jiān)視系統(tǒng)運(yùn)行狀況。將警報(bào)轉(zhuǎn)移給值班的成員,可以幫助其他人在他們不工作時(shí)放松。
提示8:在重大中斷時(shí),取消所有警報(bào)以專注于恢復(fù)
如果你已經(jīng)正確地完成了大部分工作,并且警報(bào)的設(shè)置是正確的,那么可以考慮在恢復(fù)主要中斷時(shí)取消所有警報(bào)。在重大事件中,許多基礎(chǔ)設(shè)施組件可能會(huì)出現(xiàn)故障,并立即向你發(fā)送大量警報(bào)。一旦你確定了中斷的原因,就應(yīng)該取消其他所有警報(bào),并集中精力解決中斷問題。
但是,你仍然有可能錯(cuò)過停機(jī)期間發(fā)生的其他重要警報(bào)。因此,最好將警報(bào)轉(zhuǎn)發(fā)給其他沒有與你一起處理故障的團(tuán)隊(duì)成員。
結(jié)語
警報(bào)疲勞是真實(shí)存在的,如果不及時(shí)檢查,它會(huì)影響你的健康和工作效率。因此,你應(yīng)該選擇一種工具,以減少不必要的警報(bào)噪音,同時(shí)讓你了解應(yīng)用程序的最新重要更新。將有效的工具與有效的警報(bào)策略相結(jié)合,將提高團(tuán)隊(duì)的工作效率,同時(shí)保持身體健康。
原文連接:Avoiding Alert Fatigue: 8 Tips for Every K8s Engineering Team,作者:Nate Matherson
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】