Ceph監控部署之inkscope&Calamari(v10.2.11)


這裏將部署ceph的兩套監控系統,做個記錄,總結下來兩個系統各有優缺點,本人最終選擇了calamari,畢竟是官方出的,已經能滿足本人需求。

一、Ceph監控系統之inkscope部署

inkcope組件說明

inkscope-common : 包含inkscope的默認配置文件以及其他進程(cephprobe,sysprobe)啓動所需的依賴文件,所有相關節點都需要安裝。
inkscope-sysprobe : 安裝用於所有mon和osd的sysprobe 所需要腳本,即所有節點均安裝,實現獲取節點設備資源信息如:CPU、內存、磁盤等等。
inkscope-admviz : 包含inkscope的web控制檯文件,含接口和界面,僅需要安裝一個,該節點(管理節點)上同時需要按安裝flask和mongodb
inkscope-cephrestapi: 用於安裝啓動 ceph rest api 的腳本,僅需要安裝在提供api接口的節點上,即mon節點。
inkscope-cephprobe: 用於安裝啓動 cephprobe 的腳本(整個集羣只需一個),安裝在mon節點,腳本主要實現:獲取Ceph集羣的一些信息,並使用端口(5000)提供服務,將數據存入mongodb數據庫中。

inkscope部署

git clone https://github.com/inkscope/inkscope-ansible.git
ansible-galaxy install -r requirements.yaml
server端
ansible-playbook inkscope.yaml -i /data/ansible/inkscope -v(集成到當前環境中)
cat /data/ansible/inkscope
[inkscope]
xx.xx.xx.xx
默認是80端口,如果端口衝突修改vars/my_inkscope.yaml:inkscope_http_port: 82

安裝步驟解析:
python python-devel python-devel git mongodb-server mongod gcc python-pip
git clone https://github.com/inkscope/inkscope
pip install -r requirements.txt
mkdir -p /var/www/inkscope
mkdir -p /opt/inkscope/etc
mkdir -p /opt/inkscope/bin
cp -R inkscopeViz/ /var/www/inkscope
cp -R inkscopeCtrl/ /var/www/inkscope
cp -R index.html /var/www/inkscope
通過inkscope.conf.j2生成inkscope.conf文件拷貝到/opt/inkscope/etc
並修改mongodb_host 爲127.0.0.1
授權訪問mds並追加配置到ceph.conf
ceph auth get-or-create client.restapi mds ‘allow’ osd ‘allow *’ mon ‘allow *’ > /etc/ceph/{{ cluster }}.client.restapi.keyring
ceph.conf
[client.restapi]
log_file = /dev/null
keyring = /etc/ceph/ceph.client.restapi.keyring
cp inkscopeProbe/daemon.py /opt/inkscope/bin
cp inkscopeProbe/cephprobe.py /opt/inkscope/bin
並link到/etc/init.d/
修改/etc/mongo
service cephprobe restart

優化:
增加mongo認證,默認沒有認證
db.createUser({ user: “admin”, pwd: “adminpassword”, roles: [{ role: “userAdminAnyDatabase”, db: “admin” }] })
db.auth(‘admin’,‘adminpassword’)
vi /etc/mongo
auth = true

db.createUser({ user: “ceph”, pwd: “ceph”, roles: [{ role: “dbOwner”, db: “inkscope” }] })

訪問:http://xx.xx.xx.xx:82
用戶密碼默認admin,登錄進之後可以修改

二、Ceph監控之Calamari部署

Calamari組件說明

主要有calamari-server;romana;salt-minion;salt-master;diamond。

這些模塊各自的作用:
calamari-server 這個是提供一個與集羣進行交互,並且自己封裝了一個自己的API,做集中管理的地方,這個只需要在集羣當中的某一臺機器上安裝,也可以獨立安裝

romana 就是原來的calamari-client,這個叫client,其實是一個web的界面,這個叫calamari-web更好,現在已經更名爲romana,這個也是只需要在集羣當中的某一臺機器上安裝,也可以獨立安裝,這個需要跟calamari-server安裝在一臺機器上

