找回密码
 注册
查看: 3070|回复: 1

Prometheus监控Ceph分布式存储

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2021-8-10 11:27:55 | 显示全部楼层 |阅读模式
1.Ceph的Dashboard只适合查看集群状态,生产环境中最好还是把监控ceph纳入到已有的zabbix或Prometheus监控系统中;由于Prometheus是一个restful风格的api,它是通过http或https接口进行数据指标采集的,但是很多被监控的应用并没有http接口,因此需要借助各自应用的exporter进行间接采集;
0 F0 G' L2 ?$ Y2.mgr的prometheus_exporter和node_exporter1 T. A" J* _/ F5 e9 P( q
    1.由于Ceph底层是rados协议没有http接口,所以也需要有单独的exporter进行采集,只需要在ceph的一个节点上安装prometheus_exporter,获得cephX授权后通过mon或mgr查询ceph集群信息后,把采集到的数据转为与prometheus兼容的格式并通过http协议响应prometheus的拉取请求;好在这个prometheus_exporter是直接内置在Ceph的mgr模块中的,只需要启用该模块即可;) P7 p5 w( h* G7 O9 D
    2.由于mgr内嵌的prometheus_exporter只是监控Ceph系统本身的数据,而每个ceph节点主机的cpu、内存信息还是需要部署node_exporter进行数据采集监控的;8 j8 U( y! G& t1 F& P$ |2 K
3.1.创建运⾏Prometheus Server进程的系统⽤⼾,并为其创建家⽬录/var/lib/prometheus作为数据存储⽬录;如果公司内部中已有prometheus,可省略下面部分的安装过程,直接进行监控ceph的配置部分即可;
) J% a8 ^& V' t+ ]; T4 H- `* R* o) W    ~]# useradd -r -m -d /var/lib/prometheus prometheus  #创建数据目录
: [) ~3 [4 A  o/ @; G5 x% F    ~]# tar xf prometheus-2.7.2.linux-amd64.tar.gz -C /usr/local/
8 N& Z$ \  u, T6 [$ r- k! N        #官方下载二进制包解压
! F' M% C  i# _# Y) ^    ~]# ln /usr/local/prometheus-2.7.2.linux-amd64 /usr/local/prometheus
* r( Y+ H* n/ p$ H+ A- g        #创建软链接/ F. i1 p; H) A# N( L
    ~]# prometheus --version    #查看prometheus版本
! _" m, J0 L7 q* f    创建Prometheus专⽤的Unit File文件放在/usr/lib/systemd/system/目录下4 P; D5 U$ D& U% W
        ~]# vim /usr/lib/systemd/system/prometheus.service9 w, B- j+ P4 D5 n* a; @
            [Unit]+ F" X4 O7 t8 F# C
            Documentation=https://prometheus.io% e- v6 ~1 o4 j" V; y' I6 o
            After=network.target
( w% h0 {2 n3 p8 B            [Service]
0 u# s* E( W8 V0 W            EnvironmentFile=-/etc/sysconfig/prometheus2 M- h. Y3 @+ I8 L
            User=prometheus
2 `$ X/ p5 D# {6 Z5 w+ T            ExecStart=/usr/local/prometheus/prometheus \
( U4 d" t& }  P& {                    --storage.tsdb.path=/var/lib/prometheus \) J! K8 G7 X* L, d5 Z. K' x3 H
                    --config.file=/usr/local/prometheus/prometheus.yml \
5 o3 A( D" W# m+ R/ M) w3 T                    --web.listen-address=0.0.0.0:9090 \3 W% A4 s8 b) e, h+ [6 S4 g% W
                    --web.external-url=" ^3 H5 P9 d& N/ R! A0 J
            Restart=on-failure
: N% ~- A8 p( H% G% U) V+ K) R7 ^            StartLimitInterval=12 u9 _, T: k( ^7 T' z
            RestartSec=3
% g2 R7 Q5 @9 f+ P  b  D            [Install]
" a" L5 P, j  j# e            WantedBy=multi-user.target* e5 s: J! R, P2 ^/ E  f
3.2.每个Ceph节点安装node_exporter采集ceph节点主机的数据6 D0 U. U# a5 M) j
    ~]# tar xf node_exporter-0.17.0.linux-amd64.tar.gz -C /usr/local/
  T3 h9 K  `  I+ O    ~]# ln -sv /usr/local/node_exporter-0.17.0.linux-amd64 /usr/local/node_exporte2 Z! M" ]7 i7 ?/ Q! [  n: w
    ~]# useradd -r -m -d /var/lib/prometheus prometheus
8 ^( B6 Z. w. n5 t& o: O( T$ x        创建运⾏Prometheus Server进程的系统⽤⼾,并为其创建家⽬录/var/lib/prometheus作为数据存储⽬录
0 D% \7 E5 L/ A& y' @3 `! D1 [# _    ~]# vim /usr/lib/systemd/system/node_exporter.service
- W4 S! ?, Y# Y+ E& V$ z5 z        [Unit]
' ]" S8 D! y" }6 R* y- h        Documentation=https://github.com/prometheus/node_exporter
+ g  ^7 a0 m1 q        After=network.target1 l# \- A, {& V1 }' L
        [Service], @% ~. u: {9 n
        EnvironmentFile=-/etc/sysconfig/node_exporter7 v3 J5 O. K0 |1 d- \* A: x0 y' |
        User=prometheus3 q- S/ S; L# k3 m- q  v' R  g
        ExecStart=/usr/local/node_exporter/node_exporter \
5 u; F; \0 X8 ~, Z% S: U- n3 C            $NODE_EXPORTER_OPTS
% K% B7 H5 D' u        Restart=on-failure
# G$ j$ ^# K  r, J. F        StartLimitInterval=1# K. [; W5 d1 Z
        RestartSec=3
9 U  o5 o4 A. Z6 L* Y! _        [Install]( c; T' u, T! i6 R, q
        WantedBy=multi-user.target5 B( S+ \7 W# m: G
    ~]# systemctl daemon-reload && systemctl start node_exporter.service/ p* N# v. u% z& j% |+ I
    ~]# s -tunpl |grep 9100      #查看监控端口
' V8 g. Q- E* L; a. u- E        tcp    LISTEN     0      128      :::9100     :::*   users:(("node_exporter",pid=6776,fd=3))
4 f$ ^: A- `  \+ C3 O$ v( N    ~]# curl localhost:9100/metrics  #测试会否采集到指标数据, v+ H- x0 [! b- c
3.3.启用Ceph-mgr中的promethues模块
1 |" Y3 Y1 [* [, S# [0 `5 i! |    ~]# ceph mgr module enable prometheus
& }* p- U5 e4 |* S) U1 R! I        #Prometheus模块默认监听于TCP协议的9283端⼝( M' J! M7 p, H: z
    ~]# ceph mgr services3 _* q! `8 C! y# e" g: t
        {
( ^9 ~8 k) S4 I            "dashboard": "http://stor02.cre.io:8080/",# I! Z0 L# U) y: `2 d
            "prometheus": "http://stor02.cre.io:9283/"
; g# L" D" T) Q$ P0 E3 H        }
6 ?7 n# f9 ?! m5 J    ~]# ss -tunpl |grep 9283
4 f. \4 `( d% [8 Y        tcp    LISTEN     0      5        :::9283      :::*    users:(("ceph-mgr",pid=1071,fd=22))
# v' ?2 u( I5 w: Y( }        #会在Mgr所在的存储节点上开启9283端口9 U# \9 \; Z/ d/ u
3.4.Prometheus的主配置⽂件为prometheus.yml字段和格式解释; v1 @9 A& s% S9 M' \
    prometheus.yml文件主要由global、rule_files、scrape_configs、alerting、remote_write和remote_read⼏个配置段组成,其中:
" N' I- W& S5 ]- f! v: j' F/ K1 w    1.global:全局配置段;
1 e- A. I8 O- C* u9 B8 W1 u    2.scrape_configs:配置要监控的目标对象
. O7 T9 d3 [* w% C/ W+ s4 x! [% K        scrape配置集合,⽤于定义监控的⽬标对象(target)的集合,以及描述如何抓取(scrape)相关指标数据的配置参数;通常,每个scrape配置对应于⼀个单独的作业(job),⽽每个targets可通过静态配置(static_configs)直接给出定义,也可基于Prometheus⽀持的服务发现机制进⾏⾃动配置;- {/ l) W0 P+ F' I
    3.alertmanager_configs:指定配置监控的报警规则  q4 {* X9 |( v- d- M
        可由Prometheus使⽤的Alertmanager实例的集合,以及如何同这些Alertmanager交互的配置参数;每个Alertmanager可通过静态配置(static_configs)直接给出定义,也可基于Prometheus⽀持的服务发现机制进⾏⾃动配置;. q/ L* |6 D7 p0 ]) E
    4.remote_write:& c8 q. N( x) @/ I$ u6 c$ U
        配置"远程写"机制,Prometheus需要将数据保存于外部的存储系统(例如InfluxDB)时定义此配置段,随后Prometheus将样本数据通过HTTP协议发送给由URL指定适配器(Adaptor);
- d  V! \9 C5 T9 @6 O% d. ^    5.remote_read:7 u. F6 T7 L$ r! p/ t4 U- z+ ]+ o: @
        配置"远程读"机制,Prometheus将接收到的查询请求交给由URL指定适配器(Adpater)执⾏,Adapter将请求条件转换为远程存储服务中的查询请求,并将获取的响应数据转换为Prometheus可⽤的格式: a) a2 b5 O3 e: d
    2.1.scrape配置段$ q5 E6 M, m0 A3 ?! S7 I
        1.使⽤static_configs静态配置Job的语法格式:% g- H% _# x9 z0 |- b
            # The targets specified by the static config.
4 h7 C) W! `4 _# ]1 u            targets:, g& c5 |5 O+ c5 Q5 ~
              [ - '<host>' ]+ T0 ?! G6 G) S! f
            # Labels assigned to all metrics scraped from the targets.
