nagios监控log文件的方法举例

发布时间:2019-08-25编辑:脚本学堂
分享一例nagios监控log日志文件的脚本,自己写的一个小插件,感兴趣的朋友参考学习下吧。

本节内容:
nagios监控log文件的shell/ target=_blank class=infotextkey>shell脚本代码。

首先,要实现一个插件脚本:(file.sh)
说明:返回值。0为正常、1为警告、2为紧急。格式:file.sh –w 2 –c 3

使用:
将该脚本保存至/usr/local/nagios/libexec目录下,此时file.sh成为一个可调用的”命令”。

命令引用方式:
首先:需要在commands.cfg里面定义该命令的引用格式。

本例中的引用如下:
 

复制代码 代码示例:
# 'check_monitor_file' command definition  for wanggy 2013-03-13
define command{
        command_name    check_file
        command_line    $USER1$/check_monitor_file.sh  -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$
        } 

其次:需要添加一监控对像:
 

复制代码 代码示例:
define service{
        host_name               192.168.1.9
        service_description     monitor_line_file
        check_command           check_file!1!1
        max_check_attempts      5  
        normal_check_interval   4  
        retry_check_interval    1  
        check_period            24x7
        notification_interval   4  
        notification_period     24x7
        notification_options    w,u,c,r
        contact_groups          admins
        } 
 

最后效果:
3.png

附,监控log文件的插件脚本:
 

复制代码 代码示例:
#!/bin/bash
#**************************************#
# date 2013-03-13 15:03 #
#采用shell 插件监控文件内容 #
#格式必须符合USAGE定义 #
#note: # www.jb200.com
#monitor.cfg为监控原文件 #
#$err_count判断异常个数(=1) #
#本例监控名为monitor_line_file在.9上 #
#对应command查看commands.cfg配置 #
#**************************************#
cd /usr/local/nagios/libexec
USAGE="`basename $0` [-w|--warning]<percent free> [-c|--critical]<percent free>"
warning=""
critical=""
#STATE_OK=0
#STATE_WARNING=1
#STATE_CRITICAL=2
# read input
if [[ $# -lt 4 ]]
then
echo ""
echo "Wrong Syntax: `basename $0` $*"
echo ""
echo "Usage: $USAGE"
echo ""
exit 0
fi
while [[ $# -gt 0 ]]
do
case "$1" in
-w|--warning)
shift
warning=$1
;;
-c|--critical)
shift
critical=$1
;;
esac
shift
done
#echo $warning
#echo $critical
grep "=1" monitor.cfg >err_count_file
err_count=`wc -l err_count_file |linuxjishu/13830.html target=_blank class=infotextkey>awk '{print$1}'`
#本例主判断critical状态跟ok状态
if [ $err_count -ge $critical ];then
err_monitor=`cat err_count_file`
echo -n "告警!!!!共有:$err_count条链路出现异常.请确认!!!!"
echo $err_monitor
exit 2
else
list_monitor=`cat monitor.cfg`
echo -n "全部链路正常!!"
#在nagios显示内容信息
echo $list_monitor
exit 0
fi