自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

監(jiān)控告警滿飛天,運(yùn)維在家睡到自然醒...

安全 應(yīng)用安全
作為知名的流媒體巨頭,Netflix 在全球擁有近 2 億訂閱用戶,服務(wù)遍及多個(gè)國家。

[[406432]]

圖片來自包圖網(wǎng)

本文闡述了 Netflix 的系統(tǒng)監(jiān)控實(shí)踐:自研 Telltale,成功運(yùn)行并監(jiān)控著 Netflix 100 多個(gè)生產(chǎn)應(yīng)用程序的運(yùn)行狀況。

難忘的經(jīng)歷

相信很多運(yùn)維人都有過這樣的經(jīng)歷:監(jiān)控系統(tǒng)某個(gè)指標(biāo)超過閾值,觸發(fā)告警。大半夜里,你被緊急召喚。

半睜著眼,你滿臉疑惑:“系統(tǒng)真出問題了嗎,還是僅僅需要調(diào)整下告警?上一次有人調(diào)整我們的告警閾值是在什么時(shí)候?有沒有可能是上游或者下游的服務(wù)出現(xiàn)了問題?”

鑒于這是一次非常重要的應(yīng)用告警,因此你不得不從床上爬起來,迅速打開電腦,然后瀏覽監(jiān)控儀表盤來追蹤問題源頭。

忙了半天,你還沒確認(rèn)這個(gè)告警是來自于系統(tǒng)的問題,但也意識(shí)到,從海量數(shù)據(jù)中尋找線索時(shí),時(shí)間正在流逝。你必須盡快定位告警的原因,并祈禱系統(tǒng)穩(wěn)定運(yùn)行。

對(duì)我們的用戶來講,穩(wěn)健的 Netflix 服務(wù)至關(guān)重要。當(dāng)你坐下來看《養(yǎng)虎為患》時(shí),你肯定希望它能順利播放。

多年來,我們從經(jīng)常在深夜被召喚的工程師那里了解到應(yīng)用程序監(jiān)控的痛點(diǎn):

  • 過多的告警
  • 太多滾動(dòng)瀏覽的儀表盤
  • 太多的配置
  • 過多的維護(hù)

Telltale

我們的流媒體團(tuán)隊(duì)需要一個(gè)全新的監(jiān)控系統(tǒng),可以讓團(tuán)隊(duì)成員快速地診斷和修復(fù)問題;因?yàn)樵谙到y(tǒng)告警的緊急情況下,每一秒都至關(guān)重要!

我們的 Node 團(tuán)隊(duì) 需要一個(gè)僅需一小撮人就能運(yùn)維大型集群的系統(tǒng)。因此,我們構(gòu)建了 Telltale。

Telltale 監(jiān)控時(shí)間軸

Telltale 的特性如下:

匯集監(jiān)控?cái)?shù)據(jù)源,創(chuàng)建整體監(jiān)控視圖:Telltale 匯集了各種監(jiān)控?cái)?shù)據(jù)源,從而能創(chuàng)建關(guān)于應(yīng)用程序運(yùn)行狀況的整體監(jiān)控視圖。

多維度判斷應(yīng)用程序的健康狀況:Telltale 可以通過多個(gè)維度判斷一個(gè)應(yīng)用程序的健康情況,而無需根據(jù)單一指標(biāo)頻繁調(diào)整告警閾值。

及時(shí)告警:因?yàn)槲覀冎缿?yīng)用程序在什么情況下是正常的,所以能在應(yīng)用程序有異常趨勢時(shí)及時(shí)通知應(yīng)用程序的所有者。

顯示關(guān)鍵數(shù)據(jù):指標(biāo)是了解應(yīng)用程序運(yùn)行狀態(tài)的關(guān)鍵。但很多時(shí)候,你擁有太多的指標(biāo)、太多的圖表以及太多的監(jiān)控儀表盤。而 Telltale 僅顯示應(yīng)用程序中有用的相關(guān)數(shù)據(jù)及其上游和下游服務(wù)的數(shù)據(jù)。

用顏色區(qū)分問題的嚴(yán)重程度:我們使用不同的顏色來表示問題的嚴(yán)重程度(除選擇顏色之外,還可以讓 Telltale 顯示不同的數(shù)字),以便運(yùn)維人員一眼就能判斷出應(yīng)用程序的運(yùn)行狀況。

高亮提示:我們還會(huì)對(duì)一些監(jiān)控事件進(jìn)行高亮提示,比如局部區(qū)域的網(wǎng)絡(luò)流量疏散及就近的 服務(wù)部署,這些信息對(duì)于全面了解服務(wù)的健康情況至關(guān)重要,尤其是在真正發(fā)生系統(tǒng)故障的情況下。

