说明:由于zabbix服务端和被监控端都已添加到监控系统中,服务也已正常运行。由于会发生宕机和服务终止等情况,现在需要添加告警,在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报警邮件到指定邮箱。
zabbix邮件报警分为两种情况:
1、Zabbix服务端只是单纯的发送报警邮件到指定邮箱,发送报警邮件的这个邮箱账号是Zabbix服务端的本地邮箱账号(例如:[email protected]),只能发送,不能接收外部邮件。
2、使用一个可以在互联网上正常收发邮件的邮箱账号(例如:[email protected]),通过在Zabbix服务端中设置,使其能够发送报警邮件到指定邮箱。
第一种方式:使用zabbix服务端本地邮箱账号发送邮件:
1,安装sendmail或者postfix
[[email protected] ~]# yum install postfix
[[email protected] ~]# yum install postfix
[[email protected] ~]# chkconfig postfix on
[[email protected] ~]# yum install sendmail //可省略
[[email protected] ~]# service sendmail start //可省略
[[email protected] ~]# chkconfig sendmail on //可省略
注意:由于我安装的是postfix,sendmail和postfix只需要安装一个即可并开启服务即可,视个人情况而定,再决定安装哪一个。
2,安装邮件发送工具mailx。安装此工具也有两种方式:一,下载源码包进行安装。二也可使用yum进行安装。
方法一:下载源码包进行安装.
[[email protected] ~]#wget http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
[[email protected] ~]#tar jxvf mailx-12.4.tar.bz2
[[email protected] ~]#cd mailx-12.4
[[email protected] ~]#make
[[email protected] ~]#make install UCBINSTALL=/usr/local/mailx/
[[email protected] ~]#ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
[[email protected] ~]#ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
如果有报错的话,在根据报错进行一步步的解决。
方法二:直接使用yum进行安装即可。
[[email protected] ~]#yum -y install mailx-12.4
3,查看下版本信息,并发送封测试邮件发送正常。
[[email protected] ~]# mailx -V
12.4 7/29/08
[[email protected] ~]#echo "zabbix test mail" |mail -s "zabbix" [email protected]
4,配置zabbix服务端的邮件报警信息。
a,设置告警类型,依次打开:管理---示警媒体类型---创建示警媒体类型,见下图
备注:以上的设置是zabbix.com 为监控端主机名称,建议修改,否则使用默认localhost.localdomains发送邮件会被当做垃圾邮件拦截,不过要使用上边的设置,要修改下计算机的名称为zabbix.com即可。
b,设置用户的邮箱报警地址,依次打开:管理---用户---创建用户,如下图设置
c,设置Zabbix触发报警的动作,依次打开:配置---动作---创建动作,如下图:
在操作选项卡中,
操作类型:送出信息
送到用户:添加,把刚才添加的用户添加进来即可
默认信息:打钩
仅送到:Email,所有也是可以的
5,测试报警邮件。关闭Zabbix客户端服务 /etc/init.d/zabbix_agentd stop,过五分钟后就可以在你的设置的邮箱中查看报警信息了。
可以看到发件人是[email protected],第一种方法测试成功。
第二种方式:使用外部邮箱发送报警信息。
1,关闭postfix或sendmail,
service postfic stop
service postfix stop
chkconfig postfix off
备注:使用外部邮箱账号时,不需要启动sendmail或者postfix
如果在sendmail或者postfix启动的同时使用外部邮箱发送报警邮件,首先会读取外部邮箱
2,安装邮件发送工具mailx(安装的步骤和上一步一样)
安装此工具也有两种方式:一,下载源码包进行安装。二也可使用yum进行安装。
方法一:下载源码包进行安装.
[[email protected] ~]#wget http://nchc.dl.sourceforge.net/project/heirloom/heirloom-mailx/12.4/mailx-12.4.tar.bz2
[[email protected] ~]#tar jxvf mailx-12.4.tar.bz2
[[email protected] ~]#cd mailx-12.4
[[email protected] ~]#make
[[email protected] ~]#make install UCBINSTALL=/usr/local/mailx/
[[email protected] ~]#ln -s /usr/local/bin/mailx /bin/mail #创建mailx到mail的软连接
[[email protected] ~]#ln -s /etc/nail.rc /etc/mail.rc #创建mailx配置文件软连接
如果有报错的话,在根据报错进行一步步的解决。
方法二:直接使用yum进行安装即可。
[[email protected] ~]#yum -y install mailx-12.4
3,查看下版本信息,并发送封测试邮件发送正常。
[[email protected] ~]# mailx -V
12.4 7/29/08
不同的是要修改一下文件并添加配置并在最后添加一下配置:
[[email protected] ~]# vi /etc/mail.rc
set [email protected] smtp=smtp.qq.com
set [email protected] smtp-auth-password=password
set smtp-auth=login
4,发送测试邮件:
[[email protected] ~]#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权限。
[[email protected] alertscripts]# vi sendmail.sh 创建sendmail脚本
#!/bin/sh
echo "$3" |mail -s "$2" $1
~
~
~
[[email protected] alertscripts]# chown zabbix.zabbix sendmail.sh
[[email protected] alertscripts]# chmod +x sendmail.sh
[[email protected] 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,创建用户报警邮件,如下图的配置
8,和上边的步骤差不多,也是创建动作,然后关闭被监控端的服务,等五分钟左右就可以收到报警信息了。
最后,配置完成。