/ Z. W+ A: p3 K6 Q+ i- r6 z- v5 U+ b            labels:
; @7 V, z0 |. H3 c0 l2 a& y              [ <labelname>: <labelvalue> ... ]3 n! V1 E: u6 A- V6 k
        2.使⽤file_sd_configs基于文件发现机制配置Job的语法格式
$ p0 E0 @8 m' W            [
  c' @# g7 s: Z3 Z( o" j( n                {9 x: |- r( ^& g+ G% q, d# m4 }
                    "targets": [ "<host>", ... ],
+ V( o7 q1 k) r3 U; N$ D4 J) U! d; |' [                    "labels": {
0 t% S( f5 S' w$ p3 D+ B                      "<labelname>": "<labelvalue>", ...5 n# U: v" h! e
                    }
8 T) Z. @, w' ]/ R: B6 {2 r/ s                },0 x: _# T' j% U
                ...% y& M$ Z" N7 ~3 r% {( L
            ]
  c/ y  ]4 T' `, ~, \' S0 h# Q3.5.配置prometheus监控ceph集群和ceph存储节点主机
/ o- R9 r9 O! V$ O$ ^& L* _' S    ~]# vim /etc/prometheus/prometheus.yml
/ w" E+ f: `8 R+ P9 w# I6 }% t        scrape_configs:
  q' _+ q3 ?, F: J" Q/ ]          - job_name: 'prometheus'
