天天看点

zabbix告警(一)---添加邮件报警

说明:由于zabbix服务端和被监控端都已添加到监控系统中,服务也已正常运行。由于会发生宕机和服务终止等情况,现在需要添加告警,在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。

zabbix邮件报警分为两种情况:

1、Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:[email protected]),只能发送,不能接收外部邮件。

2、使用一个可以在互联网上正常收发邮件的邮箱账号(例如:[email protected]),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。

第一种方式:使用zabbix服务端本地邮箱账号发送邮件:

1,安装sendmail或者postfix

[root@zabbix ~]# yum install postfix

[root@zabbix ~]# chkconfig postfix on

[root@zabbix ~]# yum install sendmail           //可省略

[root@zabbix ~]# service sendmail start         //可省略

[root@zabbix ~]# chkconfig sendmail on          //可省略

注意:由于我安装的是postfix,sendmail和postfix只需要安装一个即可并开启服务即可,视个人情况而定,再决定安装哪一个。

2,安装邮件发送工具mailx。安装此工具也有两种方式:一,下载源码包进行安装。二也可使用yum进行安装。

   方法一:下载源码包进行安装.

[root@zabbix ~]#tar jxvf mailx-12.4.tar.bz2

[root@zabbix ~]#cd mailx-12.4 

[root@zabbix ~]#make

[root@zabbix ~]#make install UCBINSTALL=/usr/local/mailx/

[root@zabbix ~]#ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接

[root@zabbix ~]#ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接

如果有报错的话,在根据报错进行一步步的解决。

    方法二:直接使用yum进行安装即可。

[root@zabbix ~]#yum -y install mailx-12.4

3,更改postfix配置文件中的参数,默认的配置都是注释掉的,可以启用啊。

<code>[root@Monitor ~]</code><code># vim /etc/postfix/main.cf </code>

<code> </code><code>myhostname=mail.zabbix.example.cn</code>

<code> </code><code>myorigin=zabbix.example.cn</code>

<code> </code><code>mydomain=zabbix.example.cn</code>

<code> </code><code>mydestination=localhost</code>

<code> </code><code>mynetworks=127.0.0.0</code>

4,修改hosts文件,添加一行以后配置smtp会用到的:

<code>[root@Monitor ~]</code><code># vim /etc/hosts</code>

<code>127.0.0.1  zabbix.com</code>

5,查看下版本信息,并发送封测试邮件发送正常。

[root@zabbix ~]# mailx -V

12.4 7/29/08

备注:mailq :会列出当前在postfix发送队列中的所有邮件

postsuper -d ALL:删除当前等待发送队列的所有邮件,包括发送失败的退信

Postfix邮件的log位置是:/var/log/maillog

systemctl restart postfix.service   重启服务

检查语法:/usr/sbin/postconf -n

4,配置zabbix服务端的邮件报警信息。

    a,设置告警类型,依次打开:管理---示警媒体类型---创建示警媒体类型,见下图

<a href="http://s3.51cto.com/wyfs02/M00/73/57/wKiom1X6e_7gcbzJAAJKWblZl8s275.jpg" target="_blank"></a>

备注:以上的设置是zabbix.com 为监控端主机名称,建议修改,否则使用默认localhost.localdomains发送邮件会被当做垃圾邮件拦截,不过要使用上边的设置,要修改下计算机的名称为zabbix.com即可。

       b,设置用户的邮箱报警地址,依次打开:管理---用户---创建用户,如下图设置

<a href="http://s3.51cto.com/wyfs02/M01/73/57/wKiom1X6fa2hPVMnAAMMxRWxZ30434.jpg" target="_blank"></a>

    c,设置Zabbix触发报警的动作,依次打开:配置---动作---创建动作,如下图:

在操作选项卡中,

操作类型:送出信息

送到用户:添加,把刚才添加的用户添加进来即可

默认信息:打钩

仅送到:Email,所有也是可以的

<code>默认接收人:故障{TRIGGER.STATUS},服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!</code>

<code>默认信息:</code>

<code>告警主机:{HOSTNAME}</code>

<code>告警时间:{EVENT.DATE} {EVENT.TIME}</code>

<code>告警等级:{TRIGGER.SEVERITY}</code>

<code>告警事件: {TRIGGER.NAME}</code>

<code>告警地址:{HOST.IP}</code>

<code>告警项目:{TRIGGER.KEY1}</code>