這就是我們的 Telltale 監(jiān)控。它現(xiàn)已成功運(yùn)行并提供監(jiān)控服務(wù),監(jiān)控著 Netflix 100 多個(gè)生產(chǎn)應(yīng)用程序的運(yùn)行狀況。

應(yīng)用程序健康評(píng)估模型

微服務(wù)并非是孤立存在和運(yùn)行的。它需要特定的依賴,與其他服務(wù)進(jìn)行數(shù)據(jù)交互,甚至位于不同的 AWS 區(qū)域。

上面的調(diào)用圖是一個(gè)相對(duì)簡單的圖,其中涉及許多服務(wù),實(shí)際的調(diào)用鏈可能會(huì)更深更復(fù)雜。

一個(gè)應(yīng)用程序是系統(tǒng)生態(tài)的一部分,它的運(yùn)行狀態(tài)可能會(huì)受到相關(guān)屬性變化的微弱影響,也有可能會(huì)受到區(qū)域范圍內(nèi)某些事件的影響從而發(fā)生根本性改變。

canary 的啟動(dòng)可能會(huì)對(duì)應(yīng)用程序產(chǎn)生一定影響。在一定程度上,上游或下游服務(wù)的部署同樣也可以帶來一定的影響。

Telltale 通過使用多個(gè)維度的數(shù)據(jù)源構(gòu)建一個(gè)不斷自我優(yōu)化的模型來監(jiān)控應(yīng)用程序的健康度:

  • Atlas 時(shí)序指標(biāo)
  • 區(qū)域網(wǎng)絡(luò)流量疏散
  • Mantis 實(shí)時(shí)流數(shù)據(jù)
  • 基礎(chǔ)架構(gòu)變更事件
  • Canary 部署及使用
  • 上、下游服務(wù)的運(yùn)行狀況
  • 表征 QoE 的相關(guān)指標(biāo)
  • 告警平臺(tái)發(fā)出的報(bào)警

不同的數(shù)據(jù)源對(duì)應(yīng)用程序健康度的影響權(quán)重不同。例如,與錯(cuò)誤率增加相比,響應(yīng)時(shí)間的增加對(duì)應(yīng)用程序的影響要小很多。

錯(cuò)誤代碼有很多,但是某些特定的錯(cuò)誤代碼的影響要比其他錯(cuò)誤代碼的影響大。在服務(wù)下游部署 canary 可能不如在上游部署帶來的效果明顯。

區(qū)域網(wǎng)絡(luò)流量轉(zhuǎn)移意味著某個(gè)區(qū)域的網(wǎng)絡(luò)流量降為零而另一個(gè)區(qū)域的網(wǎng)絡(luò)流量會(huì)加倍。

你可以感受下不同的指標(biāo)對(duì)于監(jiān)控的影響。監(jiān)控指標(biāo)的具體含義決定了我們應(yīng)該如何科學(xué)有效地使用它來進(jìn)行監(jiān)控。

在構(gòu)建應(yīng)用程序健康狀況視圖時(shí),Telltale 考慮了所有這些因素。應(yīng)用程序健康評(píng)估模型是 Telltale 的核心。

智能監(jiān)控

每個(gè)服務(wù)運(yùn)維人員都知道告警閾值調(diào)整的難度。將閾值設(shè)置得太低,你會(huì)收到大量虛假告警。

如果過度補(bǔ)償并放寬告警閾值,就會(huì)錯(cuò)過重要的異常警告。這樣導(dǎo)致的最終結(jié)果是對(duì)告警缺乏信任。Telltale 可以幫助你免除不斷調(diào)整相關(guān)配置的繁瑣工作。

通過提供準(zhǔn)確的和嚴(yán)格管理的數(shù)據(jù)源,我們能讓應(yīng)用程序所有者的設(shè)置和配置過程變得更加容易。

這些數(shù)據(jù)源通過按照一定的組合應(yīng)用到程序的配置中,以實(shí)現(xiàn)最常見的服務(wù)類型配置。

Telltale 可以自動(dòng)追蹤服務(wù)之間的依賴關(guān)系,以構(gòu)建應(yīng)用程序健康評(píng)估模型中的拓?fù)洹?/p>

通過數(shù)據(jù)源管理以及拓?fù)浔O(jiān)測,在不用付出很大的努力情況下就能使配置保持最新狀態(tài)。那些需要手動(dòng)實(shí)踐的一些場景仍然支持手動(dòng)配置和調(diào)整。