9 ]* U. {* _0 @" [% H  H$ T            static_configs:3 y( X/ _+ d0 i0 ~& G% ]
            - targets: ['111.231.143.40:9090']6 A$ K" U8 ]: @9 @2 B1 J, j* I
          - job_name: 'node_exporter'
, O; W3 P1 R1 n. u' x            static_configs:' z9 a8 I  H, S; @7 k% ^
            - targets: ['stor01.cre.io:9100']. c8 a( l7 |* X) P3 Z9 p% y
            - targets: ['stor02.cre.io:9100']' |" x! b( e% d+ z% D
            - targets: ['stor03.cre.io:9100']; U! ~3 G3 g8 c: i! q: R
          - job_name: 'ceph'$ a. x: r2 C/ e! E$ S$ a
        #   honor_labels: true- P! d2 p. c. p* Y) H4 w
            static_configs:
3 d3 A2 }3 K5 D2 _4 w# O" w: j            - targets: ['stor02.cre.io:9283']4 u' f1 R- D6 J: A( ~/ k3 P' T
    注意事项:) e" @7 ]' P4 c9 c& a# u+ |
        1.job_name=node_exporter设置ceph集群的3个主机节点,job_name=ceph设置manager所在节点的主机名和Prometheus模块的端口;
" ^7 w$ Z1 O4 e# b  S1 b        2.注意prometheus中的targets中要写主机的FQDN格式的主机名,否者ceph dashboard中host details中不能正常显示监控数据,因为ceph dashboard是使用FQDN格式的主机名查询监控信息,如果prometheus中写的是IP会导致查询不到;而grafana使用IP查询,所以在grafana中不会有这种错误;
; }: c* ^$ w2 t" v& }        3.honor_labels=true必须有且设置为true,否者会导致CephDashbaord中显示grafana某些面板没有数据出现(这个待验证,个人认为可以设置此参数);
; u, r3 E( D; X9 S4 P        4.如果ceph集群中部署了多个manager,需要在job_name=ceph中添加多个targets将所有magr的地址都写上;(本ceph集群只部署了一个mgr)9 _  D2 |/ U+ v) ^! g
~]# systemctl daemon-reload1 v% g. y6 \5 [: E
~]# systemctl start prometheus && systemctl enable prometheus  #设置开启自启
1 m3 I# L3 b2 z" L% ]6 p验证配置是否抓取到数据:
: d& S) l) ~1 O) S7 {4 F    登录prometheus地址:http://192.168.10.10:9090,查看Targets页面上的prometheus、3个node、ceph mgr是否都是UP的即可:

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2021-8-10 11:28:56 | 显示全部楼层
1.Ceph的Dashboard只适合查看集群状态,生产环境中最好还是把监控ceph纳入到已有的zabbix或Prometheus监控系统中;由于Prometheus是一个restful风格的api,它是通过http或https接口进行数据指标采集的,但是很多被监控的应用并没有http接口,因此需要借助各自应用的exporter进行间接采集;
/ @! ~4 \! t0 m2.mgr的prometheus_exporter和node_exporter( w2 g9 f% E) u; Z* P1 }4 S9 v
    1.由于Ceph底层是rados协议没有http接口,所以也需要有单独的exporter进行采集,只需要在ceph的一个节点上安装prometheus_exporter,获得cephX授权后通过mon或mgr查询ceph集群信息后,把采集到的数据转为与prometheus兼容的格式并通过http协议响应prometheus的拉取请求;好在这个prometheus_exporter是直接内置在Ceph的mgr模块中的,只需要启用该模块即可;
