Linux运维基础之zabbix邮件告警机制 脚本告警

206 阅读2分钟

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、进行自定义邮件告警脚本测试

在这里插入图片描述

啊哦!出了点小问题,没有定义用户媒介

问题出在这里 ↓

在这里插入图片描述

设置完成之后再进行测试

在这里插入图片描述

恭喜你,脚本执行成功!!