企业微信、钉钉和邮件告警配置的目的是为了确保监控系统检测到的问题能够及时传达给相关人员,并通过灵活的通知方式提高团队的响应速度和协作效率。
本文介绍的是QQ邮件告警
一 开启发件服务器SMTP功能
本文使用的是QQ邮箱,其他邮箱操作类似:进入QQ邮箱,然后点击左上侧,下来到选择《POP3/SMTP/IMAP》服务管理
按照要求进行验证后,获取授权码:
二 安装邮件服务软件
安装配置 Mailx 和 msmtp 服务器信息
yum install -y mailx
vim /etc/mail.## 最后一行后添加
set from= 你的QQ邮箱完整地址
set smtp=smtp.qq.com
set smtp-auth-user= 你的QQ邮箱完整地址
set smtp-auth-password= 上一步获取的授权码
set smtp-auth=login
测试配置成功与否:在zabbix-server端发一条信息到邮箱
echo "测试内容" | mail -s "测试zabbix邮件" "645551953@qq.com"
三 准备发送邮件的脚本
3.1 安装转码工具 dos2unix
dos2unix:将文本文件从 DOS/Windows 格式转换为 Unix/Linux 格式的命令行工具,以确保文本文件在 Unix/Linux 系统中能够正确显示和处处理。下载官网
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/dos2unix-6.0.3-7.el7.x86_64.rpm
rpm -ivh dos2unix-6.0.3-7.el7.x86_64.rpm
3.2 创建zabbix能调用的警告脚本
3.21 找到zabbix用于存储处理告警事件的自定义脚本的目录alertscripts(警告脚本)
find / -name "*aler*"
如果是rpm安装的就在 /usr/lib/zabbix/alertscripts
3.22 写脚本
vim alertscripts/send-mail.sh
#!/bin/bash
#export.UTF-8
to=$1
subject=$2
context=$3
FILE=/tmp/mailtmp.txt
echo "$3" > $FILE
dos2unix -k $FILE
/bin/mail -s "$subject" $to < $FILE
####记得授权####
chmod +x send-mail.sh
这个主要用于发送邮件的脚本,这个脚本接收三个参数:收件人地址、邮件主题和邮件内容,然后将内容写入临时文件并发送邮件。(这里接受的参数是zabbix-web中填写的)
四 创建新的报警媒介
如图操作
填写对应的信息
{ALERT.SENDTO} 代表告警发送给的目标,通常是用户或者用户组的联系方式,比如邮箱地址
{ALERT.SUBJECT} 是告警通知的主题,通常包含告警的简要描述、触发的监控项等信息
{ALERT.MESSAGE} 代表告警消息的内容,通常包含告警的详细信息等
这三个是zabbix内置的宏(macros),它们不是用户自定义的参数,而是用于告警通知的内置变量。当 Zabbix 触发了告警动作时,这些宏会被替换为实际的值,从而生成包含实际告警信息的通知。
###媒介准备完成###
五 配置用户使用新的媒介
我这里选择Admin超级管理员作为配置用户
这里要点两次更新,才算写入
六 配置发邮件动作
左侧配置-动作-左上角点击创建,填写相关信息
配置动作中操作
## 自定义标题
问题 {EVENT.NAME}
## 自定义内容
问题出现时间 {EVENT.TIME} on {EVENT.DATE}
事件名称 {EVENT.NAME}
主机 {HOST.NAME}
告警等级 {EVENT.SEVERITY}
###工作面板观察
改进:只有告警信息,恢复信息如何设置?
七 Zabbix环境变量 与 shell 参数的关系
自行参考官网文档 zabbix支持的宏https://www.zabbix.com/documentation/5.0/en/manual/appendix/macros/supported_by_location
八 实验测试
报警相关:媒介-用户使用媒介-设置媒介依赖的动作-脚本
本文检测的是mysql-111的3307端口,关闭mysql,收到3封间隔60s的邮箱告警