Zabbix-(四)邮件、钉钉告警通知
Zabbix-(四)邮件、钉钉告警通知
一.前言
在之前的文章里,通过Zabbix对主机的磁盘、CPU以及内存进行了监控,并在首页Dashboard里创建了监控图形,但是只有当我们登录到Zabbix后才能看到监控到的问题(Problem),因此在本篇文章里,将利用触发器(Trigger),以及媒介(Media)等配置项,实现当触发器触发时,通过不同媒介,如:邮件、钉钉,发送动作(Action),实现实时通知告警功能。
准备
- Zabbix Server (Zabbix 4.4)
- 在Zabbix中已配置一些监控项和触发器(这些配置可以参考我的上一篇文章)
二.安装相关环境
由于使用到脚本告警媒介,本文中通过调用Python脚本触发告警,因此需要在Zabbix Server主机上安装pip以及相关模块。(这里Python使用Centos7自带的Python2.7.5)
安装pip
# yum install -y epel-release # yum install -y python-pip
安装requests模块
# pip install requests
三.配置告警媒介类型
Zabbix默认自带了2种报警媒介类型(Media Type),电子邮件以及短信,我们将修改电子邮件类型配置,并新建脚本类型和Webhook类型。希望通过脚本、Webhook告警媒介发送钉钉消息。
注:Webhook告警媒介是Zabbix 4.4的新特性
修改电子邮件告警媒介
点击【管理】-【报警媒介类型】-【Email】

修改Email配置,我这里用的是Outlook邮箱,具体SMTP服务器可以参考Outlook官网 SMTP设置。使用其他邮箱也可以去对应官网查询SMTP配置。

测试发送邮箱,点击【测试】

输入收件人邮箱

收到邮件

新增脚本告警媒介
新建Python脚本告警媒介,用户钉钉告警
点击【创建媒体类型】

进行配置
配置项 值 * 名称 Python脚本 类型 脚本 * 脚本名称 pythonScript.py 脚本参数(参数1) {ALERT.MESSAGE} 脚本参数(参数2) {ALERT.SENDTO} 脚本参数(参数3) {ALERT.SUBJECT} 
接下来新建Python脚本,Zabbix Server配置文件中可以配置告警脚本路径,默认为 /usr/lib/zabbix/alertscripts
# 查看告警脚本路径
# cat zabbix_server.conf | grep AlertScriptsPath
编写告警脚本
# cd /usr/lib/zabbix/alertscripts
# vim pythonScript.py
脚本内容
#!/usr/bin/env python
#coding:utf-8 import requests,json,sys,os,datetime # 钉钉机器人地址
webhook="https://oapi.dingtalk.com/robot/send?access_token=your_dingding_robot_access_token" # 对应{ALERT.SENDTO}, Zabbix告警媒介配置界面第2个参数
user=sys.argv[2] # 对应{ALERT.MESSAGE}, Zabbix告警媒介配置界面第1个参数
text=sys.argv[1]
data={
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
user
],
"isAtAll": False
}
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
给脚本可执行权限
# chmod uo+x /usr/lib/zabbix/alertscripts/pythonScript.py
测试脚本

钉钉收到消息

新增Webhook告警媒介
配置项 值 * 名称 Webhook 类型 Webhook 参数: (名称) 值 user {ALERT.SENDTO} subject {ALERT.SUBJECT} message {ALERT.MESSAGE} 脚本:
try {
Zabbix.Log(4, 'params= '+value); params = JSON.parse(value);
req = new CurlHttpRequest();
data = {};
result = {}; req.AddHeader('Content-Type: application/json'); data.msgtype = "text";
// 对应 message参数
data.text = {"content" : params.message};
// 对应 user参数
data.at = {"atMobiles": [params.user], "isAtAll": "false"}; // 钉钉机器人
resp = req.Post('https://oapi.dingtalk.com/robot/send?access_token=your_access_token',
JSON.stringify(data)
);
} catch (error) {
result = {};
} return JSON.stringify(result);

测试Webhook


四.为用户添加告警媒介
需要将新增的告警媒介添加给用户
点击【用户】-【告警媒介】

将上述步骤添加的告警媒介(Python脚本、Webhoob、Email),进行添加(收件人根据告警媒介类型填写邮箱或手机号),严重性也根据需要勾选。


五.配置动作
完成上述配置完成后,需要创建动作(Action),将触发器(Trigger)和告警媒介(Media Type)进行关联,一旦触发器触发,那么Zabbix会执行动作,再去执行告警媒介。
添加动作
点击【配置】-【动作】-【创建动作】

配置【动作】相关信息
配置项 值 * 名称 告警动作 新的触发条件 【触发器】【等于】【Template Disk Free Size: 磁盘剩余空间触发器】 操作步骤如下图:

群组选择 ->Linux servers
主机选择 -> Template Disk Free Size 模板(上一篇文章中定义的模板)
勾选触发器 -> 磁盘剩余空间触发器 (上一篇文章中创建的触发器)
勾选后点击【选择】

配置【操作】相关信息
点击【操作】

先配置以下信息
配置项 值 * 默认操作步骤持续时间 1h(保持默认) 默认标题 告警: {EVENT.NAME} 消息内容 【磁盘空间不足告警】
告警事件: {EVENT.DATE} {EVENT.TIME}
告警问题: {EVENT.NAME}
告警主机: {HOST.IP} {HOST.NAME}
告警级别: {EVENT.SEVERITY}
磁盘剩余:{ITEM.VALUE}上述配置表格【默认标题】和【消息内容】值中形如{EVENT.NAME}的内容是Zabbix中的宏(Marco),宏是一个变量,例如 {HOST.IP} 表示告警主机的IP地址,Zabbix自带的宏可以参考Zabbix 4.4自带宏
继续配置操作
点击【新的】
【操作类型】选择发送消息,【发送到用户】添加Admin

