Nagios check_mk AIX 个人定义检查

自定义脚本中不能使用"TAB"键,只能使用"SPACE”键来控制格式,否则会出错
主动监控存放路径:/nag/ 服务器IP/plugins

被动监控存放路径:/usr/lib/check_mk_agent/local

ItemName in FileRelated FileWarningCritical
CPU 负载%CPU loadAIX/check_mk_agent8090
文件系统使用率%File system usage 8090
交换区使用率%SWAP MonitorAIX/plugins/local1015
网络发送出错Network Transmit Errors 15
网络接收出错Network Receive Errors 15
某进程内存占用率%Process Memory Usage 2030
网络连通性Network Ping Loss Package 2550
磁盘IO性能DISK I/O BUSY CHECK 9095
Java进程CPU占用率%JAVA Process CPU Usage 5070
物理内存使用率Memory Monitor 8090
系统日志监控system logAIX/plugins/logwatchN/AN/A
#!/bin/sh
#设置session语言
export LANG=en_US
#JAVA Process CPU Usage
JAVA_LINE_NUM=`ps -ef|grep java|wc -l`
#如果没有记录
if [ "$JAVA_LINE_NUM" -le 1 ];then
 JAVA_CPU_SUM=0
  status=0
  statustxt=OK
else
 JAVA_i=1
 JAVA_CPU_SUM=0
 status=0
 while [ "$JAVA_i" -le $JAVA_LINE_NUM ]; do
  JAVA_j=$JAVA_i
  JAVA_LINE_CONT=`ps -ef|grep java|tail -$JAVA_j|head -1`
  JAVA_PID=`echo $JAVA_LINE_CONT|awk '{print $2}'`
  JAVA_CPU_USAGE=`echo $JAVA_LINE_CONT|awk '{print $3}'|sed "s/%//"`
  #如果没有JAVA_PID
  if [ -z "$JAVA_PID" ]; then
   $JAVA_CPU_USAGE=0
  fi
   JAVA_CPU_SUM=`echo "$JAVA_CPU_USAGE + $JAVA_CPU_SUM"|bc`
   if [ $JAVA_CPU_SUM -lt 50 ];then
     JAVA_i=`echo "$JAVA_i+1"|bc`
     continue
   elif [ $JAVA_CPU_SUM -lt 70 ];then
    status=1
    statustxt=WARNING
    break
   else
    status=2
    statustxt=CRITICAL
    break
   fi     
 done
 if [ $status -eq 0 ]; then
  status=0
   statustxt=OK
 fi
fi
echo "$status JAVA_Process_CPU_Usage CPU_USAGE=$JAVA_CPU_SUM;50;70 $statustxt - ${JAVA_CPU_SUM}% used by JAVA Process."
#Process Memory Usage
PROC_LINE_CONT=`ps vx |grep -v PID |sort -rn +6 |head -1`
PROC_PID=`echo $PROC_LINE_CONT|awk '{print $1}'`
PROC_MEM_USED=`echo $PROC_LINE_CONT|awk '{print $12}'`
if [ $PROC_MEM_USED -lt 20 ];then
  status=0
  statustxt=OK
elif [ $PROC_MEM_USED -lt 30 ];then
  status=1
  statustxt=WARNING
else
  status=2
  statustxt=CRITICAL
fi
echo "$status Process_Memory_Usage PROC_MEM_USED=$PROC_MEM_USED;20;30 $statustxt - ${PROC_PID} used ${PROC_MEM_USED}% memory."
#DISK I/O BUSY CHECK
DISK_TOTAL_LINE=`iostat 1 1|wc -l`
#如果没有记录
if [ "$DISK_TOTAL_LINE" -eq 0 ];then
  status=0
  statustxt=OK
