分享

Nagios监控之利用sendmail使用第三方SMTP服务发送邮件报警

 Glory____ 2017-01-12

使用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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多