ceph的可视化方案很多,本篇介绍的是比较简单的一种方式,并且对包都进行了二次封装,所以能够在极短的时间内构建出一个可视化的监控系统
本系统组件如下:
- ceph-nautilus版本
- ceph_exporter的nautilus版本
- prometheus的2.20.1版本
- grafana的grafana-7.1.3版本
- Ceph grafana的插件- Clusterby Cristian Calin
适配的系统为centos7
资源如下:
https://github.com/digitalocean/ceph_exporter
https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz
http://static.zybuluo.com/zphj1987/1nu2k4cpcery94q2re3u6s1t/ceph-cluster_rev1.json
https://github.com/prometheus/prometheus.git
https://dl.grafana.com/oss/release/grafana-7.1.3.linux-amd64.tar.gz
以上资源均可以直接用wget进行下载,然后直接安装
监控的架构介绍
通过ceph_exporter抓取的ceph相关的数据并且在本地监听端口9128端口
prometheus抓取ceph_exporter的9128的端口的数据存储在本地的/usr/local/prometheus/目录下面
grafana抓取prometheus的数据进行渲染成web页面
页面的模板就是使用的grafana的ceph模板插件
那么我们就根据上面的架构去一步步的把系统配置起来
配置监控系统
安装ceph_exporter
Admin节点上部署Ceph_exporter
1)安装需要的软件golang
#yum install golang git librados2-devel librbd1-devel -y
2)设置go的环境变量
# /etc/profile.d/go.sh
export GOROOT=/usr/lib/golang
export GOBIN=$GOROOT/bin
export GOPATH=/home/golang
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
#source /etc/profile.d/go.sh
3)安装ceph_exporter
#cd /home/golang
#go get -u github.com/digitalocean/ceph_exporter
4)运行ceph_exporter
#cd /usr/lib/golang/bin/
#nohup ./ceph_exporter &
5)检验结果
#curl 127.0.0.1:9128
可以看到端口起来了就是安装成功了,这个ceph_exporter建议是安装在管理节点上,也就是能够执行出ceph -s的节点上面的
安装prometheus
admin节点上部署prometheus
1)安装nodejs环境
1.1).安装node v10.13.0
#wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz
#xz -d node-v10.13.0-linux-x64.tar.xz
#tar -xf node-v10.13.0-linux-x64.tar
#mv node-v10.13.0-linux-x64 /usr/local/
#ln -s /usr/local/node-v10.13.0-linux-x64/bin/node /usr/bin/node
#ln -s /usr/local/node-v10.13.0-linux-x64/bin/npm /usr/bin/npm
1.2).安装yarn
#npm install -g yarn
#ln -s /usr/local/node-v10.13.0-linux-x64/bin/yarn /usr/bin/yarn
2)安装prometheus
# mkdir -p $GOPATH/src/github.com/prometheus
# cd $GOPATH/src/github.com/prometheus
# git clone https://github.com/prometheus/prometheus.git
# cd prometheus
# make build
#cp ./documentation/examples/prometheus.yml .
#vim prometheus.yml
global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. alerting: alertmanagers: - static_configs: - targets: rule_files: scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] - job_name: 'ceph' static_configs: - targets: ['localhost:9128']
#nohup ./prometheus --config.file=prometheus.yml &
这个地方默认是认为prometheus和ceph_exporter在一台机器上面,所以配置文件的/etc/ceph/prometheus.yml里面的targets写的是127.0.0.1,根据需要修改成ceph_exporter的ip地址即可
prometheus的默认监听端口为9090,到这个时候直接去web 上面就可以看到prometheus的抓取的数据了
到这里是数据到prometheus的已经完成了,下面就去做跟grafana相关的配置了
安装grafana
安装grafana
#wget https://dl.grafana.com/oss/release/grafana-7.1.3.linux-amd64.tar.gz
#tar -zxvf grafana-7.1.3.linux-amd64.tar.gz
#mv grafana-7.1.3 /usr/local/
#cd /usr/local/grafana-7.1.3
// 启动Grafana
#nohup ./bin/grafana-server web &
grafana默认监听的3000的端口
默认登陆的用户名密码为admin admin,登陆成功后会强制修改密码
配置grafana
首先增加数据源
这里如果能上网就直接输入id 917 ,如果不能上网就把上面的ceph-cluster_rev1.json文件弄到本地去,导入进去即可
到这里就完成了配置了