徒手教你制作運維監(jiān)控大屏

  公司業(yè)務的不斷發(fā)展缀棍,緊接而來的是業(yè)務種類的增加、服務器數(shù)量的增長父腕、網(wǎng)絡環(huán)境的越發(fā)復雜以及發(fā)布更加頻繁青瀑,從而不可避免地帶來了線上事故的增多,因此需要對服務器到應用的全方位監(jiān)控枝嘶,提前預警哑诊。

  建立在Zabbix上的服務器監(jiān)控、基礎應用監(jiān)控(mysql竞阐、redis、ES等)颗搂、預警功能 基本滿足底層的監(jiān)控預警要求幕垦,超過設定的閥值就會提前通知相關人員去解決。

  有了Zabbix為什么還需要Grafana卖丸?

  Zabbix圖表聚合功能非常薄弱稍浆,這不是它的強項,而且數(shù)據(jù)源只限定自己的收集器衅枫,圖表展示類就是Grafana的強項朗伶。

  日志監(jiān)控用ELG來查看,Kibana在日志量達到一個級別后展現(xiàn)會出現(xiàn)性能問題益楼,集中展示沒有Grafana強大感凤,因此用Grafana代替Kibana粒督。

  微服務容器相關的監(jiān)控用Prometheus生態(tài)工具,查看容器應用的CPU族跛、內(nèi)存锐墙、JVM等相關指標。

  還有服務的鏈路監(jiān)控APM姐仅,對分布式應用程序集群的業(yè)務運行情況進行追蹤、告警和分析的系統(tǒng)劳翰,查看微服務間的調(diào)用鏈路狀態(tài)馒疹。

  現(xiàn)有整套監(jiān)控系統(tǒng)現(xiàn)狀是各自平臺監(jiān)控內(nèi)容分散,無法統(tǒng)一實時查看生均,分散精力腥刹,因此需要將各平臺主要監(jiān)控的內(nèi)容抽出來,統(tǒng)一在一個平臺展示佩脊。

  在公司開發(fā)人員資源緊張的情況下威彰,想要快速搭建起一套運維大屏可以使用Grafana穴肘。

  Grafana 是一個開源的監(jiān)控數(shù)據(jù)分析和可視化套件。最常用于對基礎設施和應用數(shù)據(jù)分析的時間序列數(shù)據(jù)進行可視化分析豹缀,也可以用于其他需要數(shù)據(jù)可視化分析的領域盈咳。Grafana 可以幫助你查詢、可視化、告警组底、分析你所在意的指標和數(shù)據(jù)〗酰可以與整個團隊共享厌均,有助于培養(yǎng)團隊的數(shù)據(jù)驅動文化。

  Grafana 有強大的社區(qū)支持晶密,有豐富的模板插件,足夠滿足需要的功能特性懂牧。幾乎可以集成ElasticSearch尊勿、Mysql、Zabbix躯保、InfluxDB澎语、Prometheus和OpenTSDB作為數(shù)據(jù)源。

??????? 下面就Grafana對接各平臺實踐操作過程做詳細介紹盯孙。

展示服務器可用內(nèi)存指標

  服務器可用內(nèi)存是一個非常重要的指標祟滴,因此需要實時關注,防止出現(xiàn)陡坡式的下滑而被忽略骑晶。

  內(nèi)存信息可從Zabbix中抽取桶蛔,先添加Zabbix數(shù)據(jù)源

  在Grafana添加數(shù)據(jù)源漫谷,選擇Zabbix,然后填寫Zabbix的API地址碟婆,用戶名密碼惕稻。

  url:http://192.168.0.1:8080/zabbix/php/api_jsonrpc.php

保存后,添加一個看板公给,選擇Graph

進入編輯頁面


選擇Zabbix為數(shù)據(jù)源

選擇Group和Host淌铐,對應下拉框是Grafana自動從數(shù)據(jù)源拉取的內(nèi)容。

Group對應Zabbix中的群組狰挡,Host對應主機加叁,Application對應應用集唇撬,item對應是的指標。

這里我們選擇想要監(jiān)控服務器后豫柬,選擇item對應的可用內(nèi)存指標:Available memory扑浸。

切換到Axes,選擇單位

切換到Legend,選擇展示最小值和最大值

切換到Display調(diào)整線條和背景色的深淺础嫡。

切換到Thresholds設置警戒線榴鼎,在20G以上是安全的晚唇,20G到5G是警告,5G以下就是報警紅色(請忽略下面圖中的值)平项。

