zabbix 添加 邮件报警:
邮件报警 配置 有两块 :
1. 服务器邮件服务
2. web端配置
他们中间 串联的仅仅 是一个“ 配置文件 中声明 的脚本路径” + 一个“ 自动发送邮件的脚本 ”
一.邮件服务 (只要你能 往 外部邮箱正常发送邮件就可以,没其他特殊的要求)
本文采用 sendmail + heirloom-mailx 利用 163邮箱(工作用的邮箱) 往 qq邮箱发送报警
1. 安装必备的软件
apt-get install -y sendmail
apt-get install -y heirloom-mailx
2. 修改配置文件
/etc/mail/sendmail.cf
O DaemonPortOptions=Family=inet, Name=MTA-v4, Port=smtp, Addr=0.0.0.0 (默认只能本地回环,改为0.0.0.0可以往外网发)
如果不清楚 可以搜一下,网上文档很多
/etc/nail.rc (添加用来做发送的 邮箱)
set [email protected] (邮箱)
set smtp=smtp.ym.163.com
set [email protected] (邮箱账户)
set smtp-auth-password=xxxx (邮箱密码)
set smtp-auth=login
3. 测试 配置是否可用:
echo 123 | mail -s 123 [email protected]
可看一下 /var/mail/root 里是否 有 发送成功的log
如果你的qq邮箱没有收到消息 ,记得 去垃圾箱里看一下 ,也许是被定义为 垃圾邮件了
在 qq邮箱里 设置白名单 即可
4. 脚本 编写
首先 修改 /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/etc/zabbix/alertscripts (跟随自己的喜好写)
到 应的目录下 创建脚本文件 sendmail.sh
这里 需要 安装 dos2unix 因为 跨文件系统 会导致 邮箱收到的永远附件 ,这里 的export LANG=en_US.UTF-8 和dos2unix 解决了此问题
cat sendmail.sh
#!/bin/bash
export LANG=en_US.UTF-8
mailTmp=/etc/zabbix/alertscripts/mailTMP
echo "$3" >$mailTmp
to=$1
subject=$2
dos2unix -k $mailTmp
mail -s "$subject" "$to" < "$mailTmp"
这里涉及到权限的问题 , 添加文件执行权 以及 ugo 权限 (针对zabbix 用户,可能需要 自己建 zabbix家目录 并 修改 /etc/passwd 文件zabbix:x:106:114::/home/zabbix:/bin/bash )
然后对脚本进行测试
gosu zabbix bash sendmail.sh [email protected] "主题" "内容" (不懂gosu的可参照其他文档)
到这里 服务端 以及配置完毕了 ,如果 脚本测试是正常的,你的邮箱可以收到邮件, 那么 再往后 zabbix 告警 邮件 qq邮箱 不能收到就纯粹是web端的配置有问题了
二. web 配置
管理 ---报警媒介类型: 创建 媒体类型
管理---用户群组:
为Zabbix administrators 添加 你主机组的 读写权
管理---用户: (这里就用admin了,也可以是自己建的 用户)
进入用户 -- 报警媒介--- 添加:
更新完是这样的界面:
配置动作: 创建动作
恢复操作和确认操作都是 和曹操 差不多的配置 添加 用户和组 即可
到这里配置就 结束了 , 接下来 自己 建 触发器 触发 告警 看能不能收到邮件即可!!!
收不到,多半是web端 配置有问题 , 可从 报表--动作日志那里看 邮件日志