快速构建ceph可视化监控系统

前言

ceph的可视化方案很多,本篇介绍的是比较简单的一种方式,并且对包都进行了二次封装,所以能够在极短的时间内构建出一个可视化的监控系统

本系统组件如下:

  • ceph-jewel版本
  • ceph_exporter的jewel版本
  • prometheus的2.3.2版本
  • grafana的grafana-5.2.1版本
  • Ceph grafana的插件- Clusterby Cristian Calin

适配的系统为centos7

资源如下:

http://static.zybuluo.com/zphj1987/jiwx305b8q1hwc5uulo0z7ft/ceph_exporter-2.0.0-1.x86_64.rpm

http://static.zybuluo.com/zphj1987/1nu2k4cpcery94q2re3u6s1t/ceph-cluster_rev1.json

http://static.zybuluo.com/zphj1987/7ro7up6r03kx52rkwy1qjuwm/prometheus-2.3.2-1.x86_64.rpm

http://mysrc.cn-bj.ufileos.com/grafana-5.2.1-1.x86_64.rpm

以上资源均可以直接用wget进行下载,然后直接安装

监控的架构介绍

通过ceph_exporter抓取的ceph相关的数据并且在本地监听端口9128端口

prometheus抓取ceph_exporter的9128的端口的数据存储在本地的/var/lib/prometheus/目录下面

grafana抓取prometheus的数据进行渲染成web页面

页面的模板就是使用的grafana的ceph模板插件

那么我们就根据上面的架构去一步步的把系统配置起来

配置监控系统

安装ceph_exporter

1
2
3
4
5
6
7
8
9
10
11
12
[root@lab101 install]# wget http://static.zybuluo.com/zphj1987/jiwx305b8q1hwc5uulo0z7ft/ceph_exporter-2.0.0-1.x86_64.rpm
[root@lab101 install]# rpm -qpl ceph_exporter-2.0.0-1.x86_64.rpm
/usr/bin/ceph_exporter
/usr/lib/systemd/system/ceph_exporter.service
[root@lab101 install]# rpm -ivh ceph_exporter-2.0.0-1.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:ceph_exporter-2:2.0.0-1 ################################# [100%]
[root@lab101 install]# systemctl start ceph_exporter
[root@lab101 install]# systemctl enable ceph_exporter
[root@lab101 install]# netstat -tunlp|grep 9128
tcp6 0 0 :::9128 :::* LISTEN 35853/ceph_exporter

可以看到端口起来了就是安装成功了,这个ceph_exporter建议是安装在管理节点上,也就是能够执行出ceph -s的节点上面的

安装prometheus

1
2
3
4
5
6
7
8
9
10
11
12
[root@lab101 install]#  wget http://static.zybuluo.com/zphj1987/7ro7up6r03kx52rkwy1qjuwm/prometheus-2.3.2-1.x86_64.rpm
[root@lab101 install]# rpm -qpl prometheus-2.3.2-1.x86_64.rpm
/etc/ceph/prometheus.yml
/usr/bin/prometheus
/usr/lib/systemd/system/prometheus.service
[root@lab101 install]# rpm -ivh prometheus-2.3.2-1.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:prometheus-2:2.3.2-1 ################################# [100%]
[root@lab101 install]# systemctl start prometheus
[root@lab101 install]# netstat -tunlp|grep 9090
tcp6 0 0 :::9090 :::* LISTEN 36163/prometheus

这个地方默认是认为prometheus和ceph_exporter在一台机器上面,所以配置文件的/etc/ceph/prometheus.yml里面的targets写的是127.0.0.1,根据需要修改成ceph_exporter的ip地址即可

prometheus的默认监听端口为9090,到这个时候直接去web 上面就可以看到prometheus的抓取的数据了

prometheus

到这里是数据到prometheus的已经完成了,下面就去做跟grafana相关的配置了

###安装grafana

1
2
3
4
5
6
[root@lab101 install]# wget http://mysrc.cn-bj.ufileos.com/grafana-5.2.1-1.x86_64.rpm
[root@lab101 install]# yum localinstall grafana-5.2.1-1.x86_64.rpm
[root@lab101 install]# systemctl start grafana-server.service
[root@lab101 install]# netstat -tunlp|grep gra
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::3000 :::* LISTEN 36730/grafana-serve

grafana默认监听的3000的端口

grafanalogin
默认登陆的用户名密码为admin admin,登陆成功后会强制修改密码

###配置grafana
add sour
首先增加数据源
配置9090
import

image.png-97.2kB

image.png-96.2kB

这里如果能上网就直接输入id 917 ,如果不能上网就把上面的ceph-cluster_rev1.json文件弄到本地去,导入进去即可

granfa

到这里就完成了配置了

总结

以上为了方便都把相关的软件做成了rpm包,从安装方便角度来看,grafana,ceph_exporter,还有prometheus都采用的是单二进制文件的方式,稍微组合一下大大的降低了部署难度,比如那个ceph_exporter需要用go进行编译,封好包以后就不需要这个过程,并且接口因为有版本的限制,所以这样直接对应版本安装也避免了出错

本篇的环境所述均为jewel适配版本

变更记录

Why Who When
创建 武汉-运维-磨渣 2018-07-17