<code>告警内容:{ITEM.NAME1}:{ITEM.VALUE1}</code>

<code>当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}</code>

<code>事件ID:{EVENT.ID}</code>

<code>告警状态:{TRIGGER.STATUS}</code>

<code>恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!</code>

<code>恢复信息:</code>

<code>告警主机:{HOSTNAME1}</code>

<code>告警信息: {TRIGGER.NAME}</code>

<code>问题详情:{ITEM.NAME}:{ITEM.VALUE}</code>

<code>默认接收人确认: {TRIGGER.NAME}</code>

<code>{USER.FULLNAME} acknowledged problem at {ACK.DATE} {ACK.TIME} with the following message:{ACK.MESSAGE}</code>

<code>Current problem status is {EVENT.STATUS}</code>

<code>备注:最新生产上的使用。</code>

<code>服务器告警信息:</code>

<code>告警状态:{TRIGGER.STATUS}\n</code>

<code>告警主机:{HOSTNAME}\n</code>

<code>告警地址:{HOST.IP}\n</code>

<code>告警等级:{TRIGGER.SEVERITY}\n</code>

<code>告警事件:{TRIGGER.NAME}\n</code>

<code>告警项目:{TRIGGER.KEY}\n</code>

<code>告警内容:{ITEM.NAME}\n</code>

<code>告 警 值:{ITEM.VALUE}                                   \n</code>

<code>事 件 ID:{EVENT.ID}    \n</code>

<code>告警时间:{EVENT.DATE} {EVENT.TIME}\n</code>

<code>恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}\n</code>

<code>当前时间:{DATE} {TIME}</code>

5,测试报警邮件。关闭Zabbix客户端服务 /etc/init.d/zabbix_agentd stop,过五分钟后就可以在你的设置的邮箱中查看报警信息了。

第二种方式:使用外部邮箱发送报警信息。

 1,关闭postfix或sendmail,

service postfic stop

service postfix stop

chkconfig postfix off

备注:使用外部邮箱账号时,不需要启动sendmail或者postfix

如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱

2,安装邮件发送工具mailx(安装的步骤和上一步一样)

安装此工具也有两种方式:一,下载源码包进行安装。二也可使用yum进行安装。

方法一:下载源码包进行安装.

方法二:直接使用yum进行安装即可。

3,查看下版本信息,并发送封测试邮件发送正常。

不同的是要修改一下文件并添加配置并在最后添加一下配置:

[root@zabbix ~]# vi /etc/mail.rc 

 set [email protected] smtp=smtp.qq.com

 set [email protected] smtp-auth-password=password

 set smtp-auth=login

4,发送测试邮件:

[root@zabbix ~]#echo "zabbix test mail" |mail -s "zabbix" [email protected] 

#测试发送邮件,标题zabbix,邮件内容:zabbix test mail,发送到的邮箱:[email protected]

#这时候,邮箱[email protected]会收到来自[email protected]的测试邮件

5,进入该目录:/usr/local/zabbix/alertscripts,并创建sendmail.sh并赋予+x权限。

[root@zabbix alertscripts]# vi sendmail.sh   创建sendmail脚本

#!/bin/sh

echo "$3" |mail -s "$2" $1

~                                                                               

~

[root@zabbix alertscripts]# chown zabbix.zabbix sendmail.sh    

[root@zabbix alertscripts]# chmod +x sendmail.sh 

[root@zabbix alertscripts]# ll

total 12

-rwxr-xr-x. 1 zabbix zabbix   37 Sep 15 23:41 sendmail.sh

-rwxr-xr-x. 1 zabbix zabbix  101 Sep 15 00:00 weixin

drwxr-xr-x. 5 root   root   4096 Sep 17 10:18 WeiXin-Private-API

 6,创建报警媒体类型:如下图配置:

7,创建用户报警邮件,如下图的配置

<a href="http://s3.51cto.com/wyfs02/M02/73/59/wKiom1X6j__RGGP3AAN3IPegwh8825.jpg" target="_blank"></a>

8,和上边的步骤差不多,也是创建动作,然后关闭被监控端的服务,等五分钟左右就可以收到报警信息了。

<a href="http://s3.51cto.com/wyfs02/M02/73/59/wKiom1X6kIjziEJyAAJRVZt-mSs458.jpg" target="_blank"></a>

本文转自 lqbyz 51CTO博客,原文链接:http://blog.51cto.com/liqingbiao/1695790

继续阅读