Nagios 下进行自动邮件提醒不正常处理_有关“S”的处理
这个问题跟进了几个星期 ,经过无数次的调试终于找到问题的解决方案:
事件描述:
一台Nagios服务器,监控5台服务器,2台数据库服务器,3台其它应用
监控功能正常,pnp正常,利用系统本身的mail命令(exim4)发送提醒邮件正常,发送到gmail邮箱不需要进行邮件验证。OK 一切正常,但是出了什么问题呢?
由于工作需要把邮件发送到需要进行邮箱验证的邮箱里,用系统本身的mail 没有做到验证的问题,使用第三方的一个简单邮件发送工具:sendEmail Or 下载最新的版本
我用的是sendEmail-v1.56
修改Nagios的commands.cfg
# 'notify-by-email' command definition
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/sbin/sendEmail -t $CONTACTEMAIL$ -f shibaolan -s smtp.*.com -xu admin -xp 'admin$1115' -u "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -m }
邮件内容正常,但是邮件标题却是乱的,所有参数值都为空!-u "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" -m
跟踪了好多久也没有跟出问题,搞得我最后下狠说不行 我就不用Nagios了,最后一次换了一个用户与密码进行测试,NND 正常了!问题出在用户名与密码上了,问题 所在,再细看一下用户与密码,哈哈 大笑三声,密码里带了一个特殊字符“$”, 在Nagios的Command里两个“$$”表示一个变量,而密码中有这么个字符,Nagios也笨的认为是一个变量,所以出错。找到问题了如何解决,那就简单了
既然Nagios认为两个“$”在一起表示一个变量,那么我就当密码中的 $与密码外的字符多加一个“$”骗一下nagios不就得了
注意修改前后如下:
修改前: ...'admin$1115' -u "** $NOTIFICATIONTYPE$....
修改后:...'admin$1115' -u "** $$NOTIFICATIONTYPE$....
看到没有?也就多加一个$号,让后面的正常Nagios变量的 $成对就得了
问题解决
晕呀,原来这么简单呀,但是跟踪起来花了我近3天时间。
阅读(3538) | 评论(0) | 转发(0) |