使用Centos系统自带的sendmail服务作为客户端,使用第三方SMTP服务发送邮件报警。 此功能是在nagios服务正常安装运行的基础上实现的;因此要先安装好基本的nagios运行环境,这个可以参考本人相关的博文。 1.软件检测及安装 #rpm -q sendmail 若不存在则安装 #yum -y install sendmail 2.停止sendmail服务 这里不需要sendmail作为邮件服务端来运行,所以关闭sendmail服务。 #service sendmail stop 3.配置sendmail服务 配置发送邮件的邮箱认证信息 vi /etc/mail.rc --- 增加如下内容 --- set from=MailName@xxx.com set smtp=smtp.xxx.com set smtp-auth-user=MailName set smtp-auth-password=yourpasswd set smtp-auth=login 4.测试发送邮件功能 格式:echo '邮件内容' | mail -s '邮件标题' 目标邮件地址 echo 'hello word' | mail -s 'mail title' yyy@qq.com 5.配置nagios邮件发送命令 修改nagios命令配置文件 #vim nagios/etc/object/command.cfg #notify-host-by-email命令的定义 define command{ #命令名称,即定义了一个主机异常时发送邮件的命令。 command_name notify-host-by-email #命令具体的执行方式。 command_line /usr/bin/printf '%b' '***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n' | /bin/mail -s '** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **' $CONTACTEMAIL$ } #notify-service-by-email命令的定义 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$\n' | /bin/mail -s '** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **' $CONTACTEMAIL$ } 注:命令是在一行上的,这里排版问题被分成了多行. 接着修改nagios中定义的主机和服务的报警机制,实现nagios利用邮件自动报警。 鸣谢:本人参考了多篇文章后总结而得,在此感谢各位网络分享者! 本文出自 “4699096” 博客,请务必保留此出处http://4709096.blog.51cto.com/4699096/1703980 |
|