Istio采集指標prometheus+grafana方案

[TOC]

Istio采集指標prometheus+grafana方案

Istio的prometheus支持

prometheus在Istio中的現(xiàn)狀

prometheus這個后端組件涉及到數(shù)據(jù)存儲問題(levleDB尚猿,代碼里面添加SDK怎憋,直接存儲在本地磁盤)枫夺,而且我們有自己的prometheus集群至非,因此不太建議直接使用官方自帶的鏡像,而是采用自己的prometheus集群盒发。

先看看原理订歪,mixer組件中遙測相關(guān)的對外提供的Kubernetes的Service的服務(wù)名是istio-telemetry滔韵,mixer對外開放的exporter的數(shù)據(jù)查詢接口是/metrics;istio-telemetry開放了42422端口颖变,用來采集istio-mesh指標生均,開放了9093端口,用來采集mixer本身的指標腥刹。查看istio-telemetry這個Service疯特,可以看到如下配置:

  - name: http-monitoring
    port: 9093
  - name: prometheus
    port: 42422

另外就是還有一個envoy的指標,是通過statsd 轉(zhuǎn)換為 prometheus 的肛走,關(guān)于statsd exporter的更多信息查看這里漓雅,大體流程如下:

+----------+                         +-------------------+                        +--------------+
|  StatsD  |---(UDP/TCP repeater)--->|  statsd_exporter  |<---(scrape /metrics)---|  Prometheus  |
+----------+                         +-------------------+                        +--------------+

在Istio中,這個對外提供的服務(wù)名是Istio-statsd-prom-bridge朽色,通過9102端口對外提供服務(wù)邻吞,通過kubectl get svc -n istio-system istio-statsd-prom-bridge可以查看到詳細信息:

apiVersion: v1
kind: Service
metadata:
  name: Istio-statsd-prom-bridge
  namespace: Istio-system
  labels:
    chart: mixer-1.0.0
    release: RELEASE-NAME
    Istio: statsd-prom-bridge
spec:
  ports:
  - name: statsd-prom
    port: 9102
  - name: statsd-udp
    port: 9125
    protocol: UDP
  selector:
    Istio: statsd-prom-bridge

這里,如果修改istio-statsd-prom-bridge這個服務(wù)的Service type類型葫男,則可能導致ingressgateway失敗抱冷,因為istio-statsd-prom-bridge的IP失效異常了。查看ingressgateway的日志可以發(fā)現(xiàn):

 error initializing configuration '/etc/istio/proxy/envoy-rev0.json': malformed IP address: istio-statsd-prom-bridge

這個時候梢褐,可以通過刪除ingressgateway這個pod旺遮,重啟即可生效

Istio默認的metric監(jiān)控指標

默認監(jiān)控指標指的是使用初始配置時针余,Istio 收集的監(jiān)控指標(metrics)的詳細信息弄诲,可以通過更改配置來添加和刪除指標轰枝,具體配置指標可以查看config.yaml配置文件中的kind: metric舰罚,這些指標都是通過metric 模板來定義的朴肺。

接入外部prometheus集群的方案

prometheus需要采用自己的服務(wù)玷室,因此需要禁用俏扩,然后配置好相應的花颗,注意服務(wù)要打通丈积,可以采用NodePort方式筐骇,也可以采用ClusterIP(prometheus的Server端要打通網(wǎng)絡(luò)),最優(yōu)的姿勢當然就是服務(wù)發(fā)現(xiàn)江滨。需要將自己的prometheus集群里面的配置(scrape_config)的數(shù)據(jù)采集配置上mixer的地址和采集的端口(共三個端口)铛纬,然后接口API是/metrics,這樣自己的集群就能夠采集到mixer的數(shù)據(jù)了:

  • istio-mesh (istio-mixer.istio-system:42422): 所有 Mixer 生成的網(wǎng)格指標

    • 如果不要Mixer組件唬滑,則可以不進行監(jiān)控告唆,也沒有這樣的數(shù)據(jù)
    • 這個是istio-telemetry組件提供的功能
  • mixer (istio-mixer.istio-system:9093): 所有特定于 Mixer 的指標, 用于監(jiān)控 Mixer 本身

    • 這個是istio-policy 組件提供的功能
  • envoy (istio-mixer.istio-system:9102): envoy 生成的原始統(tǒng)計數(shù)據(jù)(并從 statsd 轉(zhuǎn)換為 prometheus )

    • 這個是istio-statsd-prom-bridge組件提供的服務(wù)

pre環(huán)境驗證中可以將istio-telemetry和istio-statsd-prom-bridge的Service的Type的類型改為NodePort莫秆,然后通過端口映射查看;需要注意的是如果修改istio-statsd-prom-bridge的Service的Type的類型改為NodePort悔详,則會導致ingressgateway失敗镊屎,需要刪除ingressgateway的pod進行重啟生效。

然后可以通過各自的 /metrics 接口查看數(shù)據(jù)

如何處理prometheus服務(wù)發(fā)現(xiàn)

