Zabbix邮件告警看了不少文档,写的那叫一个蛋疼,明明没有发出去邮件,硬要糊弄观众,我也跟着被糊弄。linux
操做系统环境:web
CentOS 5.5 x84_64位shell
Zabbix版本2.2.3bash
Web服务器:LNMP服务器
环境部署,参考其余靠谱文档,建议官方文档,今天咱们聊聊zabbix邮件告警的事。测试
项目即监控项,触发器至关于给监控项设置阈值,根据表达式触发触发器,产生报警。spa
关于操做系统CentOS6.0 如下版本都是经过mail命令调用sendmail的sm-client发送邮件,因此若是关闭sendmail按照不少网上的文档是发不出邮件的。操作系统
那么mail命令若是仔细观察的话其实调用的是mailx来调用第三方非本地smpt服务。code
一. 首先卸载(或中止) senmail升级安装mailxserver
1) 中止sendmail:
[root@localhost ~]# /etc/init.d/sendmail stop [root@localhost ~]# chkconfig sendmail off [root@localhost ~]#
2) 安装mailx:
[root@localhost workplace]# ls mailx-12.4 mailx-12.4.tar.bz2 zabbix-2.2.3 zabbix-2.2.3.tar.gz [root@localhost workplace]# [root@localhost workplace]# cd mailx-12.4 [root@localhost mailx-12.4]# make && make install UCBINSTALL=/usr/bin/install
若是碰到错误自行解决.
3) 配置mailx:
[root@localhost ~]# cd /usr/local/bin/ [root@localhost bin]# cp mailx /bin/mail cp: overwrite `/bin/mail'? y [root@localhost bin]#
4) 配置第三方smtp服务:
能够注册新浪邮箱测试发送给网易邮箱
Mailx的配置文件/etc/nail.rc~
[root@localhost ~]# vi /etc/nail.rc set from=test001@sina.com #你的用户名 set smtp=smtp://smtp.sina.cn:25 set smtp-auth-user= test001@sina.com #你的用户名 set smtp-auth-password= test001 #你的密码
5) 测试发送一份邮件
登录163查看是否收到邮件。
调用第三方邮件服务器配置完成,mailx的好处是占用系统资源小,速度快,配置简洁。
也可使用它链接公司内部服务器,这样作就更好了。
二. Zabbix 配置文件配置。
1) 首先咱们配置zabbix的配置文件,使其示警媒介支持脚本。
修改zabbix_server.conf中的
# AlertScriptsPath=${datadir}/zabbix/alertscripts
为
AlertScriptsPath=/usr/loca/zabbix/alertscripts
2) 创建示警媒介可执行脚本的存放目录:
[root@localhost ~]# mkdir /usr/local/zabbix/alertscripts [root@localhost ~]# chmod 755 /usr/local/zabbix/alertscripts [root@localhost ~]# chown -R zabbix:zabbix /usr/local/zabbix/alertscripts
这几步至关重要!!!
3) 脚本的编写:
[root@localhost ~]# cat /usr/local/zabbix/alertscripts/sendmail.sh #!/bin/bash echo "$3" | /bin/mail -s "$2" $1 [root@localhost ~]#
很是简单:
说明一下: $3是邮件内容
$2 邮件标题
$1 发送给谁
三. Zabbix web页面配置:
1) 示警媒介配置:
注意其中的类型以及脚本名称
类型选择脚本,名称选择你在alertscripts目录下创建的脚本文件名称。
2) 用户配置
多个收件人,注意以逗号隔开,而后存档。
注意这个类型选择你在示警媒介中定义的名称。
3) 动做配置:
4) 测试一下:
把触发项的阈值调节一下
邮件效果:
5) 邮件发送成功在web上页面上如何看到?
6) 若是邮件发送在linux服务商能成功,就是zabbix发送不成功,在那里看?
在51cto有朋友可能遇到这个问题,怎么排错
若是信息发送不成功,一般会显示在信息栏,好比超时,等等。
在信息栏看到:Timeout while executing a shell script 说明zabbixserver 的timeout设置的太低因此发不出去邮件,默认是3秒,改为10-30秒的样子应问题解决!