else
 DISK_NUM=`echo "$DISK_TOTAL_LINE - 7"|bc`
 DISK_i=1
 status=0
 while [ "$DISK_i" -le $DISK_NUM ]; do
   DISK_j=$DISK_i
   DISK_LINE_CONT=`iostat 1 1|tail -$DISK_j|head -1`
  DISK_NAME=`echo $DISK_LINE_CONT|awk '{print $1}'`
   DISK_IO_BUSY=`echo $DISK_LINE_CONT|awk '{print $2}'`
   if [ $DISK_IO_BUSY -lt 90 ];then
    status=0
    statustxt=OK    
    DISK_i=`echo "$DISK_i+1"|bc`
   elif [ $DISK_IO_BUSY -lt 95 ];then
    status=1
    statustxt=WARNING
    DISK_i=`echo "$DISK_i+1"|bc`
   else
    status=2
    statustxt=CRITICAL
    DISK_i=`echo "$DISK_i+1"|bc`
   fi     
  echo "$status DISK_$DISK_NAME I/0_USAG=$DISK_IO_BUSY $statustxt - ${DISK_NAME} Usage: ${DISK_IO_BUSY}%."
 done
fi
#SWAP Monitor
SWAP_ATM=`lsps -s|tail -1|awk  '{print $2}'|sed "s/%//"`
if [ $SWAP_ATM -lt 10 ];then
  status=0
  statustxt=OK
elif [ $SWAP_ATM -lt 15 ];then
  status=1
  statustxt=WARNING
else
  status=2
  statustxt=CRITICAL
fi
echo "$status Swap_used swap_atm=$SWAP_ATM;10;15 $statustxt - ${SWAP_ATM}% swap used."   
#Network Ping Loss Package
PING_LOSS=`ping 118.118.118.212 10 10|grep "packet loss"|awk '{print $7}'|sed "s/%//"`
#如果没有记录
if [ -z "$PING_LOSS" ];then
  status=0
  statustxt=OK
else
 if [ $PING_LOSS -lt 25 ];then
   status=0
   statustxt=OK
 elif [ $PING_LOSS -lt 50 ];then
   status=1
   statustxt=WARNING
 else
   status=2
   statustxt=CRITICAL
 fi
fi
echo "$status Network_Ping_Loss_Package PING_LOSS=$PING_LOSS;25;50 $statustxt - ${PING_LOSS}% package lost."
#Memory Monitor
MEM_FREE=`vmstat 1 1|tail -1|awk '{print $4}'`
#如果没有记录
if [ -z "$MEM_FREE" ];then
  MEM_USED_PCT=0
  status=0
  statustxt=OK
else
 MEM_TOTAL=`vmstat 1 1|grep System|awk '{print $NF}'|awk -F = '{print $2}'|awk -F MB '{print $1}'`
 MEM_FREE=`echo "$MEM_FREE*4/1024"|bc`
 MEM_USED_PCT=`echo "($MEM_TOTAL-$MEM_FREE)*100/$MEM_TOTAL"|bc`
 if [ $MEM_USED_PCT -lt 80 ];then
   status=0
   statustxt=OK
 elif [ $MEM_USED_PCT -lt 90 ];then
   status=1
   statustxt=WARNING
 else
   status=2
   statustxt=CRITICAL
 fi
fi
echo "$status Memory_used Memory_used=$MEM_USED_PCT;80;90 $statustxt - ${MEM_USED_PCT}% Memory used."
#Network Transmit Errors
Net_Tra_Err=`entstat -d ent0|grep "Transmit Errors"|awk '{print $3}'`
if [ $Net_Tra_Err -lt 1 ];then
  status=0
  statustxt=OK
elif [ $Net_Tra_Err -lt 5 ];then
  status=1
  statustxt=WARNING
else
  status=2
  statustxt=CRITICAL
fi
echo "$status Network_Transmit_Errors Net_Tra_Err=$Net_Tra_Err;1;5 $statustxt - ${Net_Tra_Err} Error Found."
#Network Receive Errors
Net_Rec_Err=`entstat -d ent0|grep "Receive Errors"|awk '{print $3}'`
if [ $Net_Rec_Err -lt 1 ];then
  status=0
  statustxt=OK
elif [ $Net_Rec_Err -lt 5 ];then
  status=1
  statustxt=WARNING
else
  status=2
  statustxt=CRITICAL
fi
echo "$status Network_Receive_Errors Net_Rec_Err=$Net_Rec_Err;1;5 $statustxt - ${Net_Rec_Err} Error Found."

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24751738/viewspace-707279/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/24751738/viewspace-707279/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值