4 U2 Q' ]9 o1 T5 c8 z& @    2.由于mgr内嵌的prometheus_exporter只是监控Ceph系统本身的数据,而每个ceph节点主机的cpu、内存信息还是需要部署node_exporter进行数据采集监控的;/ R1 w0 [" J& t" k
3.1.创建运⾏Prometheus Server进程的系统⽤⼾,并为其创建家⽬录/var/lib/prometheus作为数据存储⽬录;如果公司内部中已有prometheus,可省略下面部分的安装过程,直接进行监控ceph的配置部分即可;
7 \, ~' I& `; |" |* ^2 a6 y    ~]# useradd -r -m -d /var/lib/prometheus prometheus  #创建数据目录; A- A0 _& D+ J2 m8 z7 b
    ~]# tar xf prometheus-2.7.2.linux-amd64.tar.gz -C /usr/local/9 |  D' ^5 t7 {/ m, _
        #官方下载二进制包解压
* v: N# |5 x1 }9 q    ~]# ln /usr/local/prometheus-2.7.2.linux-amd64 /usr/local/prometheus
/ U3 t' A2 y1 [- J' O        #创建软链接0 j8 X9 P. ^, x* A2 @
    ~]# prometheus --version    #查看prometheus版本% I& u) ~( v' t
    创建Prometheus专⽤的Unit File文件放在/usr/lib/systemd/system/目录下8 [: {  Z. L4 O& s3 ?) o& w
        ~]# vim /usr/lib/systemd/system/prometheus.service