到此可以看到已經(jīng)配置完成可看到完整的可用內(nèi)存走勢葵礼。

幾十臺服務器需要一臺一臺配置并鸵?

如果想要看所有服務器的可用內(nèi)存指標難道需要一臺一臺添加园担?

Grafana提供復制功能,制作好一個可按照規(guī)則復制弯汰,先添加服務器分類

添加

具體內(nèi)容:


Host選項時因為有Windows服務器咏闪,服務器名以B開頭,所以先排除以B開頭的服務器纵装,這里要說明的是正則是以javascript正則表達式為準的据某。


保存返回后,就會顯示兩個下拉框挽唉,可以對圖形展示進行過濾筷狼。

選擇上圖的Repeat,value選擇按照服務器名host指標(上一步配置的)進行橫向復制塑顺,一行最少24/4=6個楞遏。

將監(jiān)控指標更改為下圖所示,item更改為包含memory關鍵字的糙俗,會顯示 總內(nèi)存和可用內(nèi)存预鬓。


保存刷新頁面就會將所有服務器的內(nèi)存展示出來。


其它屬性請自行調(diào)整劈彪。

流量監(jiān)控

所有服務器的進出流量監(jiān)控大屏制作步驟參考內(nèi)存監(jiān)控內(nèi)容沧奴,不過監(jiān)控項item改成如下圖所示:

日志監(jiān)控

日志監(jiān)控包括了業(yè)務的訪問日志accesslog和自定義info\error log日志长窄。

可以從訪問日志中提取某個業(yè)務的訪問量纲菌、響應時長翰舌、客戶端ip、響應碼等等椅贱。

這里就其中一個做介紹只冻。

先添加數(shù)據(jù)源,ElasticSearch女器,有認證的話需要填寫認證信息住诸。


查詢訪問量最多的前10個服務,用餅形圖展示占比丧诺。

添加圖形組件奄薇,選擇數(shù)據(jù)源為上步添加的內(nèi)容。


指標選擇條數(shù)count呵晚,按servername(這里記錄到ES服務的名稱沫屡,若有自定義的自行更改)維度統(tǒng)計,選擇Top 10金矛。

切換Options勺届,顯示total指標到圖形右側。


這樣就完成了對接ElasticSearch的圖表制作饼酿。

與服務訪問相關的內(nèi)容其實Grafana官方有Nginx等相關的看板模板胚膊,直接下載模板后選擇數(shù)據(jù)源就可以展現(xiàn)相關的指標奈应,非常漂亮购披。

如何排除訪問量中非業(yè)務相關的內(nèi)容刚陡?

?ES的Query語法株汉,非常粗暴直接的方法用NOT排除不關心的內(nèi)容或干擾內(nèi)容。

帶查詢的表格方式展示日志列表

查詢?nèi)罩緯r可按條件過濾蝙云,如只按關心的服務或關鍵字查詢路召。

添加看板,選擇Table股淡。

先添加服務列表和日志等級唯灵,關鍵字輸入框

詳細內(nèi)容如下:

?第二個參數(shù)

Info指標是自己定義的埠帕,就不從數(shù)據(jù)里面讀取。

第三個參數(shù)選擇輸入框類型叁巨。

編輯圖表琐驴,查詢內(nèi)容按以下條件過濾,$代表所選變量宙刘。

選擇Json Data牢酵,然后添加需要展示的列。

  由于列名都是code布近,不太直觀,因此可以映射成中文名撑瞧,切換標簽后填寫需要映射的列名和中文名,選擇類型预伺,可以格式化,可以對值為空時作處理脏嚷,最后可以對值落入的范圍判斷進行顏色標示瞒御。

?最后樣式如下:

展示Docker中容器內(nèi)服務的內(nèi)存監(jiān)控

容器內(nèi)的監(jiān)控采用的是Prometheus + Cadvisor方案肴裙,這里只講收集后的展示。

添加數(shù)據(jù)源践宴,指向部署好的Prometheus

  Prometheus的查詢使用的是PromSQL,PromQL (Prometheus Query Language) 是 Prometheus 自己開發(fā)的數(shù)據(jù)查詢 DSL 語言带欢,語言表現(xiàn)力非常豐富烤惊,內(nèi)置函數(shù)很多,在日常數(shù)據(jù)可視化以及rule 告警中都會使用到它渡贾。

  在頁面?http://localhost:9099/graph?中,輸入下面的查詢語句空骚,查看結果擂仍,例如:

  http_requests_total{code="200"}

與Mysql的查詢對比,模糊查詢: code?為 2xx?的數(shù)據(jù)

