首页 > 其他分享 >Zabbix利用脚本方式实现邮件报警

Zabbix利用脚本方式实现邮件报警

时间:2023-04-03 11:35:33浏览次数:33  
标签:name 报警 Zabbix echo zabbix file 邮件

一、安装mailx并配置好能够通过第三方发送邮件

yum -y install mailx
vim mail.rc
#在末尾添加如下内容(以163邮箱为例):
#set for zabbix 
set sendcharsets=iso-8859-1,utf-8
#发件人 
set [email protected]
#smtp服务器地址
set smtp=smtp.163.com
#需要登录认证
set smtp-auth=login
#认证邮箱
set [email protected]
#授权码
set smtp-auth-password=xxxxx
 
#用如下命令测试发邮件,能发过去就算成功:
echo "zabbix test mail" |mailx -s "zabbix" [email protected]

二、创建发送邮件脚本

mkdir -p /etc/zabbix/scripts
cd /etc/zabbix/scripts
vim send_email.sh
#!/bin/bash
#to_email_address=$1 # 收件人Email地址,zabbix传入的第一个参数
subject=`echo $2 | tr '\r\n' '\n'` # 邮件标题,zabbix传入的第二个参数
message=`echo $3 | tr '\r\n' '\n'` # 邮件内容,zabbix传入的第三个参数

file_name="/tmp/send_email.log"
if [ ! -f $file_name ];then
touch $file_name
chmod 777 $file_name
fi
echo `date +"%F %T"` >> $file_name
echo "----------" >> $file_name
echo "收件人:$1" >> $file_name
echo "邮件标题:$subject" >> $file_name
echo "邮件内容:$message" >> $file_name
echo "----------" >> $file_name
echo "${message}" | mail -s "${subject}" $1 >> $file_name 2>&1

chmod +x send_email.sh
chown Zabbix:Zabbix send_email.sh

注意:脚本里面收件人地址如果用变量赋值则不能加双引号,这个是错误550 Invalid User的来源

三、Zabbix修改脚本配置目录

vim /etc/zabbix/zabbix_server.conf
…
AlertScriptsPath=/etc/zabbix/scripts
…
 
systemctl restart Zabbix-server

四、Zabbix设置脚本方式调邮件报警

4.1 添加报警媒介

管理->媒介->创建媒介类型。类型选择脚本,脚本名称是之前编辑的脚本名称。脚本的三个参数:{ALERT.SENDTO}、{ALERT.SUBJECT}、{ALERT.MESSAGE}。最后点击添加(如果修改已有的就是更新)。

Zabbix利用脚本方式实现邮件报警_邮件报警

4.2 设置告警用户

管理->用户->选择对应用户,报警媒介的类型为之前新添加的报警媒介名称

Zabbix利用脚本方式实现邮件报警_邮件报警_02

4.3 设置连续报警动作

配置->动作->触发器动作->创建动作。这里需要设置连续报警。连续报警的流程见下图:

Zabbix利用脚本方式实现邮件报警_Zabbix_03

操作部分的自定义消息内容如下(第1步和第2步一样):

主题:服务器{HOSTNAME}发生:{TRIGGER.NAME}故障!
消息:
  触发器状态:{TRIGGER.STATUS}
  严重程序:{TRIGGER.SEVERITY}
  告警信息:{TRIGGER.NAME}
  告警主机:{HOST.NAME}
  问题详情:{ITEM.NAME}:{ITEM.VALUE}
  主机IP:{HOST.IP}
  告警时间:{EVENT.DATE} {EVENT.TIME}
  事件ID:{EVENT.ID}

Zabbix利用脚本方式实现邮件报警_Zabbix_04


Zabbix利用脚本方式实现邮件报警_Zabbix_05


对以上步骤的说明:

  • 步骤 1:设置时间为 60 秒,即 60 秒之后没有解除报警则执行操作步骤 2。默认操作步骤持续时间:60,单位默认为秒
  • 步骤 2:步骤 2 - 0 意思为在没有解除报警的情况下每隔 60 秒就发送一次报警信息(因为使用了默认动作)
  • 发送到用户:这里用户需要有超级管理员权限才可以接收到报警信息

