zabbix-钉钉报警媒介
(1)第三方报警平台(钉钉)
先指定要发送的群,在群里创建机器人
添加机器人
可以参考 “说明文档”
创建测试文档
vim ceshi.sh
curl 'https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51' \ #添加自己的webhook
-H 'Content-Type: application/json' \
-d '{"msgtype": "text",
"text": {
"content": "告警"
}
}'
然后执行测试,如果成功会在钉钉上发送消息
(2)查看默认脚本存放位置
命令:cat /etc/zabbix/zabbix_server.conf|grep AlertScriptsPath
命令:cd /usr/lib/zabbix/alertscripts #进入默认脚本目录
注意:这次脚本是用python写的所以需要配置python环境才行
命令:yum -y install python-pip #安装python
命令:pip install requests #安装依赖包
注意:如果安装失败,请配置阿里云yum源
命令:mkdir ~/.pip #创建阿里云pip
命令:vim /root/.pip/pip.conf #写入下以内容
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
看见这些说明安装成功,然后开始写脚本
命令:vim /usr/lib/zabbix/alertscripts/dingding.py #内容如下
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=a462c4d7c2e095d182721c352b77cae4bc76ce4903efe876a08386668e451c51"
user=sys.argv[1]
text=sys.argv[3]
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)
if os.path.exists("/usr/local/zabbix/logs/dingding.log"):
f=open("/usr/local/zabbix/logs/dingding.log","a+")
else:
f=open("/usr/local/zabbix/logs/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"发送成功"+"\n"+str(text))
f.close()
else:
f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + "\n" + str(text))
f.close()
命令:chown zabbix.zabbix dingding.py #添加权限
命令:mkdir -p /usr/local/zabbix/logs #添加消息文件
命令:touch /usr/local/zabbix/logs/dingding.log #添加消息文档
命令:chown -R zabbix.zabbix /usr/local/zabbix/logs/dingding.log #给消息文档添加权限
命令:chown -R zabbix.zabbix /usr/local/zabbix/logs #给消息文件添加权限
然后在测试一下,是不是在钉钉发送消息
命令:./dingding.py test 185xxxxxxxx "这个条测试信息,忽略"
注意:这个号码意思是你发送的群里有这个号码,引号里的内容是在钉钉的关键字里设置的
(3)在zabbix网页里设置
三个参数
创建报警媒介. 三个参数分别是:ALERT.SENDTO ALERT.SUBJECT ALERT.MESSAGE
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
接下来配置动作
点击配置------>动作
{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
下图表示触发5次动作,每隔120秒触发一次,告警发给 admin 用户,用钉钉媒介发送.
恢复参数
{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}
其他默认
测试将虚拟机关机一下,钉钉上弹出警告,ok完成
我要这天再遮不住我眼,要这地再埋不了我心。要这天下众生都明白我意,要那诸佛都烟消云散!
zabbix-钉钉报警媒介的更多相关文章
- Zabbix webhook 自定义报警媒介
场景一:使用企业微信机器人报警 图中的token是:在群组中添加机器人,机器人的webhook地址的key var Wechat = { token: null, to: null, message: ...
- zabbix 配合钉钉群机器人(webhook) 报警
首先建钉钉群,添加一个自定义机器人拿到webhook zabbix添加一个报警媒介 搞一个shell脚本来启动Python脚本(直接用zabbix调Python脚本不行,不知道什么原因) vim di ...
- zabbix监控钉钉报警
1. bash脚本 #!/bin/bash to=$1 subject=$2 text=$3 #此处的 xxxxx 就是刚刚复制存留的 api 接口地址. curl -i -X POST \ 'htt ...
- Centos7下zabbix部署(五)定义报警媒介-微信
1.注册微信 注册过程参考地址:https://www.cnblogs.com/hanyifeng/p/5368102.html 主要需要以下一些信息 CorpID : wwxxxxxxxxx ...
- 钉钉机器人zabbix报警
首先在钉钉群聊里添加一个自定义的机器人 并复制webhook的内容 https://oapi.dingtalk.com/robot/send?access_token=37e23308d1b84eb4 ...
- zabbix利用python脚本发送钉钉报警
#!/usr/bin/python # -*- coding: utf-8 -*- import requests import json import sys import os headers = ...
- (26)zabbix脚本报警介质自定义(钉钉)
zabbix机器人告警配置 首先在钉钉中创建一个群然后设置群机器人添加自定义机器人(webhook...) 添加后复制其中的webhook地址到报警脚本dingding.py中的webhook=... ...
- Zabbix钉钉小机器人报警
1.下载钉钉所需要的脚本golang-zabbix-robot-64,浏览器访问https://www.appgao.com/files/192.html: 图一 脚本下载 2.将脚本路径添加到 ...
- python之钉钉机器人zabbix报警
转自:https://blog.51cto.com/m51cto/2051945 首先在钉钉群聊里添加一个自定义的机器人 并复制webhook的内容 https://oapi.dingtalk.com ...
随机推荐
- python 正则表达式匹配IP地址
一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从tex ...
- SpringBoot第二十篇:初识ActiveMQ
本文是作者之前写的关于 ActiveMQ 的一篇文章.此处为了保证该系列文章的完整性,故此处重新引入. 一.消息中间件的介绍 介绍 消息队列 是指利用 高效可靠 的 消息传递机制 进行与平台无关的 数 ...
- ping不通服务器的解决方法
参考腾讯云的解决办法: https://cloud.tencent.com/document/product/213/14639#CheckOSSetting 我的服务器是aws的, 解决方法大同小异 ...
- python笔记 利用python 自动生成条形码 二维码
1. ean13标准条形码 from pystrich.ean13 import EAN13Encoder encode = EAN13Encoder(') encode.save('d:/barco ...
- vue表单验证不通过,依然能执行点击事件里面的代码?
遇到的问题:表单提交的时候,写了rules,明明验证不通过依然执行了点击事件里面的代码. 这个验证有什么用? 后来 我看elementUI组件才发现,我漏写了几行代码. methods里面这样写 完美 ...
- First Step in luogu.
2019-11-21 21:58:32 在洛谷正式迈出第一步!!
- Sitecore性化 - 您需要了解的4件事
Sitecore非常强大,是一个数字体验平台.它可以帮助您取悦并留住客户.它可以帮助您衡量和评估广告系列.它使你成为一个更好的营销人员.它可以帮助您获得结果! 它结合了易于使用的网站内容管理系统和数字 ...
- 2019-11-29-WPF-测试触摸设备发送触摸按下和抬起不成对
原文:2019-11-29-WPF-测试触摸设备发送触摸按下和抬起不成对 title author date CreateTime categories WPF 测试触摸设备发送触摸按下和抬起不成对 ...
- SqlServer数据库分区分表实例分享(有详细代码和解释)
数据库单表数据量太大可能会导致数据库的查询速度大大下降(感觉都是千万级以上的数据表了),可以采取分区分表将大表分为小表解决(当然这只是其中一种方法),比如数据按月.按年分表,最后可以使用视图将小表重新 ...
- System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false
多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,这时如果想要访问窗口的控件,发现无法对其控制. 这时可将窗口构造函数中的CheckForIllegalCrossThreadCalls设置为f ...