Prometheus+Grafana搭建監(jiān)控系統(tǒng)

公司目前也有一套監(jiān)控系統(tǒng)焕妙,但由于監(jiān)控系統(tǒng)的性能問題及功能擴展性問題等等導(dǎo)致監(jiān)控系統(tǒng)后端急需進行一次大的重構(gòu)嵌灰;采用的是C++寫成的探針用來采集各個主機硬件信息和組件的業(yè)務(wù)信息涨共。前端采用的是基于electron和vue搭建的跨平臺PC客戶端監(jiān)控系統(tǒng),其實際是由js實現(xiàn)的前端項目馁害,因為我們業(yè)務(wù)數(shù)據(jù)過大类垦,對后端和前端都造成的很大的困擾狈邑,因此準備著手開發(fā)一套新的監(jiān)控系統(tǒng)。
新的監(jiān)控系統(tǒng)我們選擇了Prometheus+Grafana這樣的組合方式蚤认,后端部分一部分是go語言寫的探針采集主機信息的功能米苹,另一部分是原來的C++寫的探針采集的業(yè)務(wù)信息。go探針采集的信息通過Prometheus將數(shù)據(jù)發(fā)送給一個中間件websever砰琢,業(yè)務(wù)信息也是發(fā)送到中間件websever中蘸嘶。再通過websever與前端進行交互良瞧,Grafana將嵌入到前端客戶端當(dāng)中。
進行一段時間研究后训唱,發(fā)現(xiàn)Prometheus+Grafana還是可以的褥蚯。這里就主要記錄一下搭建的過程。

概述

Prometheus是一個開源的服務(wù)監(jiān)控系統(tǒng)况增,它通過HTTP協(xié)議從遠程的機器收集數(shù)據(jù)并存儲在本地的時序數(shù)據(jù)庫上赞庶。

  • 多維數(shù)據(jù)模型(時序列數(shù)據(jù)由metric名和一組key/value組成)
  • 在多維度上靈活的查詢語言(PromQl)
  • 不依賴分布式存儲,單主節(jié)點工作.
  • 通過基于HTTP的pull方式采集時序數(shù)據(jù)
  • 可以通過push gateway進行時序列數(shù)據(jù)推送(pushing)
  • 可以通過服務(wù)發(fā)現(xiàn)或者靜態(tài)配置去獲取要采集的目標(biāo)服務(wù)器
  • 多種可視化圖表及儀表盤支持

Prometheus通過安裝在遠程機器上的exporter來收集監(jiān)控數(shù)據(jù)澳骤,后面我們將使用到node_exporter收集系統(tǒng)數(shù)據(jù)歧强。

架構(gòu)


image.png

Grafana 是一個開箱即用的可視化工具,具有功能齊全的度量儀表盤和圖形編輯器为肮,有靈活豐富的圖形化選項摊册,可以混合多種風(fēng)格,支持多個數(shù)據(jù)源特點颊艳。


image.png

架構(gòu)

image.png

軟件安裝

Prometheus

