Zabbix邮件告警看了很多文档,写的那叫一个蛋疼,明明没有发出去邮件,硬要糊弄观众,我也跟着被糊弄。
操作系统环境:
CentOS 5.5 x84_64位
Zabbix版本2.2.3
Web服务器:LNMP
环境部署,参考其他靠谱文档,建议官方文档,今天我们聊聊zabbix邮件告警的事。
项目即监控项,触发器相当于给监控项设置阈值,根据表达式触发触发器,产生报警。
关于操作系统CentOS6.0 以下版本都是通过mail命令调用sendmail的sm-client发送邮件,所以如果关闭sendmail按照很多网上的文档是发不出邮件的。
那么mail命令如果仔细观察的话其实调用的是mailx来调用第三方非本地smpt服务。
一. 首先卸载(或停止) senmail升级安装mailx
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秒的样子应问题解决!
原文:http://www.cnblogs.com/osxlinux/p/3865710.html