美容院網(wǎng)站源碼seo搜索引擎優(yōu)化名詞解釋
本節(jié)重點(diǎn)介紹 :
-
exporter 流派
- 必須和探測(cè)對(duì)象部署在一起的
- 1對(duì)多的遠(yuǎn)端探針模式
-
exporter管控的難點(diǎn)
- 1對(duì)1 的exporter 需要依托諸如 ansible等節(jié)點(diǎn)管理工具 ,所以應(yīng)該盡量的少
-
1對(duì)1的exporter改造成探針型的通用思路
exporter 流派
必須和探測(cè)對(duì)象部署在一起的
- 可以理解為1對(duì)1 的sidecar模式
- 典型的例子如
- node_exporter
- process-exporter
1對(duì)多的遠(yuǎn)端探針模式
- 典型的例子如
- blackbox_exporter
- redis_exporter
- snmp_exporter
exporter管控的難點(diǎn)
- exporter的數(shù)量應(yīng)該盡量少
1對(duì)1 的exporter 管理上的問題
- 1對(duì)1 的exporter的安裝和管理是很大的問題
- 需要依托諸如 ansible等節(jié)點(diǎn)管理工具
探針型exporter的優(yōu)點(diǎn)
- 只需要管理有限的探針節(jié)點(diǎn)
- 被探測(cè)的目標(biāo)可以通過http參數(shù)傳遞給探針
比如redis-exporter的多實(shí)例配置
- job_name: 'redis_exporter'static_configs:- targets:- redis://redis01:6379- redis://redis02:6379metrics_path: /scraperelabel_configs:- source_labels: [__address__]target_label: __param_target- source_labels: [__param_target]target_label: instance- target_label: __address__replacement: redis_exporter01:9121
比如改造后的mysqld-exporter 多實(shí)例配置
- job_name: 'mysql_exporter'metrics_path: /probestatic_configs:- targets:- user1:pass1@tcp(mysql1:port1)/- user2:pass2@tcp(mysql2:port2)/relabel_configs:- source_labels: [__address__]target_label: __param_dsn- source_labels: [__param_dsn]target_label: instanceregex: .*tcp\((.*?)\).*replacement: $1action: replace- target_label: __address__replacement: localhost:9104 # 修改后的mysqld_exporter地址
將所有 1對(duì)1的exporter改造成探針型的收益
- 只要有維護(hù)少量的探針進(jìn)程
- 所有的target都由prometheus通過http傳參調(diào)用 exporter
- target的更新只需要在prometheus側(cè)變更即可,可以和服務(wù)發(fā)現(xiàn)聯(lián)動(dòng)
1對(duì)1的exporter改造成探針型的通用思路
- 在8.3 我們修改mysqld_exporter源碼 ,改造成類似blackbox的探針型,實(shí)現(xiàn)一對(duì)多探測(cè)
1. 添加/probe 探針處理handler ProbeHandler
http.HandleFunc("/probe", func(w http.ResponseWriter, r *http.Request) {ProbeHandler(w, r)})
2. 編寫具體的ProbeHandler
- 解析http 中的target參數(shù)
- 用target初始化對(duì)應(yīng)的exporter對(duì)象
- 初始化prometheus http Handler
func ProbeHandler(w http.ResponseWriter, r *http.Request) {target := r.URL.Query().Get("target")mysqlExp := New(r.Context(), dsn, metrics, scrapers, logger)registry := prometheus.NewRegistry()registry.MustRegister(mysqlExp)h := promhttp.HandlerFor(registry, promhttp.HandlerOpts{})h.ServeHTTP(w, r)
}
3. 傳參時(shí)調(diào)用對(duì)應(yīng)exporter對(duì)象的 collect方法
- 通常是創(chuàng)建一個(gè)連接對(duì)象
- 然后執(zhí)行 諸如info命令的采集任務(wù)即可
本節(jié)重點(diǎn)介紹 :
-
exporter 流派
- 必須和探測(cè)對(duì)象部署在一起的
- 1對(duì)多的遠(yuǎn)端探針模式
-
exporter管控的難點(diǎn)
- 1對(duì)1 的exporter 需要依托諸如 ansible等節(jié)點(diǎn)管理工具 ,所以應(yīng)該盡量的少
-
1對(duì)1的exporter改造成探針型的通用思路