salt-master 是一個管理的工具,可以批量的管理其他的機器,可以對安裝了salt-minion的機器進行管理,在集羣當中,這個也是跟calamari-server安裝在一起的

salt-minion 是安裝在集羣的所有節點上的,這個是接收salt-master的指令對集羣的機器進行操作,並且反饋一些信息到salt-master上

diamond 這個是系統的監控信息的收集控件,提供集羣的硬件信息的監控和集羣的信息的監控,數據是發送到romana的機器上的,是由romana上的carbon來收取數據並存儲到機器當中的數據庫當中的

Calamari服務端:calamri-server romana salt-master
集羣節點:salt-minion diamond

Calamari部署

1.網盤下載rpm
https://pan.baidu.com/s/1kVRy4mj
gbmr
如果網盤失效訪問:https://download.csdn.net/download/qq_16240085/10980513
calamari端===
unzip centosjewel.zip && cd centosjewel/

3、本地安裝calamari romana
yum localinstall calamari-server-1.3.3-jewel.el7.centos.x86_64.rpm romana-1.2.2-36_gc62bb5b.el7.centos.x86_64.rpm

chmod 777 -R /var/log/calamari/
chmod 777 -R /opt/calamari/

卸載原salt,需要使用指定版本的才行(這裏server端同時也是node,所以都裝)
rpm -e --nodeps salt-minion salt-master salt
yum localinstall salt-2015.8.1-1.el7.noarch.rpm -y
yum localinstall salt-master-2015.8.1-1.el7.noarch.rpm -y
yum localinstall salt-minion-2015.8.1-1.el7.noarch.rpm -y

=被監控端(集羣節點)====
1、安裝本地yum
yum localinstall salt-2015.8.1-1.el7.noarch.rpm -y
yum localinstall salt-minion-2015.8.1-1.el7.noarch.rpm -y
2、配置salt-minion
2.1、修改minion文件(admin均爲calamari的hostname)
sed -i ‘s/#master: salt/master: 10-10-178-49/’ /etc/salt/minion

2.2、添加minion.d附加目錄及calamari.conf文件
mkdir /etc/salt/minion.d/
echo ‘master: 10-10-178-49’> /etc/salt/minion.d/calamari.conf
systemctl restart salt-minion
systemctl enable salt-minion

3、配置diamond
將host指向calamari服務端hostname
yum localinstall diamond-3.4.68-jewel.noarch.rpm
cd /etc/diamond/ && cp diamond.conf.example diamond.conf
sed -i ‘/^host/s/graphite/10-10-178-49/’ /etc/diamond/diamond.conf
systemctl restart diamond
systemctl enable diamond

注:某些機子上面出現了systemctl無法識別diamond服務,在確保已經安裝後添加即可
chkconfig --add diamond

新節點安裝
修改兩個地方vars/main.yml中的server地址
新增calamari-client host分組
ansible-playbook site-role.yml -e “rolename=calamari-client” -b -v
calamari端(續)===
6、salt-master相關
!!!被監控端(集羣節點)部署完成後再執行以下命令!!!

6.1重啓
systemctl restart salt-master

6.2 管理salt-minion節點
salt-key -L 列出已發現的節點
salt-key -A 允許所有節點加入
salt ‘’ test.ping 檢測鏈接性
salt '
’ ceph.get_heartbeats 輸出ceph集羣信息

calamari-ctl initialize # 初始化設置用戶密碼:root root
如果需要重新初始化:
解決辦法:清理配置再初始化一次
#calamari-ctl clear --yes-i-am-sure
#calamari-ctl initialize (無交互)

http://10.10.178.49:83
/etc/httpd/conf.d/calamari.conf
新增端口配置
Listen 83
systemctl restart httpd

出現問題解決思路
重啓 被監控端的salt-minion和 diamond
以及 server 端的salt-master
注:salt-minion 必須有一個mon節點,否則會有問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章