zabbix4.0-告警:配置邮件告警(bash脚本:Linux系统mail命令)

 

前言:

1、Linux是借用第三方的邮箱账号,来发送邮件到指定用户。
2、/etc/mail.rc配置文件中from和smtp-auth-user指定的第三方邮箱用户名必须相同。
3、使用它发送邮箱还需要这个账号的授权码,以及对应的smtp有服务器地址,然后才可以使用该邮箱发送邮件。这也是为什么这个授权码让你好好保管的原因,因为让别人知道的话,只需要邮箱账号,就可以使用你的邮箱号去发送任何邮件了,授权码和邮箱密码从某种意义上是一样的。

 


开始搭建

zabbix_server端配置:

1.安装mail命令

#yum install  -y mailx 

 

2.编辑配置文件/etc/mail.rc,在最下面添加如下内容

复制代码
set bsdcompat
set sendcharsets=iso-8859-1,utf-8
set from=借用第三方邮箱账号(对方收到邮件时显示的发件人)
set smtp=指定第三方发邮件的smtp服务器地址
set smtp-auth-user=借用第三方邮箱账号
set smtp-auth-password=借用第三方邮箱的授权码
set smtp-auth=login
-------------------------------
其中:
smtp邮箱若是qq邮箱,则为smtp.qq.com;若是163邮箱,则为smtp.163.com。
from和smtp-auth-user参数指定的第三方邮箱账号要一致。
smtp-auth=login:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式。
复制代码

3.测试mail命令是否可以正常使用

  # echo "naowdoa" |mail -s "linux" qilin920834778@qq.com

  正常情况下,若成功,则不会返回报错,且qq邮箱会收到对应的邮件。

4.在zabbix报警目录下编写发送邮件脚本。

复制代码
[root@zabbix alertscripts]# cd /opt/zabbix/alertscripts
-----------------------------------------------------------------
编写 /opt/zabbix/alertscripts/mailx.sh
[root@zabbix alertscripts]# vi mailx.sh
#!/bin/bash
#send mail
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
----------------------------------------------------------------
修改权限
#touch /tmp/mailx.log 
#chown -R zabbix.zabbix /tmp/mailx.log 
#chmod +x /opt/zabbix/alertscripts/mailx.sh
#chown -R zabbix.zabbix /opt/zabbix/
复制代码

5.测试邮件发送脚本是否可以正常发送邮件

# /opt/zabbix/alertscripts/mailx.sh  接收的邮箱地址  "主题"  "内容"
即
#/opt/zabbix/alertscripts/mailx.sh   qilin920834778@qq.com "hello world"  "awiuhdiawoi"
若没有返回报错,则命令发送成功

邮箱查看

 

 

 至此,zabbix_server端的mail配置等步骤,操作完成。然后到zabbix_web界面操作配置。

 

zabbix_web端配置:

1.管理--->报警媒介类型

 

 

 2.管理---->用户

选择Admin用户发送邮件

 

 

 

3.配置----->动作

①动作页面配置

 

 

 ②操作页面配置

 故障消息内容:

复制代码
SUBJECT内容:故障{TRIGGER.STATUS},服务器名:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

MESSAGE内容:
告警主机:{HOSTNAME}
告警主机IP地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
复制代码

 

 ③恢复操作页面配置

 

 

创建动作结果,如图:

 

 


 

开始测试

①创建故障,人工使磁盘变满:

# dd if=/dev/zero of=/root/a.txt bs=512M count=500

 

 ②等待zabbix_web页面报警:仪表盘

 

 ③查看邮箱

 

④消除报警后,查看恢复邮件

 

 


 

posted @   浮~生  阅读(405)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示