ZABBIX系统默认告警机制
1、设置系统Email告警
管理>报警媒介类型》>点击Email告警方式
设置邮箱协议、发送邮件的邮箱及邮箱授权码
授权码获取方式(以QQ邮箱为例):
2、设置动作
创建动作
设置动作
恢复操作设置同样
添加完成显示如图:
3 进行邮箱告警测试
关闭检测主机的80端口进行测试
邮件已经发送至设置的管理员邮箱
进入到绑定的邮箱进行查看
ZABBIX脚本呢告警机制
1、确保postfix 和 sendmail服务是关闭的
[root@localhost ~]# systemctl status sendmail
Unit sendmail.service could not be found.
[root@localhost ~]# systemctl status postfix
● postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Sat 2020-07-04 16:55:04 CST; 10s ago
2、安装开启mailx 用于发送邮件
3、配置mailx
[root@zabbix ~]# vim /etc/mail.rc ---配置文件末尾配置
set from=test@163.com
set smtp=smtp.163.com
set smtp-auth-user=test@163.com
#密码是163邮箱中设置生成的
set smtp-auth-password=授权码
set smtp-auth=login
测试 mailx 发送是否成功
echo "test test内容" | mailx -s "测试标题" <接收邮箱>
4、编写告警脚本
配置文件中(/etc/zabbix/zabbix_server.conf )使用脚本文件的地址
在该路径下写脚本
脚本文件内容
[root@zabbix alertscripts]# vim /usr/lib/zabbix/alertscripts/mailx.sh
#! /bin/bash
#
#
sendto=$1
subject=$(echo $2 | tr '\r\n' '\n')
messages=$(echo $3 | tr '\r\n' '\n')
echo "${messages}" | mailx -s "${subject}" ${sendto} >> /tmp/mailx.log 2>&1
赋予脚本执行权限以及所属用户
创建新的报警类型
进行设置
添加成功显示如图
创建告警发送邮件动作
恢复操作设置同样
添加成功!
5、进行自定义邮件告警脚本测试
啊哦!出了点小问题,没有定义用户媒介
问题出在这里 ↓
设置完成之后再进行测试
恭喜你,脚本执行成功!!