1、给邮箱开启客户端授权密码
2、server端安装配置邮件服务器
yum -y install mailx dos2unix
mailx -V
12.5 7/5/10
vim /etc/mail.rc #添加以下内容
set from=lycyusheng@163.com smtp=smtp.163.com
set smtp-auth-user=lycyusheng@163.com
set smtp-auth-password=客户端授权密码
set smtp-auth=login
测试:
echo "test mail from zabbix.server.com" |mail -s "test mail" lycyusheng@163.com
查看邮箱,此时收到一条测试消息
3、配置报警媒介类型:
4、使用脚本方式发送邮件
5、创建或者更改接受用户
6、修改zabbix配置文件,执行脚本
vim /etc/zabbix/zabbix_server.conf //修改脚本的保存位置
AlertScriptsPath=/usr/share/zabbix/alertscripts
mkdir -p /usr/share/zabbix/alertscripts
配置脚本
vim /usr/share/zabbix/alertscripts/sendmail.sh
#!/bin/bash
echo $1 >> /tmp/text.txt
echo $2 >> /tmp/text.txt
echo $3 >> /tmp/text.txt
//上三行是调试的,可以不写,用于查看变量是否传递过来,放到临时文件中
messages=`echo $3 | tr '\r\n' '\n'`
subject=`echo $2 | tr '\r\n' '\n'`
echo "${messages}" | mail -s "${subject}" $1 >>/tmp/mailx.log 2>&1
//当zabbix触发动作时要发送邮件,会直接调用脚本,脚本调用系统中存在的脚本内容,就会把往mail服务器中发送的那三个变量SENDTO SUBJECT MEASSAGE给调用过来。因为是往windows中发送,所以要把换行符替换一下。最后一行是产生错误日志。出现错误的时候可以去查看文件
chown -R zabbix.zabbix /usr/share/zabbix/alertscripts/
chmod +x /usr/share/zabbix/alertscripts/sendmail.sh
systemctl restart zabbix-server
添加动作
测试:
for i in {1..100};do elinks --dump 192.168.1.111/index.html;done
//或者停掉agent上某个进程服务,如ftp
出现问题,发送邮件,收到邮件
问题修复,发送邮件,收到邮件
cat /tmp/mailx.log
cat /tmp/text.txt //内容