基于zabbix的ceph监控
基于zabbix的ceph监控
我们对于ceph的监控需求包括ceph的状态和ceph,osd中in和up的比例,因为比较简单,我们可以自己实现。
1 控制台获取ceph相关结果
我们可以通过控制台获取ceph的状态
ceph health
#对应的正常结果为
HEALTH_OK
#异常结果为:
HEALTH_WARN
HEALTH_ERR
通过控制台我们还可以获取OSD的相关状态
ceph osd stat
#对应结果为:
50 osds: 50 up, 50 in
flags noscrub,nodeep-scrub
控制台还可以获取ceph的总使用比例的相关信息
GLOBAL:
SIZE AVAIL RAW USED %RAW USED
182T 154T 29100G 15.54
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
5GC-CINDER 1 5192G 10.46 44446G 1363562
TECS6-CINDER 3 9233G 28.85 22768G 2396157
2 zabbix配置文件
UserParameter=ceph.health,ceph health
UserParameter=ceph.health.number,python /etc/zabbix/zabbix_agentd.d/ceph.py
UserParameter=ceph.osd.total, ceph osd stat | awk '/osd/{print $1}'
UserParameter=ceph.osd.up, ceph osd stat | awk '/osd/{print $3}'
UserParameter=ceph.osd.in, ceph osd stat | awk '/osd/{print $5}'
UserParameter=ceph.global.total, ceph df |awk '/182T/{print $1}'
UserParameter=ceph.global.available, ceph df |awk '/182T/{print $2}'
UserParameter=ceph.global.used, ceph df |awk '/182T/{print $3}'
UserParameter=ceph.global.used.ratio, ceph df |awk '/182T/{print $4}'
其中ceph.health.number为ceph状态对应的数字,是为了给grafana做展示使用的。
3 对应脚本文件
#!/usr/bin/python
# -*- coding: utf-8 -*-
#imports
import commands
def main():
ceph_status = commands.getoutput("ceph health")
if ceph_status.startswith("HEALTH_OK"):
print 0
elif ceph_status.startswith("HEALTH_WARN"):
print 1
elif ceph_status.startswith("HEALTH_ERR"):
print 2
else:
print -1
if __name__ == "__main__":
main()
即当ceph正常时,返回0,异常时返回1,错误时返回2。
4 zabbix其他设置
我们监控了OSD的IN和UP的个数,但对于告警来说,我们还需要设置如下监控项
100*last("ceph.osd.in")/last("ceph.osd.total")
100*last("ceph.osd.up")/last("ceph.osd.total")
即in和up的比例,这样对应的Trigger就可以设置为比例不为100%:
{Template Ceph Health:UpRatio.count(#2,100,"ne")}=2
{Template Ceph Health:InRatio.count(#2,100,"ne")}=2
同时还应当设置如下Trigger
#已用ceph大于80%
{Template Ceph Health:ceph.global.used.ratio.count(#2,80,"ge")}=2
#ceph状态WARN告警
{Template Ceph Health:ceph.health.count(#2,"HEALTH_WARN","like")}=2
#ceph状态ERROR告警
{Template Ceph Health:ceph.health.count(#2,"HEALTH_ERR","like")}=2
5 总结
使用如上监控方法我们可以简单的监控ceph的状态和磁盘的总体利用率等,对于更深入的监控,我们可以参考网上的模版,做更深入的ceph监控。具体见参考资料。
参考资料
- thelan/ceph-zabbix, https://github.com/thelan/ceph-zabbix