官網(wǎng)下載(https://prometheus.io/)茅特,支持Linux、Mac籽暇、Windows系統(tǒng)温治,很好很強大。我這里安裝過Centos和Mac戒悠,這里的實例以Mac為準。

  1. Mac下載的發(fā)行版為darwin版舟山;

  2. 下載下來解壓縮就好绸狐,我得到的版本(2.0.0)內(nèi)容如下:


    image.png
  3. 目錄下的prometheus可以直接啟動


    98772DB7-389C-4C48-84AF-AA8D153494C6.png
  4. 啟動成功以后我們可以通過Prometheus內(nèi)置了web界面訪問,http://ip:9090 累盗,如果出現(xiàn)以下界面寒矿,說明配置成功

    image.png

安裝exporter

(一)下載并解壓node_exporter:

#下載
wget https://github.com/prometheus/node_exporter/releases/download/v0.14.0/node_exporter-0.15.0.linux-amd64.tar.gz -O node_exporter-0.15.0.linux-amd64.tar.gz
# 可自定義解壓目錄
tar -xvf node_exporter-0.15.0.linux-amd64.tar.gz

運行node_exporter:

## 后臺運行   
./node_exporter &

(二)prometheus可以理解為一個數(shù)據(jù)庫+數(shù)據(jù)抓取工具,工具從各處抓來統(tǒng)一的數(shù)據(jù)若债,放入prometheus這一個時間序列數(shù)據(jù)庫中符相。那如何保證各處的數(shù)據(jù)格式是統(tǒng)一的呢?就是通過這個exporter蠢琳。exporter也是用GO寫的程序啊终,它開放一個http接口,對外提供格式化的數(shù)據(jù)傲须。所以在不同的環(huán)境下蓝牲,需要編寫不同的exporter。好在已經(jīng)有很多寫好的exporter泰讽,我們可以直接使用例衍,(本句是一句廢話為了更好的排版顯示)(https://github.com/prometheus這里可以找到很多exporter)我們這里直接使用mysqld_exporter(prometheus.io/download/#mysqld_exporter)昔期。當(dāng)然也要下載對應(yīng)系統(tǒng)的版本。解壓后的內(nèi)容如下:

image.png

這里的mysqld_exporter是啟動文件佛玄,.my.cnf是配置文件硼一。想要正確的導(dǎo)出mysql的狀態(tài)數(shù)據(jù),必須在配置文件中正確的配置mysql的連接信息梦抢。我的配置如下:
image.png

配置好了欠动,就可以啟動了。成功如下所示:
477858E8-8856-4A57-AE92-22A98B06670D.png

通過localhost:9104惑申,就可以看到exporter導(dǎo)出的數(shù)據(jù)了:


image.png

image.png

在Prometheus中配置mysqld_exporter

exporter啟動了具伍,需要在Prometheus中正確的配置。修改prometheus目錄中的prometheus.yml圈驼,增加配置如下:

global:
  scrape_interval:     15s
  evaluation_interval: 15s
  
  - job_name: prometheus
    static_configs:
      - targets: ['localhost:9090']
        labels:
          instance: prometheus
          
  - job_name: linux1
    static_configs:
      - targets: ['192.168.1.120:9100']
        labels:
          instance: sys1
          
  - job_name: linux2
    static_configs:
      - targets: ['192.168.1.130:9100']
        labels:
          instance: sys2

重啟prometheus人芽,點擊導(dǎo)航欄中的status->targets可以看到,mysql的exporter已經(jīng)集成進來了绩脆。


image.png

至此萤厅,prometheus這邊的搭建基本完成了。

安裝Grafana

Grafana官網(wǎng)(https://grafana.com/)靴迫,上面有各個系統(tǒng)安裝的步驟惕味,我的mac是直接通過brew安裝的(如果你的brew太慢,可以換成國內(nèi)的源試一下)玉锌。安裝后用brew services start grafana啟動即可名挥。啟動后,即可通過http://127.0.0.1:3000/來訪問了(默認賬號密碼是admin/admin)主守。進來之后應(yīng)該看到這個頁面:

image.png

首先禀倔,你要添加一個數(shù)據(jù)源,將Grafana和Prometheus關(guān)聯(lián)起來参淫。點擊Add data source救湖,如下填寫數(shù)據(jù)保存即可:
image.png

看到如下的提示,說明你的prometheus工作是正常的:
image.png

接著回到首頁涎才,你需要添加一個dashboard鞋既,如下圖進入dashboard導(dǎo)入頁面:
image.png

這里你需要從https://github.com/percona/grafana-dashboards項目中的dashboards下載MySQL_Overview.json,然后通過上面頁面的Upload .json File按鈕上傳上去耍铜,導(dǎo)入即可邑闺。
image.png

導(dǎo)入成功后,你將看到監(jiān)控頁面业扒,大功告成<爝骸!程储!
image.png

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蹭沛,一起剝皮案震驚了整個濱河市臂寝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌摊灭,老刑警劉巖咆贬,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異帚呼,居然都是意外死亡掏缎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門煤杀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來眷蜈,“玉大人,你說我怎么就攤上這事沈自∽萌澹” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵枯途,是天一觀的道長忌怎。 經(jīng)常有香客問我,道長酪夷,這世上最難降的妖魔是什么榴啸? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮晚岭,結(jié)果婚禮上鸥印,老公的妹妹穿的比我還像新娘。我一直安慰自己腥例,他們只是感情好辅甥,可當(dāng)我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著燎竖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪要销。 梳的紋絲不亂的頭發(fā)上构回,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天,我揣著相機與錄音疏咐,去河邊找鬼纤掸。 笑死,一個胖子當(dāng)著我的面吹牛浑塞,可吹牛的內(nèi)容都是我干的借跪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼酌壕,長吁一口氣:“原來是場噩夢啊……” “哼掏愁!你這毒婦竟也來了歇由?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤果港,失蹤者是張志新(化名)和其女友劉穎沦泌,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辛掠,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡谢谦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了萝衩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片回挽。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖猩谊,靈堂內(nèi)的尸體忽然破棺而出千劈,到底是詐尸還是另有隱情,我是刑警寧澤预柒,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布队塘,位于F島的核電站,受9級特大地震影響宜鸯,放射性物質(zhì)發(fā)生泄漏憔古。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一淋袖、第九天 我趴在偏房一處隱蔽的房頂上張望鸿市。 院中可真熱鬧,春花似錦即碗、人聲如沸焰情。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽内舟。三九已至,卻和暖如春初橘,著一層夾襖步出監(jiān)牢的瞬間验游,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工保檐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留褐健,地道東北人街夭。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓镰惦,卻偏偏與公主長得像闸天,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子扔亥,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,440評論 2 359

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