2 [. q, w, d' M4 U5 D4 E4 ]            [Unit]& L0 x3 `+ a$ l. e6 I
            Documentation=https://prometheus.io
0 Q/ L# f1 j/ n6 E( u! `            After=network.target
) X, }. b! r4 w8 U' O& i" d& _- \            [Service]
) e* V& I& L2 V1 i, o5 ~            EnvironmentFile=-/etc/sysconfig/prometheus' u1 L6 n" t+ j1 @; X8 N
            User=prometheus$ z6 s& ^! E8 s
            ExecStart=/usr/local/prometheus/prometheus \$ @: p2 S% \& F9 W2 j3 t. d' S
                    --storage.tsdb.path=/var/lib/prometheus \
6 Y) X  ?' C( Q2 \1 q                    --config.file=/usr/local/prometheus/prometheus.yml \* T4 g& _  ^9 i9 Q5 z
                    --web.listen-address=0.0.0.0:9090 \2 Y8 L/ T$ Z; ?
                    --web.external-url=( p: U* ^8 W( o! l! [  H
            Restart=on-failure
* Q: S* w  [# C( _3 ]            StartLimitInterval=12 v( x6 }$ t1 L& r) E: `$ x6 I
            RestartSec=3% A/ I) B5 h; I1 m# t$ j/ q
            [Install]7 P6 L1 c- x8 ~- j/ \9 i
            WantedBy=multi-user.target
( \0 W! b) v* s9 H3.2.每个Ceph节点安装node_exporter采集ceph节点主机的数据  t7 e# u% X4 @0 y: q6 o  @: K. N
    ~]# tar xf node_exporter-0.17.0.linux-amd64.tar.gz -C /usr/local/
0 ^! L  l: E4 ?6 W3 \3 y    ~]# ln -sv /usr/local/node_exporter-0.17.0.linux-amd64 /usr/local/node_exporte
; x7 F# o0 s: X4 c# \    ~]# useradd -r -m -d /var/lib/prometheus prometheus
! e6 k/ f4 H' j        创建运⾏Prometheus Server进程的系统⽤⼾,并为其创建家⽬录/var/lib/prometheus作为数据存储⽬录
0 Y: A1 X0 B- @4 Z    ~]# vim /usr/lib/systemd/system/node_exporter.service
1 t6 j) j4 ^  ?7 L        [Unit]
3 o5 O) M- u( I/ V& ^4 H8 R        Documentation=https://github.com/prometheus/node_exporter" \( E+ l; O& l2 |* P
        After=network.target! |  u* `( _2 ?
        [Service]
3 y" t" Y. A6 t7 j+ Y6 U& S8 P        EnvironmentFile=-/etc/sysconfig/node_exporter7 O) s' g1 y! K' F
        User=prometheus
# j5 L- I& H3 C( E        ExecStart=/usr/local/node_exporter/node_exporter \+ `  R" o* y" F) I. r: z
            $NODE_EXPORTER_OPTS
