资讯专栏INFORMATION COLUMN

宝兰德BES中间件一键巡检

IT那活儿 / 3642人阅读
宝兰德BES中间件一键巡检
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

  
随着宝兰德BES中间件的逐步上线,对其各实例的健康状态进行监控巡检是重中之重,本文详细说明下我们在自动化运维平台部署的宝兰德BES一键巡检

AMP平台简介自动化运维管理平台--内置大量运维操作原子场景,支持常见数据库、中间件、云平台、网络设备等运维操作自动化能力支撑八大运维场景自动化,覆盖常见运维工作


巡检对象及内容

一键巡检的目的是针对宝兰德BES的CPU状态、SERVER运行状态、JVM堆运行情况、线程运行情况、队列运行情况以及JDBC的运行状态进行一个全面巡检。

数据来源

巡检脚本的原始数据为BES监控程序采集的bes.log日志,该日志每十秒写入新的采集数据,如下图所示:

实现脚本

脚本通过对上述提到的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

具体配置以及结果展示

1. 新建原子操作,引用的脚本为上述脚本,输出参数如下图所示:
2. 新建六个巡检项,引用的为上述原子操作,分别对应不同的巡检内容,具体如下图所示:
3. 新建巡检任务,引用上述六个巡检项,具体执行结果如下图所示。
通过执行一键巡检,点击查看详情,很清晰明了的知道当前宝兰德BES中间件状态是否有异常,结果展示的两个分布图全为绿色则表明状态正常,如若有红色则说明存在异常的实例状态,点击异常项查看具体的异常信息具体解决。

本文作者:程  红(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129387.html

相关文章

  • 小程序上云,有点猛

    摘要:另外小程序云应用有一套高可用架构,提供监控预警能力。自主可控小程序云应用提供服务器,开发者可以拥有登录或重启,也可以修改密码。也就是说,服务器是由小程序云应用提供,但使用权归开发者。  前不久有一个朋友问我,到底是做什么端的小程序比较好?   我只问了一句,你的产品里是否涉及钱和服务,如果涉及这两者,建议你选择支付宝小程序。你可以通过其他小程序玩裂变,但如果你想做服务和商业,一定要考虑支付宝...

    jsdt 评论0 收藏0
  • 数据库管理平台NetopGO简介

    摘要:原文出自听云技术博客断断续续写了将近一个月,听云第一版数据库管理平台终于写完了,期间来来回回的改了好多次小毛病,现在已经部署到生产环境上去了。主机管理这里主要是主机列表管理和业务组列表管理。 原文出自【听云技术博客】:http://blog.tingyun.com/web/article/detail/600 断断续续写了将近一个月,听云第一版数据库管理平台终于写完了,期间来来回回的改...

    YacaToy 评论0 收藏0
  • 我发誓这真的是最后一篇关于ECDH的文儿!(API安全加强篇四)

    摘要:这种神奇的算法可以让你服务器和客户端在不传输该对称密钥的情况下就可以通过心有灵犀地方式各自计算出一个对称密钥,而且可以一样,避免了该密钥在网络上流通,而且你可以随意更换,过期时间定为分钟,可谓是狠毒至极我们引入就是为了解决上面的问题。 首先是前段时间我在公众号里被人批(dui)评(gang)了,大概意思就是:你别老整那ECDH又是椭圆又是素数啥的,你就说这玩意实际项目中怎么用就完了,我...

    IntMain 评论0 收藏0
  • 我发誓这真的是最后一篇关于ECDH的文儿!(API安全加强篇四)

    摘要:这种神奇的算法可以让你服务器和客户端在不传输该对称密钥的情况下就可以通过心有灵犀地方式各自计算出一个对称密钥,而且可以一样,避免了该密钥在网络上流通,而且你可以随意更换,过期时间定为分钟,可谓是狠毒至极我们引入就是为了解决上面的问题。 首先是前段时间我在公众号里被人批(dui)评(gang)了,大概意思就是:你别老整那ECDH又是椭圆又是素数啥的,你就说这玩意实际项目中怎么用就完了,我...

    Barrior 评论0 收藏0
  • 阿里云正式推出消息队列Kafka:全面融合开源生态

    摘要:在全面兼容Apache Kafka生态的基础上,消息队列Kafka彻底解决ApacheKafka稳定性不足的长期痛点,并且支持消息无缝迁移到云上。 近日,阿里云宣布正式推出消息队列Kafka,全面融合开源生态。在全面兼容Apache Kafka生态的基础上,消息队列Kafka还具备了超易用,超高可用可靠性,扩缩容不操心,全方位安全诊断,数据安全有保障的特点。可用行达99.9%,数据可靠行99...

    aisuhua 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<