中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

夜鶯(ying)監控設(she)計(ji)思考(四(si))關于機器那些事兒

這(zhe)將是一個系列(lie),講(jiang)解(jie) 的設(she)計(ji)(ji)思考,可以理解(jie)為原理+最佳實踐(jian)+產品(pin)設(she)計(ji)(ji)時的折中取(qu)舍。

本系列其他文章:

本篇聊聊夜鶯里跟機(ji)(ji)器相關的(de)那(nei)些事,機(ji)(ji)器的(de)數據采(cai)集(ji)、機(ji)(ji)器的(de)歸組打標簽、機(ji)(ji)器的(de)元信息、機(ji)(ji)器的(de)告警分派等。

前言

機器(qi)這個概念,在監控(kong)系(xi)統里具有比(bi)較(jiao)特殊的場景。核心是因為(wei)兩個原(yuan)因:

  • 機器上面的服務有時會混部,導致機器和業務程序之間的對應關系不好搞(這就是對待機器不能像對待 Pod 的原因)
  • 采集器 agent 通常部署在機器上,對于機器的管理也會影響采集器的管理(很多新的可觀測性廠商在宣傳的 Fleet 機制,就是側重在采集層面,agent 最終要部署到機器上,所以機器和采集器有很多關聯)

Zabbix、Open-Falcon 等,對機器(qi)概(gai)念都有額(e)外的抽象建模,Prometheus 生(sheng)態則完全忽略機器(qi)概(gai)念的特(te)殊性(xing),走向了另一個極(ji)端。

夜鶯(ying)監控(Nightingale)則站在(zai)二者(zhe)中間,既想遵從 Prometheus 生態的(de)玩法,又想給(gei)機器(qi)場景(jing)(jing)(jing)做(zuo)一些額外的(de)支持,稍微有點擰巴。不過產品是(shi)為業務場景(jing)(jing)(jing)服(fu)務的(de),場景(jing)(jing)(jing)就(jiu)在(zai)那里(li),不是(shi)說想砍就(jiu)能(neng)砍掉的(de)。

夜(ye)鶯體系里,對機器的相關支持比較零散(san),本(ben)文也(ye)會(hui)顯得有點凌(ling)亂,望諸位看官(guan)見諒(liang)。

機器分類管理

夜鶯(ying)里有個告警自愈功能,可(ke)以(yi)(yi)去(qu)機器上執(zhi)行腳本,所以(yi)(yi)需要(yao)非常小心設計機器的權(quan)限。最簡單的是每個機器跟人(ren)、角色綁定(ding),但是不方便(bian)管(guan)(guan)理(li),所以(yi)(yi)給(gei)機器設計了一(yi)個業(ye)務組(zu)的概(gai)念。機器可(ke)以(yi)(yi)歸屬業(ye)務組(zu),業(ye)務組(zu)關聯的管(guan)(guan)理(li)人(ren)員,這(zhe)些人(ren)員可(ke)以(yi)(yi)對機器做操(cao)作。

業務組可能會劃分的很細,比如每個 Service 作為一個業務組,比如 DBA/MySQL/Proxy 是也一個業務組,DBA/MySQL/DataNode/Mall 是另(ling)一個業務組。而(er)同一臺(tai)機器(qi)可能(neng)部(bu)署(shu)多個 Service,所以(yi),機器(qi)要支(zhi)持同時(shi)掛在多個業務組。

Prometheus 生態里(li),監(jian)控指標(biao)的(de)(de)(de)各類維度信息(xi)都(dou)是通過標(biao)簽(qian)來描(miao)述的(de)(de)(de)(業務組(zu)是沒法直(zhi)接(jie)作(zuo)為標(biao)簽(qian)的(de)(de)(de),因為 Prometheus 里(li)的(de)(de)(de)標(biao)簽(qian)不允許同 Key 多 Value),那夜(ye)鶯要支持給機(ji)器(qi)打標(biao)簽(qian)(在(zai)機(ji)器(qi)列表(biao)頁面進行操作(zuo)),給機(ji)器(qi)打的(de)(de)(de)標(biao)簽(qian),會(hui)自動附(fu)加到(dao)機(ji)器(qi)的(de)(de)(de)監(jian)控指標(biao)上。

所以,夜(ye)鶯里,機器的歸組(zu)提供了(le)兩個機制:

  • 業務組,通常以 Service 顆粒度劃分,跟權限相關
  • 標簽:如果想把某些維度信息附加到監控指標上,那就把這些維度信息做成標簽

當(dang)然,這一(yi)切的前提,是你要使用 Categraf 作為采集器,并且把(ba) Categraf 的 heartbeat 和 writer 的 url 都(dou)指向夜鶯。

如果你沒有使用 Categraf 采集器,機器列(lie)表里就是(shi)空(kong)的(de)(de),用不了機器的(de)(de)歸組、打標簽的(de)(de)能力。其實也不是(shi)啥大事,不用 Categraf 也不會影響你對(dui)時序庫中(zhong)的(de)(de)數據做告(gao)警、看圖。只是(shi),使用 Categraf 會讓體驗更(geng)絲滑,可以(yi)獲(huo)得額外一(yi)些(xie)能力。

Categraf 部署到(dao)所有待監控的目標機器(qi)上(shang),采集機器(qi)的元信(xin)息、基礎監控指標、執行腳本做(zuo)告警自愈。

機器信息上報

如果使用 Categraf 作為采(cai)集器,在夜鶯的機(ji)器列(lie)表(biao)(biao)里(li)就(jiu)會(hui)自動(dong)出現機(ji)器列(lie)表(biao)(biao):

image