上述的方案都是通過NodePort的方式茄螃,這樣的話缝驳,需要手動配置要采集的目標地址(ip:port/URI),但是線上應用應該要采用prometheus的服務(wù)發(fā)現(xiàn)功能归苍,自動發(fā)現(xiàn)節(jié)點并采集用狱,后面這個需要和運維同學溝通,如何實現(xiàn)自動發(fā)現(xiàn)服務(wù)

prometheus的服務(wù)發(fā)現(xiàn)類別可以參考

新增Istio的prometheus采集指標

新增Istio組件的采集指標拼弃,需要做相關(guān)配置夏伊,可以詳見收集指標和日志

現(xiàn)有Istio默認的監(jiān)控指標有這些

接入外部的grafana系統(tǒng)

Istio默認有g(shù)rafana服務(wù),并且已經(jīng)有相關(guān)面板配置ok吻氧,只需要查看溺忧,但是因為我們公司自己已有一套成熟的prometheus+grafana方案,運維配套盯孙、權(quán)限管理鲁森、組織管理等比較成熟,并且運維還需要兼顧容器內(nèi)的服務(wù)和容器外的服務(wù)振惰,因此Istio中歌溉,更適合采用外部已有的grafana服務(wù)。

只是我們需要將現(xiàn)有Istio提供的這些面板都通過模板方式轉(zhuǎn)移到運維的grafana中

實戰(zhàn)部署外部自有系統(tǒng)

1. Mac安裝部署prometheus + grafana

兩個服務(wù)都采用二進制安裝部署

  • 啟動prometheus:./prometheus骑晶;訪問prometheus

  • 啟動grafana:/grafana-server ; 訪問grafana

    • 【默認密碼:admin:admin】
    • 【new密碼:admin:123456】
    • 添加數(shù)據(jù)源痛垛,添加prometheus的數(shù)據(jù)源

2. 配置prometheus的scrape_configs

配置prometheus的scrape_configs,新增Istio相關(guān)的采集

  - job_name: 'Istio'
    metrics_path: '/metrics'
    static_configs:
      - targets: ['172.31.2.2:32398']
        labels:
          group: 'Istio-mesh'
      - targets: ['172.31.2.2:32697']
        labels:
          group: 'mixer'
      - targets: ['172.31.2.2:32744']
        labels:
          group: 'envoy'

然后重啟prometheus桶蛔,通過http://172.31.36.68:9090/config查看

然后查看采集指標匙头,搜索isito,發(fā)現(xiàn)有了數(shù)據(jù)

3. 配置grafana的DataSource

先add data source羽圃,設(shè)置默認的數(shù)據(jù)源乾胶,在setting中的type中選擇prometheus,url選擇地址http://172.31.2.2:9090朽寞,然后save and test

3. 配置grafana

在原有g(shù)rafana系統(tǒng)中,Share dashboard斩郎,然后Export到文件脑融,然后再在新的grafana中import Json file,然后選定prometheus即可缩宜。這樣默認得到是DashBoard是無法編輯的肘迎,如下兩個方式可以調(diào)整為可編輯狀態(tài):

  • 導出的Json File甥温,需要修改editable為true,否則不能修改只能查看

  • 或者新版可以通過admin賬號來Make dashboard editable

    • Setting -> General -> Make Editable

問題 & TODO

  1. 如何動態(tài)的處理prometheus的服務(wù)發(fā)現(xiàn)

【"歡迎關(guān)注我的微信公眾號:Linux 服務(wù)端系統(tǒng)研發(fā)妓布,后面會大力通過微信公眾號發(fā)送優(yōu)質(zhì)文章"】

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末姻蚓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子匣沼,更是在濱河造成了極大的恐慌狰挡,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件释涛,死亡現(xiàn)場離奇詭異加叁,居然都是意外死亡,警方通過查閱死者的電腦和手機唇撬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門它匕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窖认,你說我怎么就攤上這事豫柬。” “怎么了扑浸?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵轮傍,是天一觀的道長。 經(jīng)常有香客問我首装,道長创夜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任仙逻,我火速辦了婚禮驰吓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘系奉。我一直安慰自己檬贰,他們只是感情好,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布缺亮。 她就那樣靜靜地躺著翁涤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪萌踱。 梳的紋絲不亂的頭發(fā)上葵礼,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機與錄音并鸵,去河邊找鬼鸳粉。 笑死,一個胖子當著我的面吹牛园担,可吹牛的內(nèi)容都是我干的届谈。 我是一名探鬼主播枯夜,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼艰山!你這毒婦竟也來了湖雹?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤曙搬,失蹤者是張志新(化名)和其女友劉穎摔吏,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體织鲸,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡舔腾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了搂擦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片稳诚。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖瀑踢,靈堂內(nèi)的尸體忽然破棺而出扳还,到底是詐尸還是另有隱情,我是刑警寧澤橱夭,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布氨距,位于F島的核電站,受9級特大地震影響棘劣,放射性物質(zhì)發(fā)生泄漏俏让。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一茬暇、第九天 我趴在偏房一處隱蔽的房頂上張望首昔。 院中可真熱鬧,春花似錦糙俗、人聲如沸勒奇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赊颠。三九已至,卻和暖如春劈彪,著一層夾襖步出監(jiān)牢的瞬間竣蹦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工粉臊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留草添,地道東北人。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓扼仲,卻偏偏與公主長得像远寸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子屠凶,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

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