宝兰德BES中间件一键巡检
宝兰德BES中间件一键巡检 点击上方“IT那活儿 ”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!! 随着宝兰德BES中间件的逐步上线,对其各实例的健康状态进行监控巡检是重中之重, 本文详细说明下我们在自动化运维平台部署的宝兰德BES一键巡检 。 “ A MP平台 简介 : 自动化运维管 理平台 内置大量运
来源: https://www.ucloud.cn/yun/129387.html 作者: IT那活儿 发布日期: 发布于2023-01-11 13:19
宝兰德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=0MONI_STATUS_COUNT=0MONI_JVM_COUNT=0MONI_THREAD_COUNT=0MONI_QUEUE_COUNT=0MONI_JDBC_COUNT=0##判断各项巡检指标是否正常if [ $V_LOGNUM -eq 24 ]thencat $LOG_DIR/bes.log | grep "$V_TIME_2" |grep -v "Connected to" |while read linedoInstanceName=`echo ${line} | awk -F | {print $2}`MonitorItem=`echo ${line} | awk -F | {print $3}`if [ "${MonitorItem}" == "Status" ] ##对SERVER状态进行判断thenStatus=`echo ${line} | awk -F | {print $4}`if [ "${Status}" != "OK" ]then((MONI_STATUS_COUNT++))echo "${InstanceName} Status is ${Status},Please check! "fielif [ "${MonitorItem}" == "CpuUsed" ] ##对CPU运行状态进行判断thenCpuUsed_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! "fielif [ "${MonitorItem}" == "JVMUsed" ] ##对JVM运行状态进行判断thenJVMUsed=`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! "fielif [ "${MonitorItem}" == "CurrentThread" ] ##对线程运行状态进行判断thenCurrentThread=`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! "fielif [ "${MonitorItem}" == "CurrentQueue" ] ##对队列运行状态进行判断thenCurrentQueue=`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! "fielif [ "${MonitorItem}" == "dataSourceName" ] ##对JDBC数据源运行状态进行判断thendataSourceName=`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! "fielseecho "${MonitorItem}" is error!fidoneelseecho "$LOG_DIR"/bes.log is wrong,please check!fi
具体配置以及结果展示
1. 新建原子操作,引用的脚本为上述脚本,输出参数如下图所示:

2. 新建六个巡检项,引用的为上述原子操作,分别对应不同的巡检内容,具体如下图所示:

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



本文作者:程 红(上海新炬王翦团队)
本文来源:“IT那活儿”公众号
