### Option: AlertScriptsPath
#Location of custom alert scripts
# Mandatory: no# Default:
# AlertScriptsPath=/home/zabbix/bin/
1.按照这个教程,安装sendmail,新建一个zabbix 用户,但是这一步应该会出错, 因为zabbix这个用户在安装zabbix 的时候自动新建了.随意新建一个用户也行.后面要注意zabbix-server对脚本的访问权限.!!!!!! linux 里面除了root 用户否则不能访问其他用户的文件.新建一个liu用户.
http://bbs.osapub.com/thread-3873-1-1.html
2.在/home/liu/bin 新建sendmail 脚本
#!/bin/sh
export smtpemailfrom=litao@server.net
export zabbixemailto="$1"
export zabbixsubject="$2"
export zabbixbody="$3"
export smtpserver=smtp.server.com
export smtplogin=litao@server.net
export smtppass=mypasswd
/usr/bin/sendEmail -f $smtpemailfrom -t $zabbixemailto -u $zabbixsubject -m $zabbixbody -s $smtpserver:25 -xu $smtplogin -xp $smtppass
PS. $1 这些不用改 默认就好.
用root 给脚本添加权限. chmod 755 zabbix_sendemail(添加文件的可执行权限)
用这个命令测试
/liu/bin/sendEmail -f litao@server.net -t litao@server.net -u testzabbix -m yesss -s smtp.server.com:25 -xu litao@server.net -xp mypasswd
按照实际情况修改下 里面的地址,密码等.
这里需要修改下配置,因为配置默认是在home/zabbix/zabbix-service.conf
### Option: AlertScriptsPath
#Location of custom alert scripts
# Mandatory: no# Default:
# AlertScriptsPath=/home/zabbix/bin/
把# 去掉,改成/home/liu/bin 就好, 然后service zabbix-server restart 下.
4.ps -ef |grep zabbix 看下 zabbix 用的什么用户开启的.
要确保这个用户有访问sendmail脚本的权限.
这里有3种办法,我暂时使用的第一种方法,还没成功.
-
三种处理方法:
1. 用root 启动zabbix,在配置里面把user 改为root
2. 给zabbix 加到 admin 组
3. 手工建一个目录,不放在其它用户home 目录下,给zabbix执行权限
和楼主交流之后,我的zabbix 不是用源码编译安装,所以修改用户组(方法2)没用,使用方法一.
-
停止zabbix, su 到 root 用户,启动脚本 脚本在/etc/init.d/zabbix-server
但是用ps -ef |grep zabbix 之后,还是发现不是用的root用户开启的,所以只有放弃.
5 把sendmail 脚本放在/temp 下,并相应修改配置 并且重启.