“AMP平台简介:自动化运维管理平台--内置大量运维操作原子场景,支持常见数据库、中间件、云平台、网络设备等运维操作自动化能力。支撑八大运维场景自动化,覆盖常见运维工作。”
一键巡检的目的是针对宝兰德BES的CPU状态、SERVER运行状态、JVM堆运行情况、线程运行情况、队列运行情况以及JDBC的运行状态进行一个全面巡检。
巡检脚本的原始数据为BES监控程序采集的bes.log日志,该日志每十秒写入新的采集数据,如下图所示:
#!/bin/bash
##获取要巡检的最新一轮的数据信息
LOG_DIR="/bes/monitor_shsnc/BES95xMon.V01/bin"
V_TIME_1=`cat $LOG_DIR/bes.log | tail -1 | awk -F "[" {print $2}| awk -F "]" {print $1}`
V_TIME_2=`date -d "10 second ago $V_TIME_1" +"%Y-%m-%d %H:%M:%S"`
V_LOGNUM=`cat $LOG_DIR/bes.log|grep "$V_TIME_2"| wc -l`
##定义出参,0代表巡检结果正常,反之则为异常。
MONI_CPU_COUNT=0
MONI_STATUS_COUNT=0
MONI_JVM_COUNT=0
MONI_THREAD_COUNT=0
MONI_QUEUE_COUNT=0
MONI_JDBC_COUNT=0
##判断各项巡检指标是否正常
if [ $V_LOGNUM -eq 24 ]
then
cat $LOG_DIR/bes.log | grep "$V_TIME_2" |grep -v "Connected to" |while read line
do
InstanceName=`echo ${line} | awk -F | {print $2}`
MonitorItem=`echo ${line} | awk -F | {print $3}`
if [ "${MonitorItem}" == "Status" ] ##对SERVER状态进行判断
then
Status=`echo ${line} | awk -F | {print $4}`
if [ "${Status}" != "OK" ]
then
((MONI_STATUS_COUNT++))
echo "${InstanceName} Status is ${Status},Please check! "
fi
elif [ "${MonitorItem}" == "CpuUsed" ] ##对CPU运行状态进行判断
then
CpuUsed_1=`echo ${line} | awk -F | {print $4}`
CpuUsed=`awk BEGIN{printf ($CpuUsed_1)*100}`
if [ $CpuUsed -ge 20000 ]
then
((MONI_CPU_COUNT++))
echo "${InstanceName} CpuUsed is ${CpuUsed},Please check! "
fi
elif [ "${MonitorItem}" == "JVMUsed" ] ##对JVM运行状态进行判断
then
JVMUsed=`echo ${line} | awk -F | {print $4}`
JVMMax=`echo ${line} | awk -F | {print $6}`
JVMUsage_1=`echo ${line} | awk -F | {print $8}`
JVMUsage=`awk BEGIN{printf ($JVMUsage_1)*100}`
PermUsed=`echo ${line} | awk -F | {print $10}`
PermMax=`echo ${line} | awk -F | {print $12}`
PermUsage_1=`echo ${line} | awk -F | {print $14}`
PermUsage=`awk BEGIN{printf ($PermUsage_1)*100}`
if [ $JVMUsage -ge 8000 -o $PermUsage -ge 8000 ]
then
((MONI_JVM_COUN++))
echo "${InstanceName} JVMUsed is ${JVMUsed},Please check! "
fi
elif [ "${MonitorItem}" == "CurrentThread" ] ##对线程运行状态进行判断
then
CurrentThread=`echo ${line} | awk -F | {print $4}`
MaxThread=`echo ${line} | awk -F | {print $6}`
ThreadUsage_1=`echo ${line} | awk -F | {print $8}`
ThreadUsage=`awk BEGIN{printf ($ThreadUsage_1)*100}`
BusyThread=`echo ${line} | awk -F | {print $10}`
if [ $ThreadUsage -ge 8500 ]
then
((MONI_THREAD_COUNT++))
echo "${InstanceName} CurrentThread is ${CurrentThread},Please check! "
fi
elif [ "${MonitorItem}" == "CurrentQueue" ] ##对队列运行状态进行判断
then
CurrentQueue=`echo ${line} | awk -F | {print $4}`
MaxQueue=`echo ${line} | awk -F | {print $6}`
QueueUsage_1=`echo ${line} | awk -F | {print $8}`
QueueUsage=`awk BEGIN{printf ($QueueUsage_1)*100}`
if [ $QueueUsage -ge 8000 ]
then
((MONI_QUEUE_COUNT++))
echo "${InstanceName} CurrentQueue is ${CurrentQueue},Please check! "
fi
elif [ "${MonitorItem}" == "dataSourceName" ] ##对JDBC数据源运行状态进行判断
then
dataSourceName=`echo ${line} | awk -F | {print $4}`
CurrentActiveNum=`echo ${line} | awk -F | {print $6}`
createJDBCCount=`echo ${line} | awk -F | {print $8}`
maxJDBCCount=`echo ${line} | awk -F | {print $10}`
spareJDBCCount=`echo ${line} | awk -F | {print $12}`
JDBCUsage_1=`echo ${line} | awk -F | {print $14}`
JDBCUsage=`awk BEGIN{printf ($JDBCUsage_1)*100}`
if [ $JDBCUsage -ge 9500 ]
then
((MONI_JDBC_COUNT++))
echo "${InstanceName} dataSourceName is ${dataSourceName},Please check! "
fi
else
echo "${MonitorItem}" is error!
fi
done
else
echo "$LOG_DIR"/bes.log is wrong,please check!
fi
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129387.html
摘要:原文出自听云技术博客断断续续写了将近一个月,听云第一版数据库管理平台终于写完了,期间来来回回的改了好多次小毛病,现在已经部署到生产环境上去了。主机管理这里主要是主机列表管理和业务组列表管理。 原文出自【听云技术博客】:http://blog.tingyun.com/web/article/detail/600 断断续续写了将近一个月,听云第一版数据库管理平台终于写完了,期间来来回回的改...
摘要:这种神奇的算法可以让你服务器和客户端在不传输该对称密钥的情况下就可以通过心有灵犀地方式各自计算出一个对称密钥,而且可以一样,避免了该密钥在网络上流通,而且你可以随意更换,过期时间定为分钟,可谓是狠毒至极我们引入就是为了解决上面的问题。 首先是前段时间我在公众号里被人批(dui)评(gang)了,大概意思就是:你别老整那ECDH又是椭圆又是素数啥的,你就说这玩意实际项目中怎么用就完了,我...
摘要:这种神奇的算法可以让你服务器和客户端在不传输该对称密钥的情况下就可以通过心有灵犀地方式各自计算出一个对称密钥,而且可以一样,避免了该密钥在网络上流通,而且你可以随意更换,过期时间定为分钟,可谓是狠毒至极我们引入就是为了解决上面的问题。 首先是前段时间我在公众号里被人批(dui)评(gang)了,大概意思就是:你别老整那ECDH又是椭圆又是素数啥的,你就说这玩意实际项目中怎么用就完了,我...
摘要:在全面兼容Apache Kafka生态的基础上,消息队列Kafka彻底解决ApacheKafka稳定性不足的长期痛点,并且支持消息无缝迁移到云上。 近日,阿里云宣布正式推出消息队列Kafka,全面融合开源生态。在全面兼容Apache Kafka生态的基础上,消息队列Kafka还具备了超易用,超高可用可靠性,扩缩容不操心,全方位安全诊断,数据安全有保障的特点。可用行达99.9%,数据可靠行99...
阅读 1235·2023-01-11 13:20
阅读 1543·2023-01-11 13:20
阅读 996·2023-01-11 13:20
阅读 1651·2023-01-11 13:20
阅读 3958·2023-01-11 13:20
阅读 2456·2023-01-11 13:20
阅读 1290·2023-01-11 13:20
阅读 3454·2023-01-11 13:20