如果發現(xian)內存、CPU、時(shi)間偏移等(deng)列是(shi) unknown,可(ke)能的(de)原因(yin)是(shi):

  • 你沒有使用 Categraf 采集器
  • Categraf 配置文件里的 heartbeat 沒有開啟,或沒有指向夜鶯

這個(ge)表格(ge)里,機(ji)器(qi)標(biao)識是可以(yi)點擊的,點擊機(ji)器(qi)標(biao)識,可以(yi)打(da)開一個(ge)側拉板,展示機(ji)器(qi)的元(yuan)信息:

image

多說(shuo)一句:有些人會問,機器列(lie)表里可以看到機器的(de) CPU、內(nei)存等信息,但(dan)是儀表盤是空的(de),為啥?可能的(de)原因:

  • Categraf 配置文件里 writer 部分配置的不對,沒有指向夜鶯
  • 如果配置是對的,那就要看 Categraf 的日志找線索了

機器告警

使用了 Categraf 之(zhi)后,除了可以看到機(ji)(ji)(ji)器(qi)列(lie)表、機(ji)(ji)(ji)器(qi)元(yuan)信息、給機(ji)(ji)(ji)器(qi)分組、打標簽(qian)之(zhi)外,還(huan)可以對機(ji)(ji)(ji)器(qi)做特殊(shu)的告警(jing)規則配置。

image

告(gao)警(jing)規(gui)則里,有個專門的(de) Host 類型,提供三種機(ji)器相關(guan)的(de)告(gao)警(jing)規(gui)則:機(ji)器失(shi)聯、機(ji)器集群失(shi)聯、機(ji)器時間偏移。

注意,機器時間偏移并非是機器和 NTP Server 之間的時間偏移,而是 Categraf 所在的機器和夜鶯服務端的時間偏移,如果用了 n9e-edge 邊緣模塊,就是 Categraf 所在的機器和 n9e-edge 所在(zai)機器的時(shi)間偏移。

機器時間偏移這個規則較為常用,另一(yi)個常用的(de)是(shi)機器失聯(lian)。因為 Categraf + Nightingale 的(de)監控(kong)數據流向是(shi)典型的(de) PUSH 模型,沒有 Prometheus 中的(de) up 指標(biao),所以(yi)需要(yao)額外的(de)機制(zhi)來判定機器是(shi)否失聯(lian)。

Question:機器掛載了業務組,我想對某些業務組做告警判定,應該怎么配置?

這個問題也很常(chang)見(jian)。在(zai)夜鶯的體系里,性能最好的方(fang)式(shi)是使用變量,配置方(fang)式(shi)如下:

image

上圖中,創建了一個 ident 變量,變量類型是 機器標識,機器范圍是 Default Busi GroupDevOps 兩個業務組下的機器。然后在 promql 中引用了 ident 標簽作為過濾條件。

當然,如果(guo)你的監控指(zhi)標里有標簽(qian)可以(yi)很方便做過濾,則直接使用標簽(qian)也是 OK 的。

上例用的變量模式,還有另一個好處,是用于特殊機器的閾值配置,比如 Default Busi GroupDevOps 兩個業務組下的機器默認 CPU 閾值都是 80,但是其中有1臺機器很特殊,平時負載就很高,CPU 閾值要設置為 88,那就可以再加一個閾值變量,同時繼續配置 變量篩選 條件:

image

這(zhe)個配置方式稍微有點復雜(za)(za),不(bu)過沒辦法(fa),問題場(chang)景本身就是(shi)復雜(za)(za)的。

老版本沒有 啟用變量 這個配置,只有 僅在本業務組生效 的配置,那(nei)個(ge)方式性能不好。其原理(li)是:

拿著告警(jing)規則里(li)的(de)(de) promql 去(qu)查詢時序庫里(li)的(de)(de)所有滿(man)足條件的(de)(de)數(shu)據(ju),可能(neng)查到很多(duo)機(ji)器都告警(jing)了(le),然后(hou)再(zai)根據(ju)機(ji)器的(de)(de)歸屬關系做過(guo)濾,只保留自己業務(wu)組下的(de)(de)機(ji)器的(de)(de)相關告警(jing)。

儀表盤只查看業務組下的機器

既(ji)然(ran)在夜(ye)鶯(ying)里(li)維(wei)護了(le)機器和業務組(zu)(zu)的關系,那在儀表盤里(li)查看機器的時候(hou),能(neng)否只查看當前業務組(zu)(zu)下的機器呢?是可以的。

我們可以導入內置的機器相關儀表盤(在 Linux 類別下),打開 機器常用指標 那個儀表盤,默認是查看所有機器,因為 ident 變量配置是 label_values(system_uptime, ident),如下:

image

然后,我們修改一下 ident 變量,如下:

image

保存儀表盤(pan)然后(hou)刷新,就(jiu)會看到機(ji)(ji)器(qi)的變量下拉框里,只有(you)當(dang)前業(ye)(ye)務組下的機(ji)(ji)器(qi),如果(guo)儀表盤(pan)所屬(shu)的業(ye)(ye)務組下面(mian)沒有(you)機(ji)(ji)器(qi),那就(jiu)看不了數據了。

其他機器相關的功能

開源版(ban)(ban)本,跟(gen)機器相關的功能主要就是上(shang)面羅列的那(nei)些。商業版(ban)(ban)會有額外的功能,比如(ru):

  • Categraf 的采集規則中心化管理和下發
  • 專門的網絡設備管理里需要采集器探針的管理,會和機器管理有聯動
posted @ 2025-10-29 11:15  IT運維監控  閱讀(150)  評論(0)    收藏  舉報