沒有任何一個(gè)獨(dú)立的算法可以適用我們所有的監(jiān)控場景。因此,我們采用了混合算法,包括統(tǒng)計(jì)算法、基于規(guī)則的算法和機(jī)器學(xué)習(xí)算法。

不久后,我們將在 Netflix Tech Blog 上發(fā)表一篇針對(duì)我們監(jiān)控算法的文章。

Telltale 還具有分析器,可用于趨勢探測或內(nèi)存泄漏監(jiān)測。智能監(jiān)控意味著我們的用戶可以信賴我們的監(jiān)控結(jié)果。

這表明故障發(fā)生時(shí),用戶能更快地定位和解決系統(tǒng)異常問題。

智能告警

智能監(jiān)控必然會(huì)促進(jìn)智能告警。當(dāng) Telltale 檢測到應(yīng)用程序中的運(yùn)行異常時(shí),就會(huì)產(chǎn)生異常事件。

團(tuán)隊(duì)可以選擇通過 Slack、電子郵件或 PagerDuty(均由我們的內(nèi)部告警系統(tǒng)提供支持)進(jìn)行告警。

如果該異常問題是由上游或下游系統(tǒng)引起的,則 Telltale 的上下文感知路由會(huì)提醒服務(wù)對(duì)應(yīng)的維護(hù)團(tuán)隊(duì)。

智能告警還意味著運(yùn)維團(tuán)隊(duì)針對(duì)特定異常只會(huì)收到一個(gè)通知,也就是說,告警風(fēng)暴已經(jīng)成為過去式。

Slack 中的 Telltale 通知示例

在系統(tǒng)出現(xiàn)問題時(shí),掌握準(zhǔn)確的信息至關(guān)重要。我們的 Slack 告警程序還會(huì)啟動(dòng)一個(gè)包含有關(guān)事件上下文信息的線程,提供 Telltale 識(shí)別到的異常問題信息及問題產(chǎn)生的原因。

正確的上下文可以方便我們了解應(yīng)用程序的當(dāng)前狀態(tài),以便值班運(yùn)維的工程師能有針對(duì)性的定位和修復(fù)問題。

異常告警事件會(huì)不斷發(fā)展而且擁有自己的生命周期,因此及時(shí)更新事件狀態(tài)至關(guān)重要。告警異常是好轉(zhuǎn)了還是惡化了?是否要考慮新的監(jiān)控信息或事件?

Telltale 在當(dāng)前事件發(fā)生改變時(shí)會(huì)更新 Slack 線程。系統(tǒng)返回正常狀態(tài)后,該線程將被標(biāo)記為“已解決”,因此用戶一眼就能知道哪些異常事件正在處理中,哪些異常事件已成功修復(fù)。

這些 Slack 線程不僅僅適用于 Telltale。團(tuán)隊(duì)還可以用它們來共享有關(guān)事件的其他數(shù)據(jù),方便進(jìn)一步觀察、理論分析和討論。

異常信息數(shù)據(jù)和討論全部集中在一個(gè)線程中,方便達(dá)成針對(duì)當(dāng)前異常的共識(shí),有利于更快提出問題的解決方案以及異常事件的事后分析。

我們致力于提高 Telltale 告警的質(zhì)量。一種方法是向我們的用戶學(xué)習(xí)。因此,我們在 Slack 消息中提供了反饋按鈕。

用戶可以告訴我們以后某些情況不需要再發(fā)生告警,或提供某些告警不合理的原因。智能告警意味著用戶可以信賴我們的告警。

在 Slack 的 Telltale 通知中描述異常詳細(xì)信息的一個(gè)示例

為什么我的應(yīng)用服務(wù)運(yùn)行狀態(tài)欠佳?各種類型的監(jiān)控?cái)?shù)據(jù)、應(yīng)用程序相關(guān)知識(shí)以及跨多種服務(wù)數(shù)據(jù)的相關(guān)性,有助于 Telltale 檢測分析應(yīng)用程序運(yùn)行健康度降低的原因。

這些原因包括實(shí)例異常、相關(guān)依賴的監(jiān)測和部署異常、數(shù)據(jù)庫異?;蛘呔W(wǎng)絡(luò)流量高峰等。突出高亮顯示這些可能的原因可以幫助運(yùn)維人員節(jié)省大量寶貴的時(shí)間。

異常事件管理

Telltale 異常事件摘要的一個(gè)示例

當(dāng) Telltale 發(fā)送告警時(shí),它還會(huì)創(chuàng)建一個(gè)快照,其中引用了不正常的監(jiān)控信號(hào)數(shù)據(jù)。隨著新監(jiān)控信息的到來,會(huì)將其添加到此快照中。

