shell之ceph分布式存储OSD使用率监控实战脚本

发布时间 2023-09-01 18:23:06作者: Albert_M

当OSD空间使用超过85%,ceph health就会有⚠️,说该OSD near full,这种情况下只是一个提醒,如果集群中很多OSD都near full,那么最合理的措施当然时添加OSD或者添加存储节点,即我们通常说的扩容。当osd使用满了后,集群将无法提供存储服务,无法继续写入数据,只读。所以需要对osd使用率进行监控并及时扩容或者迁移数据

实战脚本示例:

#!/bin/bash

#author:Albert_M
#date:  20230111
#count the usage of osd

if [ ! -d "/usr/check_osd" ];then mkdir -p /usr/check_osd;fi
log=/usr/check_osd/osd_usage.log
log_tmp=/usr/check_osd/osd_usage.tmp.log
log_time=/usr/check_osd/osd_usage_time.log

/var/lib/ceph/bin/ceph osd df | grep -v 'ID\|TOTAL\|MIN' | awk '{print $1,$7}' > $log_time
/var/lib/ceph/bin/ceph osd df | grep -v 'ID\|TOTAL\|MIN' | awk '{print $1,$7}' > $log_tmp
sed -i "s/^/`date +%F' '%T' '`/g" $log_time
cat $log_time >> $log

for i in `cat $log_tmp | awk '{print $2}'`;do
  if [ $(echo "$i > 92"|bc) -eq 1 ];then
    osd_id=`grep $i $log_tmp | awk '{print $1}'`
    #echo $osd_id
    /opt/product/zabbix/bin/zabbix_sender -c /opt/product/zabbix/conf/zabbix_agentd.conf -k "osd_id" -o "$osd_id"
    /opt/product/zabbix/bin/zabbix_sender -c /opt/product/zabbix/conf/zabbix_agentd.conf -k "osd_usage" -o "$i"
  fi
done