Kong[nginx]-13 使用prometheus,grafana進(jìn)行監(jiān)控


KONG專題目錄


引言

在服務(wù)器監(jiān)控領(lǐng)域, 我們以前使用過(guò) zabbix + grafana 進(jìn)行配置并使用.
主要使用場(chǎng)景是監(jiān)控多臺(tái)服務(wù)器的硬件使用情況.(磁盤,CPU,內(nèi)存,帶寬等)

今天登場(chǎng)的組合是 kong + prometheus + grafana,
主要用途是監(jiān)控kong代理的服務(wù)接口壓力信息(使用頻率,接口響應(yīng)延時(shí)).
另外相比 zabbix而言, 在配置方面要省時(shí)省力很多了(官方提供了相關(guān)插件)

簡(jiǎn)單介紹一下, 三個(gè)角色的用途:

  • kong : 看到這里的讀者, 都不需要解釋了.
  • prometheus: 主要通過(guò)讀取 http://host/metrics接口, 來(lái)收集相關(guān)服務(wù)的性能數(shù)據(jù)
  • grafana: 用于監(jiān)控?cái)?shù)據(jù)顯示的WebUI, 低調(diào)奢華有內(nèi)涵

本文編排方式 :

  • 優(yōu)先介紹prometheus, grafana的安裝流程.
  • 然后介紹一下整合配置流程
    • kong-prometheus 插件配置,提供源頭數(shù)據(jù)
    • 配置prometheus, 從kong讀取數(shù)據(jù)
    • 配置grafana
      • 添加 database (讀取 prometheus)
      • 添加 dashboard模版( 用于展示 prometheus的數(shù)據(jù))

0x01 Grafana安裝

采用yum方式安裝

先增加yum源信息:

touch /etc/yum.repos.d/grafana.repo
vim /etc/yum.repos.d/grafana.repo
# 下面是grafana.repo文件內(nèi)容
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt

后面就是一頓日常操作:

# 安裝文字/圖片顯示依賴
yum install fontconfig
yum install freetype*
yum install urw-fonts
# 安裝Grafana
yum install grafana
# 啟動(dòng)服務(wù)
systemctl start grafana-server
# 開機(jī)自動(dòng)啟動(dòng)
systemctl enable grafana-server.service

然后通過(guò)訪問(wèn)端口 3000,打開登錄畫面:

grafana

進(jìn)入畫面:http://localhost:3000 完成管理員設(shè)置.

初始用戶名密碼為 admin/admin,第一次登錄后, 會(huì)提示修改密碼.


0x02 Prometheus 安裝

Prometheus是用Go語(yǔ)言開發(fā),從官網(wǎng) 下載打包文件后,
解壓后就可以直接使用了. (這個(gè)使用體驗(yàn)真心要夸一下 ^ ^

prometheus

cd /opt/
# 下載
wget https://github.com/prometheus/prometheus/releases/download/v2.11.1/prometheus-2.11.1.linux-amd64.tar.gz
# 解壓
tar -zxf prometheus-2.11.1.linux-amd64.tar.gz
# 創(chuàng)建軟鏈接
ln -s /opt/prometheus-2.11.1.linux-amd64 /opt/prometheus
# 目錄下已經(jīng)包含一個(gè)配置文件: prometheus.yml
# 進(jìn)入目錄 
cd prometheus
# 創(chuàng)建工作目錄 data
mkdir -p /opt/prometheus/data
# 啟動(dòng)服務(wù): 
# 日志保留時(shí)間默認(rèn)15天  --storage.tsdb.retention.time=15d
nohup /opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/data 2>&1 &

start prometheus

服務(wù)啟動(dòng)成功后, 就可以通過(guò) 9090端口進(jìn)行訪問(wèn)了:
prometheus-ui


配置篇

0x03 打開kong的metrics支持

我們上面了解到, 要想讓prometheus 來(lái)收集數(shù)據(jù), 那么就要從這個(gè)服務(wù)上從/metrics 路由上取得數(shù)據(jù).
然后, 默認(rèn)情況下, 這個(gè)路由是沒(méi)經(jīng)過(guò)配置, 顯示是沒(méi)有結(jié)果的.

metrics

于是乎, 我們來(lái)打開這個(gè)任督二脈:
這里我們通過(guò)admin API, 添加 /metrics 支持

# 
curl -XPOST http://localhost:8001/services -d name=prometheusEndpoint -d url=http://localhost:8001/metrics
curl -XPOST http://localhost:8001/services/prometheusEndpoint/routes -d paths[]=/metrics

open metrics

這里有一個(gè)問(wèn)題, 這個(gè) /metrics 是面向所有客戶端都開發(fā)訪問(wèn)的.
所以, 通過(guò)下面這行命令, 為上面的配置, 添加一條IP白名單:

curl -XPOST http://localhost:8001/services/prometheusEndpoint/plugins -d name=ip-restriction -d config.whitelist=192.168.0.0/16
IP受限訪問(wèn)效果

OK, 準(zhǔn)備工作已經(jīng)完成
開始我的表演!

0x04 為kong添加 prometheus插件

這個(gè)過(guò)程相信小伙伴們已經(jīng)非常熟悉了, 我們添加一個(gè)全局插件 prometheus,
表示這個(gè)插件會(huì)監(jiān)控所有的請(qǐng)求.

add prometheus

完美, 經(jīng)過(guò)這一步史詩(shī)級(jí)的配置, 我們的/metrics已經(jīng)具備了不可估量的能力.
不信, 你再去刷新一下 cc/metrics:

metrics full

哇!!!, 好像真的多了好多數(shù)據(jù)呀, 好厲害的樣子 O_O
恩, 多請(qǐng)求幾次接口, 這里的數(shù)據(jù)會(huì)有些變化的 : )

