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檔案弄到本地去,導入進去即可
到這裡就完成了配置了