监控topic积压情况
#!/bin/bash
source /etc/profile
list="/opt/shell/list-rocketmq.txt"
/opt/app/rocketmq4.0/bin/mqadmin statsAll -n 172.16.40.175:9876 -a 2>/dev/null | sed '1d' |sed -r '/(USER_CHANNEL_STATISTICS_GROUP)|(CREDIT_CHANGE_GROUP)|(omsCoupon )|(feature_bone)|(NO_CONSUMER)|(ucenter)/d' > ${list}
fazhi=500
email="your@mail.com"
monitor_file="/opt/src/rocket-monitor.txt"
rm -f ${monitor_file}
#特定的topic
notopic=(
topicname
tonpicname2
)
check_topic () {
while read line
do
topic=`echo $line | awk '{print $1,$2,$3}'`
topicgroup=`echo ${topic} | awk '{print $2}'`
topicname=`echo ${topic} |awk '{print $1}'`
topicnum=`echo ${topic} |awk '{print $3}'`
#除去特定数组里面外的topic,有特殊阈值判断需求的
if [ ${topicname} == "PROXY_REPAYMENT_TOPIC" -a ${topicnum} -gt 105200 ];then
echo "${topicname} 组名${topicgroup} 累积未消费数量 ${topicnum} 超过阈值 105200" >> ${monitor_file}
elif [ ${topicname} == "PROXY_REPAYMENT_NAME" -a ${topicnum} -gt 5000 ];then
echo "${topicname} 组名${topicgroup} 累积未消费数量 ${topicnum} 超过阈值 2000" >> ${monitor_file}
fi
done < $list
}
send_mail () {
if [ -f ${monitor_file} ] ; then
cat ${monitor_file} | mail -s "rocketmq_monitor" ${email}
fi
}
check_topic
send_mail
========================================
监控cluster
#!/bin/bash
source /etc/profile
email="your@mail.com"
num=`/opt/app/rocketmq4.0/bin/mqadmin clusterList -n 172.16.40.175:9876 2>/dev/null | sed '1d' |wc -l`
# 6个broker节点,根据需要修改
if [ $num -eq 6 ] ;then
echo "rocketmq cluster is health"
else
echo "rocketmq cluster is not health" | mail -s "rocketmq_cluster" ${email}
fi