那么, 接口性能數(shù)據(jù)有了, 接下來(lái), 介紹如何把這些信息提供給 prometheus

0x05 配置 prometheus

打開 prometheus.yml, 找到最后一行, 添加我們的kong提供服務(wù)信息

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
    # 仔細(xì)看下面兩行注釋:
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'.  
    static_configs:
            - targets: ['localhost:9090','cc']
prometheus.yml

配置完成后, 重啟prometheus服務(wù).
為了驗(yàn)證prometheus拿到了數(shù)據(jù), 我們需要在網(wǎng)頁(yè)上, 輸入kong關(guān)鍵字,應(yīng)該看到如圖的一些信息:

kong-data

很好, 我們已經(jīng)完成一大半工作了.
接下來(lái), 是時(shí)候在Grafana上Show一波操作了~~~

0x06 配置Grafana

grafana里的配置, 分兩部分:

  • datasource: 負(fù)責(zé)采集數(shù)據(jù)
  • dashboard: 負(fù)責(zé)UI展示
  1. datasource配置

如下圖所示: 我們?cè)黾右粋€(gè)數(shù)據(jù)源, 選擇類型為prometheus:

增加數(shù)據(jù)源

配置數(shù)據(jù)源時(shí), 選擇本機(jī)的 9090 HTTP服務(wù)即可


配置數(shù)據(jù)源

測(cè)試保存.


Save & Test
  1. dashboard配置

通過(guò)import的方式添加一個(gè)dashboard


import

在ID處輸入7424

7424

下一頁(yè): 選擇數(shù)據(jù)源


數(shù)據(jù)源

保存后, 會(huì)立即切換到dashboard頁(yè):


效果

效果2

效果3

哇, 好酷,好酷!!!
居然不需要啥配置, 就能有這么帥氣的界面了!!!
夠我吹到新年了 _


等等, 好像哪里不對(duì)
上面的7424什么鬼?

這當(dāng)然是模版的id啦,
這個(gè)帥氣的dashboard模版 還是kong官方出品的.
詳情請(qǐng)點(diǎn)這里

7424

0x07 后記

這一篇信息量稍微有點(diǎn)大, 不過(guò)出來(lái)的效果還是非常感人的.
非常推薦小伙伴們?cè)囈徊? 因?yàn)榉?wù)端能拿出來(lái)show的東西真沒(méi)多少 :-)

遺留問(wèn)題:

  • prometheus 生成的 data 如何控制文件體積

KONG專題目錄


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評(píng)論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,634評(píng)論 3 419
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,653評(píng)論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評(píng)論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,835評(píng)論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,235評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評(píng)論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,459評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,000評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,819評(píng)論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,004評(píng)論 1 370
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,257評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評(píng)論 1 288
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,717評(píng)論 3 393
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,003評(píng)論 2 374