1、如果需要使用zabbix自带的SMTP发送邮件,需要在安装前升级系统的curl到7.20版本以上
2、zabbix对接PHP 7.1版本,因为PHP 7.1类型强化,会在安装完成zabbix,登录之后monitor页面显示:
1 A non well formed numeric value encountered [zabbix.php:21 → require_once() → ZBase->run() → ZBase->processRequest() → CView->getOutput() → include() → make_status_of_zbx() → CFrontendSetup->checkRequirements() → CFrontendSetup->checkPhpMemoryLimit() → str2mem() in include/func.inc.php:410] 2 A non well formed numeric value encountered [zabbix.php:21 → require_once() → ZBase->run() → ZBase->processRequest() → CView->getOutput() → include() → make_status_of_zbx() → CFrontendSetup->checkRequirements() → CFrontendSetup->checkPhpPostMaxSize() → str2mem() in include/func.inc.php:410] 3 A non well formed numeric value encountered [zabbix.php:21 → require_once() → ZBase->run() → ZBase->processRequest() → CView->getOutput() → include() → make_status_of_zbx() → CFrontendSetup->checkRequirements() → CFrontendSetup->checkPhpUploadMaxFilesize() → str2mem() in include/func.inc.php:410]
解决方案:
sed -i '/$last = strtolower(substr($val, -1));/a$val = substr($val,0,-1);' /home/www/zabbix/include/func.inc.php
/home/www/zabbix/include/func.inc.php文件路径各根据各http服务不同有所差异。
3、zabbix 3.0版本之后,使用自定义脚本发送邮件时,需要手动传递脚本参数
{ALERT.SENDTO} 收件人:对应用户邮箱
{ALERT.SUBJECT} 邮件主题:问题状态+对应的trigger名称
{ALERT.MESSAGE} 邮件正文:action中配置的邮件内容
以上参数按照顺序分别对应自定义脚本中的$1,$2,$3
4、使用自定义脚本发送的邮件,接收到的邮件正文为附件
该问题原因是由windws和linux文本格式导致,需要使用dos2unix将邮件内容进行转换
1 #!/bin/bash 2 3 echo "$3" > /tmp/zabbix_alert_message 4 /usr/bin/dos2unix -k /tmp/zabbix_alert_message 5 /bin/mail -s "$2" $1 < /tmp/zabbix_alert_message
中转文件/tmp/zabbix_alert_message,需要事先创建,并更属主属组为zabbix,否则zabbix服务器以zabbix用户身份执行自定义脚本时,无权限访问该中转文件,导致格式转换失败
5、执行remote command时需要做的事情:
- agent端打开remote command支持
1 [root@localhost ~]# grep -i remote /etc/zabbix/zabbix_agentd.conf 2 ### Option: EnableRemoteCommands 3 # Whether remote commands from Zabbix server are allowed. 4 EnableRemoteCommands=1 5 1为开启,0为关闭,默认为0
- 配置远程命令时,若该命令需要使用root身份执行,在命令前增加sudo命令。
- 在客户端,使用visudo编辑sudo的配置文件,给zabbix用户增加sudo权限,并关闭tty登录限制新增下面两行:
1 zabbix ALL=(ALL) NOPASSWD: /etc/rc.d/init.d/httpd restart #增加权限 2 Defaults:zabbix !requiretty #关闭TTY登录限制 3 4 若为关闭tty登录限制,无法成功使用sudo命令,可在visudo中打开sudo使用日志: 5 Defaults logfile=/var/sudo.log 6 Defaults !syslog 7 8 [root@localhost ~]# more /var/sudo.log 9 6月 22 16:41:21 : zabbix : sorry, you must have a tty to run sudo ; TTY=unknown 10 ; PWD=/ ; USER=root ; COMMAND=/etc/rc.d/init.d/httpd restart