! m* h/ ?4 z6 |8 ]' D' Y        Restart=on-failure
8 e+ ]8 v; E$ z0 d! M" U        StartLimitInterval=1
. Z( R0 ^& I& y7 M# p% j        RestartSec=3
3 v: Y4 p. [$ _  R' D5 h' _        [Install]/ C& w7 D% B2 H# d' \" |) p
        WantedBy=multi-user.target
& K' {: P) j9 p    ~]# systemctl daemon-reload && systemctl start node_exporter.service
$ Y+ B( o: |5 H5 R( v    ~]# s -tunpl |grep 9100      #查看监控端口( b, b! p6 q! ~# ~0 D
        tcp    LISTEN     0      128      :::9100     :::*   users:(("node_exporter",pid=6776,fd=3))
7 b" u- Z& X( F( R2 |    ~]# curl localhost:9100/metrics  #测试会否采集到指标数据2 [; o( O4 o& H5 l+ t' N: n# E
3.3.启用Ceph-mgr中的promethues模块
1 K8 [( D0 c- u  ]( C) w    ~]# ceph mgr module enable prometheus8 n# u6 C, s! b- |$ e
        #Prometheus模块默认监听于TCP协议的9283端⼝6 y" T6 M) c7 ~3 E! r, Y' h# B
    ~]# ceph mgr services. y; {7 A; }2 t! R3 m
        {1 F8 a( m  [0 r# J' h& e4 O
            "dashboard": "http://stor02.cre.io:8080/",$ K& H4 ]) j0 N! D0 ~. Z+ y6 _
            "prometheus": "http://stor02.cre.io:9283/"
1 y" Q& w. C  P! r0 R6 w- r        }
2 Y0 x+ {/ l: }; c6 C. [" \    ~]# ss -tunpl |grep 9283
# x5 e4 l; w; ?        tcp    LISTEN     0      5        :::9283      :::*    users:(("ceph-mgr",pid=1071,fd=22))- I# ~; \# |. O! Z% H3 o: o; j
        #会在Mgr所在的存储节点上开启9283端口; Q- L# H6 m! o, f# ^! h" I6 I
3.4.Prometheus的主配置⽂件为prometheus.yml字段和格式解释
7 J2 W) o- T) e4 A. H    prometheus.yml文件主要由global、rule_files、scrape_configs、alerting、remote_write和remote_read⼏个配置段组成,其中:
1 m% j' O& S. N" t6 Z    1.global:全局配置段;2 A3 ^9 w) F$ k& ?* A. [. {% z6 G, C9 K
    2.scrape_configs:配置要监控的目标对象$ v' z, b6 L7 ]- ?7 j
        scrape配置集合,⽤于定义监控的⽬标对象(target)的集合,以及描述如何抓取(scrape)相关指标数据的配置参数;通常,每个scrape配置对应于⼀个单独的作业(job),⽽每个targets可通过静态配置(static_configs)直接给出定义,也可基于Prometheus⽀持的服务发现机制进⾏⾃动配置;
$ U5 v* ?! k/ G+ b5 H1 z( V    3.alertmanager_configs:指定配置监控的报警规则
- i) n2 z+ F# T, {, ^# |        可由Prometheus使⽤的Alertmanager实例的集合,以及如何同这些Alertmanager交互的配置参数;每个Alertmanager可通过静态配置(static_configs)直接给出定义,也可基于Prometheus⽀持的服务发现机制进⾏⾃动配置;
$ J7 W* U; W# T! Y- s8 p  W. H% l  H    4.remote_write:$ Y. e& ~* z9 f/ y  O+ w8 {4 P
        配置"远程写"机制,Prometheus需要将数据保存于外部的存储系统(例如InfluxDB)时定义此配置段,随后Prometheus将样本数据通过HTTP协议发送给由URL指定适配器(Adaptor);
5 ^! H; I5 V6 A; w1 I  g% x. N    5.remote_read:5 @" z/ D# A/ ~9 e8 S  Z. R
        配置"远程读"机制,Prometheus将接收到的查询请求交给由URL指定适配器(Adpater)执⾏,Adapter将请求条件转换为远程存储服务中的查询请求,并将获取的响应数据转换为Prometheus可⽤的格式
) f; m; R% R% t, O/ t4 S    2.1.scrape配置段+ ~5 @; E, H& g
        1.使⽤static_configs静态配置Job的语法格式:
* [9 f2 M2 A% C- t            # The targets specified by the static config.8 W- |; [; f* q; Y
            targets:! \( }! ?7 \* a  u
              [ - '<host>' ]' F  p: E/ S- F. h) _/ t) W
            # Labels assigned to all metrics scraped from the targets.
# F: {1 M8 L+ C! F- G7 O7 s- @$ c            labels:, U, o' f9 @& \2 \
              [ <labelname>: <labelvalue> ... ]
: ~1 @# t3 J/ ?5 z0 d5 B        2.使⽤file_sd_configs基于文件发现机制配置Job的语法格式
) X4 X- V- K( O; m. A  n, R9 n/ D            [
7 A. m5 T- C$ e) d) q                {7 s) r0 c9 b! V% {9 @2 ], ^
                    "targets": [ "<host>", ... ],
( v0 [( q" c- e0 O, \/ B                    "labels": {6 A4 E! j* L: t$ n3 L
                      "<labelname>": "<labelvalue>", ...
/ U/ x7 O5 V% v3 C' `6 u* V2 B( \& f                    }
! T: }) q6 ~- X2 G( U" _                },
7 F- K7 M/ c4 ]! `1 S                ...* p0 |( _( h, X' q2 [. _
            ]
1 I, t& u$ {8 ~3.5.配置prometheus监控ceph集群和ceph存储节点主机3 B7 W7 D  `5 d0 |) _# T7 W2 Z
    ~]# vim /etc/prometheus/prometheus.yml8 }2 H& t- r: j/ p8 R! G
        scrape_configs:. a9 m" O4 L' e1 r' V
          - job_name: 'prometheus'* }3 m+ B6 S6 n0 a+ |4 ?
            static_configs:
