Zabbix - 邮件报警配置
1. 前言
上一次配置 zabbix 还是 2.4 的版本,这次直接使用 zabbix 4 的版本,变化还是挺大的,将 邮件告警配置记录下来。
发送邮件主要思路是:触发器 -> 动作 -> 脚本发送邮件
脚本放置位置,需要在 zabbix_server.conf 里配置,比如我的zabbix 脚本路径:
AlertScriptsPath=/opt/zabbix/alertscripts
修改完成,记得重启下 zabbix_server 服务。
mkdir -pv /opt/zabbix/alertscripts
然后就可以在这个目录下编写脚本了,怎么才能将邮件成功发送出去,可以通过 python脚本,但是这里懒得在使用python写发送邮件,直接shell命令发送会简单很多。
2. 实现shell 发送邮件
执行下面所有命令:
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz tar zxf sendEmail-v1.56.tar.gz -C /usr/src/ cd /usr/src/sendEmail-v1.56/ cp -a sendEmail /usr/local/bin/ yum install perl-Net-SSLeay perl-IO-Socket-SSL -y wget http://www.cpan.org/src/5.0/perl-5.10.0.tar.gz tar zxf perl-5.10.0.tar.gz cd perl-5.10.0 ./configure.gnu -des -Dprefix=/usr/local/perl make make install mv /usr/bin/perl /usr/bin/perl.bak ln -s /usr/local/perl/bin/perl /usr/bin/perl
然后就可以使用 sendMail 发送邮件了,测试如下:
/usr/local/bin/sendEmail -f 发送方邮箱地址 -t 接收方邮件地址 -s 发送方SMTP服务器 -u "test" -xu 发送方邮箱登录用户名 -xp 发送方邮件服务器登录密码 -m "test-1234567890" -l /var/log/sendmail.log
发送成功,发送的日志会记录到 /var/log/sendmail.log 中,可以自行查看,如果成功了,日志如下:
… sendEmail[28067]: Email was sent successfully!
邮件测试成功,就可以开始写脚本:
[root@192.168.1.200 ~]#vim /opt/zabbix/alertscripts/sendmail.sh #!/bin/bash # Author:hukey to=$1 subject=$2 body=$3 user='superman@126.com' smtp_server='smtp.126.com' password='123456' /usr/local/bin/sendEmail -f $user -t "$to" -s $smtp_server -u "$subject" -o message-content-type=html -o message-charset=utf8 -xu $user -xp $password -m "$body" >> /var/log/sendmail.log
这里解释下 sendEmail 命令参数:
$1:收件人邮箱 $2:标题 $3:邮件的具体内容
这三个参数,zabbix 触发邮件告警时,需要传参的。
写完脚本记得给权限,因为 zabbix 是通过 zabbix用户来执行脚本的。
[root@192.168.1.200 ~]#chown -R zabbix:zabbix /opt/zabbix/alertscripts/sendmail.sh [root@192.168.1.200 ~]#touch /var/log/sendmail.log [root@192.168.1.200 ~]#chown -R zabbix:zabbix /var/log/sendmail.log
3. 页面配置 zabbix 邮件告警
写完点击更新。
添加触发器动作
动作:
操作:
默认标题: {TRIGGER.STATUS}: {TRIGGER.NAME} 消息内容: <table border="1" bordercolor="black" cellspacing="0px" cellpadding="4px"> <tr > <td>告警主机</td> <td bgcolor="#FF3333">{HOSTNAME1}</td> </tr> <tr> <td>告警时间</td> <td>{EVENT.DATE} {EVENT.TIME}</td> </tr> <tr> <td>告警等级</td> <td>{TRIGGER.SEVERITY}</td> </tr> <tr> <td>告警信息</td> <td>{TRIGGER.NAME}</td> </tr> <tr> <td>告警项目</td> <td>{TRIGGER.KEY1}</td> </tr> <tr > <td>问题详情</td> <td bgcolor="#FF3333">{ITEM.NAME}: {ITEM.VALUE}</td> </tr> <tr> <td>当前状态</td> <td>{TRIGGER.STATUS}: {ITEM.VALUE1}</td> </tr> <tr> <td>事件ID</td> <td>{EVENT.ID}</td> </tr> </table>
消息内容是一个html,使用户更清晰的查看告警邮件。
恢复操作:
这部分和 操作 类似。
告警邮件 主机 和 问题详情 是红色 恢复邮件 主机 和问题详情 是绿色
编写完毕,点击下面的更新。接下来就需要给 superman 这个zabbix 用户添加个人邮箱了。
到这里,zabbix 4 邮件告警就完成了。 可以尝试 关闭 被监控主机的 zabbix_agent 服务,等待邮件,如下:
告警邮件:
告警恢复邮件:
参考链接:
https://www.cnblogs.com/topicjie/p/7223121.html
原文地址:https://www.cnblogs.com/hukey/p/11528971.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【技术创作101训练营】innerHTML插入运行js字符串问题探究
- 组合体惯量法A: matlab程序—机械臂动力学建模
- vue+echarts 实现两个小例子
- 2020CV秋招求职的若干思考
- 快速学习-ElasticJob高可用
- 快速学习-Elastic调度部署
- 快速学习-ElasticJob应用API
- 快速学习-ElasticJob-Lite Quick Start
- 快速学习-ElasticJob-Cloud Quick Start
- @JacksonInject与@JsonAlias注解-JSON框架Jackson精解第4篇
- 医疗NLP相关数据集整理
- 我们如何用 K8S 搞定 1000 个应用的测试环境
- 如何实现rsync多并发同步?
- 分享Linux内存占用几个案例
- 30个编程小技巧,提高代码性能