這簡化了團(tuán)隊(duì)的很多事后審查流程。當(dāng)需要復(fù)查過去的異常問題時(shí),“應(yīng)用程序事件摘要”功能可以從各個(gè)方面顯示當(dāng)前的問題,包括一些關(guān)鍵指標(biāo),比如總停機(jī)時(shí)間和 MTTR(平均解決時(shí)間)。

我們希望幫助我們的團(tuán)隊(duì)了解更多的異常事件的模式,以便提高我們服務(wù)的整體可用性。

集群視圖下將相似異常事件分組

部署監(jiān)控

可以看出,Telltale 的應(yīng)用程序健康評(píng)估模型及其智能監(jiān)控功能非常強(qiáng)大,所以我們也會(huì)將其應(yīng)用于安全部署方面。我們從開放源碼交付平臺(tái) Spinnaker 開始測試。

隨著 Spinnaker 逐漸推出新版本,我們使用 Telltale 連續(xù)監(jiān)監(jiān)控運(yùn)行新版本實(shí)例的運(yùn)行狀態(tài)。

持續(xù)監(jiān)控意味著新部署在問題出現(xiàn)時(shí)能自行停止并進(jìn)行回滾操作。這意味著部署存在問題時(shí)的影響半徑較小,持續(xù)時(shí)間更短。

持續(xù)優(yōu)化

在復(fù)雜的系統(tǒng)中,運(yùn)行微服務(wù)非常具有挑戰(zhàn)性。Telltale 的智能監(jiān)控和告警功能可以幫助我們運(yùn)維人員提高系統(tǒng)可用性、降低運(yùn)維人員的勞動(dòng)強(qiáng)度并減少工作人員大半夜被叫醒的頻率。

我們?yōu)?Telltale 做到的這些功能提升感到高興。但是遠(yuǎn)沒有結(jié)束,我們?nèi)栽诓粩嗵剿餍滤惴?,以提高告警的?zhǔn)確性。

我們將在以后的 Netflix Tech Blog 文章中詳細(xì)介紹我們的工作進(jìn)展。我們?nèi)匀辉趯?duì)應(yīng)用程序健康評(píng)估模型進(jìn)行進(jìn)一步評(píng)估和改進(jìn)。

我們相信服務(wù)運(yùn)行日志和跟蹤數(shù)據(jù)中會(huì)包含更多有價(jià)值的信息,這樣我們就能采集到更有用的指標(biāo)數(shù)據(jù)。我們很期待與平臺(tái)其他團(tuán)隊(duì)進(jìn)行合作,共同開發(fā)這些新功能。

將新應(yīng)用監(jiān)控引入 Telltale 可以享受到很好的服務(wù)體驗(yàn),但是無法很好的進(jìn)行擴(kuò)展,所以我們絕對(duì)可以優(yōu)化和提高自服務(wù)的用戶界面。

我們確信,有更好的啟發(fā)式方法能幫助用戶找出影響服務(wù)健康度的一些因素。Telltale 簡化了應(yīng)用程序的監(jiān)控。

作者:Andrei Ushakov

編輯:陶家龍

出處:http://7t4z2.cn/2Oa14

 

責(zé)任編輯:武曉燕 來源: 7t4z2
相關(guān)推薦

2021-06-21 08:30:14

Netflix監(jiān)控系統(tǒng)微服務(wù)

2019-03-19 08:41:38

Linux運(yùn)維變更

2022-05-05 07:25:03

Supervisor監(jiān)控Python

2024-04-09 08:00:00

Kubernetes管理系統(tǒng)云原生

2022-07-29 21:23:54

Grafana微服務(wù)

2015-07-16 16:31:58

運(yùn)維工具

2020-12-30 05:34:25

監(jiān)控PrometheusGrafana

2022-07-28 06:50:52

微服務(wù)業(yè)務(wù)系統(tǒng)

2011-03-21 14:43:42

2015-05-27 14:50:54

監(jiān)控寶

2022-04-01 08:27:30

告警收斂運(yùn)維監(jiān)控

2025-03-13 08:01:32

2023-12-20 08:13:54

K8S監(jiān)控管理

2024-01-05 11:49:30

K8S監(jiān)控告警

2021-11-05 10:54:31

數(shù)字化

2017-02-27 17:51:31

戴爾

2020-12-30 08:09:46

運(yùn)維Prometheus 監(jiān)控

2020-10-09 06:55:23

監(jiān)控告警日志

2011-03-25 13:54:00

Nagios

2010-07-09 12:09:34

IT運(yùn)維Mocha BSM摩卡軟件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)