- |  S- Q# F* d. }            - targets: ['111.231.143.40:9090']
& ~' ?- O, y# p4 B: J0 d          - job_name: 'node_exporter'
" ?0 g9 v, f( o- U- N3 M            static_configs:9 _, z3 D8 O7 S; v( T
            - targets: ['stor01.cre.io:9100']
# N% _) s9 O# M& p: i* r* _0 `            - targets: ['stor02.cre.io:9100']' @) }" C* N% V. k0 e
            - targets: ['stor03.cre.io:9100']3 w" t# ~$ i2 O& ^5 L, W+ a# Y! @
          - job_name: 'ceph'. I) r2 i8 z6 M& o- S2 m
        #   honor_labels: true
: V) y; I5 u1 ^" x            static_configs:
% z# N, s/ A9 }+ z4 I            - targets: ['stor02.cre.io:9283']
" Z! z# K9 o; b) [2 Y  B  Y! Y    注意事项:
+ t  C% m& f2 o8 M  V9 ]+ d        1.job_name=node_exporter设置ceph集群的3个主机节点,job_name=ceph设置manager所在节点的主机名和Prometheus模块的端口;
0 N  W0 Y0 ^6 ^' S& c        2.注意prometheus中的targets中要写主机的FQDN格式的主机名,否者ceph dashboard中host details中不能正常显示监控数据,因为ceph dashboard是使用FQDN格式的主机名查询监控信息,如果prometheus中写的是IP会导致查询不到;而grafana使用IP查询,所以在grafana中不会有这种错误;
+ E! e" b- u5 z7 {; S        3.honor_labels=true必须有且设置为true,否者会导致CephDashbaord中显示grafana某些面板没有数据出现(这个待验证,个人认为可以设置此参数);  |% c' X( o4 y2 K+ \
        4.如果ceph集群中部署了多个manager,需要在job_name=ceph中添加多个targets将所有magr的地址都写上;(本ceph集群只部署了一个mgr)
& }/ F$ C/ `2 H& O8 c~]# systemctl daemon-reload
  ^1 C7 Y( o! F: J6 z3 B2 F~]# systemctl start prometheus && systemctl enable prometheus  #设置开启自启
2 y# m# e$ @; P( ^- k( r+ @1 }验证配置是否抓取到数据:3 g4 u' e& L8 E9 e
    登录prometheus地址:http://192.168.10.10:9090,查看Targets页面上的prometheus、3个node、ceph mgr是否都是UP的即可:
9 N8 _# s+ f  ]# ?9 q% `* [' Q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:07 , Processed in 0.028923 second(s), 23 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表