4.4 设置恢复操作

与上一步类似,不过自定义消息内容有区别。

主题:服务器{HOSTNAME}的{TRIGGER.NAME}故障已恢复!
消息:
  主机IP:{HOST.IP}
  恢复时间:{EVENT.DATE} {EVENT.TIME}
  恢复等级:{TRIGGER.SEVERITY}
  恢复信息:{TRIGGER.NAME}-{ITEM.VALUE}
  事件ID:{EVENT.ID}

Zabbix利用脚本方式实现邮件报警_邮件报警_06


最后记得点击添加或更新。

五、验证

先将目标机器的网卡禁掉,使其ping不通,查看是否有报警邮件以及1分钟不解决是否再接着发。之后再启用目标机器的网卡,看看恢复操作后邮件会不会发来。

Zabbix利用脚本方式实现邮件报警_Zabbix_07

标签:name,报警,Zabbix,echo,zabbix,file,邮件
From: https://blog.51cto.com/u_15796303/6165865

相关文章

  • Python邮件发送接收实战
    一、电子邮件Email的历史比Web还要久远,直到现在,Email也是互联网上应用非常广泛的服务。几乎所有的编程语言都支持发送和接收电子邮件,但是,先等等,在我们开始编写代码之前,有必要搞清楚电子邮件是如何在互联网上运作的。我们来看看传统邮件是如何运作的。假设你现在在北京,要给一个香港......
  • python - 邮件发送
    因为公网ip是动态的,想做一个在ip发生改变后邮件提醒1.首先需要开启smtp服务开启后复制授权密码2.邮件发送importsmtplibfromemail.mime.textimportMIMETextFrom='[email protected]'#发件人邮箱To=Frompwd='ZZZZZZZZZZZZZZZZ'#授权码smtp=sm......
  • docker安装zabbix
    一、概述Zabbix是一款能够监控众多网络参数和服务器的健康度和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的警报。这样可以快速相应服务器问题。Zabbix基于存储的数据提供出色的报告和数据可视化。这些功能使得Zabbix成为容量规划的理想选......
  • C#个人邮件发送功能
    在收件人邮箱开启stmp授权,获取授权码,具体在要登陆对应邮箱在设置具体百度调用微软提供SmtpClient的接口SmtpClient类(System.Net.Mail)|MicrosoftLearn......
  • zabbix定义邮件告警
    1.定义发件人   ......
  • zabbix配置触发器。。。。即设置监控项报警的分界值!!
              {192.168.8.101:system.users.num.last()}>6            报警声音设置    测试触发器报警:   问题来了,触发器提醒运维人员,需要及时处理一般问题!! ......
  • Docker自制镜像部署Zabbix6
    只需要一个不到1G的zip包即可全自动部署Zabbix6 安装版本:nginx1.22  PHP7.4.33  Mysql8.0.28 Zabbix6.0.12 安装Docker,已有Docker环境的忽略curl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repocurl-o/etc/yum.repo......
  • zabbix监控tcp连接数脚本
    1、添加脚本[root@localhost]#vim/etc/zabbix/zabbix_agent2.d/plugins.d/check_tcp.sh#!/bin/bashNAME=$1functionLISTEN{netstat-an|grep'LISTEN'|greptcp|wc-l}functionESTABLISHED{netstat-an|grep'ESTABLISHED'|greptcp|wc-l}......
  • Docker 容器上部署 Zabbix
    首先,从DockerHub上拉取Zabbix镜像。可以使用以下命令:dockerpullzabbix/zabbix-server-mysql:latest这会下载最新版本的ZabbixServer镜像和MySQL镜像。然后,创建一个Docker网络以便容器可以相互通信:dockernetworkcreatezabbix_network接下来,启动MySQ......
  • 自建邮件服务器 post.io
    搭建服务所选服务器的官网:https://poste.io/用docker安装吧,别去折腾了。dockerrun-d\-p880:80-p8443:443-p25:25-p110:110-p143:143-p465:465-p587:587-p993:993-p995:995-p4190:4190\-eTZ=Asia/Shanghai\-v/data/mail-data:/data\--name"mail......