// PromQL

http_requests_total{code~="2xx"}// MySQLSELECT*fromhttp_requests_totalWHEREcodeLIKE"%2%"ANDcreated_atBETWEEN1495435700AND1495435710;

添加一個圖表肋坚,選擇數(shù)據(jù)源Prometheus


監(jiān)控容器內(nèi)服務內(nèi)存用方法container_memory_rss,具體語法使用可進入Prometheus頁面去查看每個指標诲泌,https://songjiayang.gitbooks.io/prometheus/content/promql/summary.html

其它的圖表屬性設置與前面的設置方法一致铣鹏,這里不做展開講,最后保存展示吝沫。

實際上不會自己去畫每個圖表惨险,而是去Grafana模板市場去下載別人上傳的模板或官方模板脊髓,https://grafana.com/plugins?utm_source=grafana_plugin_list

關于同環(huán)比的問題

  Gafana沒有提供一個同環(huán)比展示的圖表,這一塊也是與每個數(shù)據(jù)源有關恭朗,數(shù)據(jù)源不支持依疼,Gafana也無法展示,在眾多數(shù)據(jù)源里面PromSQL是基于時間序列的律罢,是可以實現(xiàn)同環(huán)比功能的,因此可以先用PromSQL來查詢出同環(huán)比數(shù)據(jù)再進行展示沧踏。

綜合大屏展示

  以上內(nèi)容都是分模塊的巾钉,現(xiàn)在想把服務器、業(yè)務訪問流量砰苍、容器狀態(tài)放在一個大屏內(nèi)顯示,每一塊都來各自的數(shù)據(jù)源茬缩。

??????? 關鍵在于一塊大屏要展示哪些關鍵信息辟癌,擯棄掉無關緊要的內(nèi)容,下面是其中一個大屏,具體制作方式與上面一樣处面,其中圖形大小與布局需要根據(jù)投影到大屏上的分辨率有關菩掏,需要現(xiàn)場調(diào)試。

關于大屏展示的技巧

Grafana提供一個大屏展示輪播功能野揪,幾個看板之間自動切換瞧栗,具體就是Playlists。

給大屏一個名字挣惰,和切換間隔,然后將需要輪播的看板加入憎茂。

保存后锤岸,回到列表,選擇播放模式拳氢。

與普通模式區(qū)別在于晓猛,這兩種模式下會全屏,隱藏不相關的內(nèi)容栗恩,如地址欄、任務欄和圖標磕秤,而且圖表自適應屏幕大小捧韵。兩種模式的介紹參考官網(wǎng):https://grafana.com/docs/reference/playlist/

關于Grafana預警功能

  Grafana的預警功能比較薄弱,最大的問題是預警配置不支持模板變量再来,這就導致如內(nèi)存低于2G時預警磷瘤,圖表用的是模板內(nèi)容采缚,含有$host變量就無法預警挠他,只適合于不含變量的圖表,沒有Zabbix的預警功能方便殖侵,因此建議預警用Zabbix來實現(xiàn)。

??????? Grafana還可對接很多數(shù)據(jù)源楞陷,需要自行去探索,有能力的可以進行二次開發(fā)猜谚,打造自己的監(jiān)控大屏赌渣。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末坚芜,一起剝皮案震驚了整個濱河市斜姥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铸敏,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闪水,死亡現(xiàn)場離奇詭異蒙具,居然都是意外死亡,警方通過查閱死者的電腦和手機禁筏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來篱昔,“玉大人,你說我怎么就攤上這事±思” “怎么了脆烟?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長驼抹。 經(jīng)常有香客問我,道長框冀,這世上最難降的妖魔是什么敏簿? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮温数,結果婚禮上,老公的妹妹穿的比我還像新娘撑刺。我一直安慰自己握玛,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布冕屯。 她就那樣靜靜地躺著拂苹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪醋寝。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天囱桨,我揣著相機與錄音,去河邊找鬼舍肠。 笑死,一個胖子當著我的面吹牛翠语,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播肌括,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼黑滴!你這毒婦竟也來了紧索?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤晚缩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后媳危,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡待笑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片齐邦。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖我纪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浅悉,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布术健,位于F島的核電站粘衬,受9級特大地震影響咳促,放射性物質發(fā)生泄漏勘伺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一冲茸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧轴术,春花似錦股毫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兵志。三九已至,卻和暖如春想罕,著一層夾襖步出監(jiān)牢的瞬間霉涨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工笙瑟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人往枷。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像秉宿,于是被迫代替她去往敵國和親屯碴。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容