【仅送到】根据需要选择之前配置的告警媒介,本文选择Email和Python脚本(这里只能单选或全选,所以需要先选择一个,因此需要多次添加)

添加完成后点击【添加】

六.测试
向被监控主机拷贝或下载大文件,使其磁盘剩余空间低于触发器监控阈值,等待触发器触发问题,查看仪表盘、邮件等。
仪表盘

钉钉

邮件

七.参考文档
Zabbix-(四)邮件、钉钉告警通知的更多相关文章
- 基础架构之日志管理平台及钉钉&邮件告警通知
接上一篇,我们继续解释如何把ELK跟钉钉及发送邮件功能结合起来,让我们及时的了解重要日志并快速反馈. Sentinel 安装,项目介绍在https://github.com/sirensolution ...
- Zabbix通过与微信、钉钉整合实现实时告警
abbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信.钉钉作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警 ...
- kube-promethues监控告警详解(邮件、钉钉、微信、自研平台)
Alertmanager已经在前面Prometheus初体验(三)已经介绍过了.现在介绍一下在kube-promethues里面怎么修改alertmanager配置文件,以及怎么通过各种媒介发送信息. ...
- 使用python实现钉钉告警通知功能
前言:日常工作中告警通知是必不可少的,一般会使用邮件.钉钉.企业微信等,今天分享一下使用python实现钉钉告警 一. 钉钉机器人创建 登录钉钉客户端,创建一个群,把需要收到报警信息的人员都拉到这个群 ...
- Spring Cloud Admin健康检查 邮件、钉钉群通知
源码地址:https://github.com/muxiaonong/Spring-Cloud/tree/master/cloudadmin Admin 简介 官方文档:What is Spring ...
- zabbix的搭建及操作(4)实现邮件,钉钉,微信报警
实现邮件报警 网页版邮箱中开启 POP3/SMTP/IMAP 生成授权码并记录 Server端安装配置邮件服务器 1.Yum安装邮件服务器 yum -y install mailx dos2unix ...
- zabbix系列之九——添加钉钉告警
一.添加钉钉机器人 1. 2. 复制webhook后面脚本用到:https://oapi.dingtalk.com/robot/send?access_token=36e69dd50bbcc54b7b ...
- elk报警监控之sentinl 钉钉+邮件告警
注:我的elk sentinl版本都是6.5.1 前期知识 es的查询语法.es watcher使用方法. https://www.cnblogs.com/pilihaotian/p/5830754. ...
- zabbix 利用python脚本实现钉钉告警
Zabbix 利用python脚本实现钉钉告警 1.安装python3.6环境 2.创建python脚本 cd local/zabbix-4.0.3/share/zabbix/alertscripts ...
随机推荐
- IDA快捷键整理
空格键 反汇编窗口切换文本跟图形 ESC退到上一个操作地址 G搜索地址或者符号 N重命名 分号键 注释 ALT+M 添加标签 CTRL+M 列出所有标签 CTRL +S 二进制段的开始地址结束地址 C ...
- SQL Server Try Catch 异常捕捉
SQL Server Try Catch 异常捕捉 背景 今天遇到一个关于try catch 使用比较有意思的问题.如下一段代码: SELECT @@TRANCOUNT AS A BEGIN TRY ...
- Jdk14 都要出了,Jdk8 的时间处理姿势还不了解一下?
当前时间:2019年10月24日.距离 JDK 14 发布时间(2020年3月17日)还有多少天? // 距离JDK 14 发布还有多少天? LocalDate jdk14 = LocalDate.o ...
- java集合之Vector向量基础
Vector向量: vector类似动态数组,向量和数组类似,但是数组容量一旦确定不可更改,而向量的容量可变.向量只可以保存任何类型对象且容量不限制,数组对元素类型无限制但是容量有限. 适用场合:向量 ...
- 【Dubbo】Zookeeper+Dubbo项目demo搭建
一.Dubbo的注解配置 在Dubbo 2.6.3及以上版本提供支持. 1.@Service(全路径@org.apache.dubbo.config.annotation.Service) 配置服务提 ...
- Spring Boot入门(一):搭建Spring Boot项目
从本篇博客开始,我们开始进入Spring Boot的世界,它的出现使Spring的开发变得更加简洁,因此一经推出受到众多程序员的喜爱. 作为Spring Boot系列的第一篇博客,我们先来讲解下如何搭 ...
- 3M隔音耳罩拆分、清洗教程
简介 3M隔音耳罩用起来真爽,十分适合喜欢安静的人.再者,被动和别人同住(学校.厂里宿舍.公司宿舍).公共场合时使用,效果刚刚的.题外话:有些人的素质……%¥%(*¥*! 3M隔音耳罩平时戴着也没觉得 ...
- 七、springBoot 简单优雅是实现文件上传和下载
前言 好久没有更新spring Boot 这个项目了.最近看了一下docker 的知识,后期打算将spring boot 和docker 结合起来.刚好最近有一个上传文件的工作呢,刚好就想起这个脚手架 ...
- Mybatis总结之如何自动生成数据库表结构
一般情况下,用Mybatis的时候是先设计表结构再进行实体类以及映射文件编写的,特别是用代码生成器的时候. 但有时候不想用代码生成器,也不想定义表结构,那怎么办? 这个时候就会想到Hibernate, ...
- printf 格式输出代码大全
d,lx,ld,,lu,这几个都是输出32位的hd,hx,hu,这几个都是输出16位数据的,hhd,hhx,hhu,这几个都是输出8位的,lld,ll,llu,llx,这几个都是输出64位的, pri ...