zabbix基于企业微信、钉钉群聊机器人实现自动化报警

在企业中,我们使用zabbix去进行监控,需要时刻关注应用服务的运行情况,这就少不了实时报警,而使用即时通讯软件报警相对就很方便。

监控环境准备
部署zabbix-server【监控端】
部署zabbix-agent【被监控端】
实现对web服务器监控【监控端】
zabbix 企业微信报警【监控端】

监控环境准备–>zabbix部署参考:Zabbix——企业监控系统搭建、配置详解、代理部署参考:zabbix可视化、监控模板配置、自定义监控参数、自动发现监控下设备、数据库监控、proxy分布式监控搭建配置… --> zabbix 报警【监控端】

1、Zabbix钉钉报警

安装钉钉–创建群聊–管理页面添加机器人–自定义机器人–机器人名称自定义–IP地址填写当前服务公网IP–规则可以是IP也可以是自定义关键词–

把webhook的地址记录下来

编写python报警监控脚本【CentOS自带Python】

[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts
[root@zabbix-server alertscripts]# vim dingding.py
#!/usr/bin/python# -*- coding: utf-8 -*-# Author: sxdswc999
import requests
import json
import sys
import osheaders = {'Content-Type': 'application/json;charset=utf-8'}
api_url = ""  #机器人的Webhook地址def msg(text):json_text= {"msgtype": "text","text": {"content": text},"at": {"atMobiles": [""    #手机号],"isAtAll": False}}print requests.post(api_url,json.dumps(json_text),headers=headers).contentif __name__ == '__main__':text = sys.argv[1]msg(text)[root@zabbix-server alertscripts]# chmod +x dingding.py安装python-pip和requests库
[root@zabbix-server alertscripts]# yum -y install epel-release[root@zabbix-server alertscripts]# yum -y install python-pip[root@zabbix-server alertscripts]# pip install requests

测试脚本是否可行

[root@zabbix-server alertscripts]# ./dingding.py 监控报警{"errcode":0,"errmsg":"ok"}

查看是否接收成功

创建媒介

将Admin用户关联到此媒介:



创建完成–添加关联监控项及动作,动作执行微信报警项(创建不成功的话可以往下看,微信报警中有接下来步骤)

2、基于企业微信实现自动化监控报警

监控环境准备–>zabbix部署参考:Zabbix——企业监控系统搭建、配置详解、代理部署参考:zabbix可视化、监控模板配置、自定义监控参数、自动发现监控下设备、数据库监控、proxy分布式监控搭建配置… --> zabbix 微信报警【监控端】

手机APP下载企业微信–创建企业–电脑端登录后台–登陆后–应用管理–创建应用–自定义机器人–记录(AgentId、Secret)–API文档–第三方应用–工具与资源–接口测试(填入信息,200OK表示通信成功)

应用:报警机器人AgentID 1000002
Secret:2QvlfpUxh4k-JeIuxVNmkh2N7ijfkCs1lzb4TkgrQ
企业 CorpID: wwd5348195e1cd09
部门id: 1

编写python报警监控脚本
需要修改脚本中的四个信息:

self.__corpid = 'wwd5348195e1cd09' //公司的corpid
self.__secret = '2QvlfpUxh4k-JeIuxVNmkh2N7ijfkCs1lzb4TkgrQ' //应用的secret
'toparty':1, //部门id
'agentid':"1000002", //应用id
[root@zabbix-server ~]# vim /usr/lib/zabbix/alertscripts/wechat.py
#!/usr/bin/env python# -*- coding: utf-8 -*-import urllib,urllib2,json
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )class WeChat(object):__token_id = ''# init attributedef __init__(self,url):self.__url = url.rstrip('/')self.__corpid = 'wwd5348195e1cd09'self.__secret = '3gsEC6Mv3vQmdG5MOJBF65U0KzT-1v2GKQhr479uso'# Get TokenIDdef authID(self):params = {'corpid':self.__corpid, 'corpsecret':self.__secret}data = urllib.urlencode(params)content = self.getToken(data)try:self.__token_id = content['access_token']# print content['access_token']except KeyError:raise KeyError# Establish a connectiondef getToken(self,data,url_prefix='/'):url = self.__url + url_prefix + 'gettoken?'try:response = urllib2.Request(url + data)except KeyError:raise KeyErrorresult = urllib2.urlopen(response)content = json.loads(result.read())return content# Get sendmessage urldef postData(self,data,url_prefix='/'):url = self.__url + url_prefix + 'message/send?access_token=%s' % self.__token_idrequest = urllib2.Request(url,data)try:result = urllib2.urlopen(request)except urllib2.HTTPError as e:if hasattr(e,'reason'):print 'reason',e.reasonelif hasattr(e,'code'):print 'code',e.codereturn 0else:content = json.loads(result.read())result.close()return content# send messagedef sendMessage(self,touser,message):self.authID()data = json.dumps({'touser':touser,'toparty':1,'msgtype':"text",'agentid':"1000002",'text':{'content':message},'safe':"0"},ensure_ascii=False)response = self.postData(data)print response
if __name__ == '__main__':a = WeChat('https://qyapi.weixin.qq.com/cgi-bin')a.sendMessage(sys.argv[1],sys.argv[3]

zabbix 创建告警媒介–报警媒介–创建脚本媒介–填入脚本文件

登陆ip/zabbix 添加告警用户
创建用户组:web-group,包含vc等用户创建用户:vc等用户,并关联到微信告警希望的结果是:发微信到组web-group,组中的用户vc等人都能收到

设置用户组web-group对主机群组webserver拥有读写(发送消息)权限

为用户 关联告警媒介

Zabbix 添加报警动作



如果希望中文显示自行修改模板告警主机:

告警主机: {HOST.NAME}
告警地址: {HOST.IP}
监控项目: {ITEM.NAME}
告警等级: {TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警时间: {EVENT.DATE} {EVENT.TIME}

测试微信报警
被监控端操作
[root@web1 ~]# systemctl stop httpd

企业微信收到报警

Linux Zabbix——企业监控基于钉钉、企业微信实现自动化报警相关推荐

  1. java企业考勤,基于jsp的企业员工考勤-JavaEE实现企业员工考勤 - java项目源码

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的企业员工考勤, 该项目可用各类java课程设计大作业中, 企业员工考勤的系统架构分为前后台两部分, 最终实现在线上 ...

  2. linux 车载视频监控,基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文.docx...

    基于Linux平台车载视频监控系统研发-计算机科学与技术专业论文 目录 HYPERLINK \l "_bookmark0" 第一章 绪论1 HYPERLINK \l "_ ...

  3. 关于Linux常用系统性能监控命令(转自微信公众号: linux爱好者)

    监控CPU使用率 使用下面的命令: root@ThinkPad-X230s:~# gnome-system-monitor 将会出现图形化工具GNOME System Monitor 监控CPU调度程 ...

  4. 【zabbix】自定义监控、邮件报警、企业微信报警、钉钉报警(详细)

    环境说明 centos 7 版本 zabbix 6.0 版本 主机名 IP地址 备注 zabbix 192.168.10.150 服务端,同时自我监控 zabbix-2 192.168.10.151 ...

  5. 安装kube-prometheus项目:k8s部署prometheus、监控k8s核心组件、添加告警(微信、钉钉、企业微信)、进行数据持久化

    概述 很多地方提到Prometheus Operator是kubernetes集群监控的终极解决方案,但是目前Prometheus Operator已经不包含完整功能,完整的解决方案已经变为kube- ...

  6. zabbix配置步骤、操作及使用个人邮箱、企业微信、钉钉报警的配置

    一.监控端配置 步骤: 1.去官网下载包,从而有zabbix.repo,更新yum源 2.yum安装zabbix-server-mysql zabbix-web-mysql zabbix-agent ...

  7. Prometheus监控(三)—— 钉钉和企业微信告警

    一.prometheus 实现钉钉和企业微信告警 基础流程 1.1 钉钉通知 altermanager基础设置可以参照: https://editor.csdn.net/md/?articleId=1 ...

  8. 五分钟实现Zabbix电话、短信、邮件、钉钉、飞书、企业微信等机器人报警

    Zabbix是现在企业用的比较多的开源监控系统,Zabbix电话短信报警更是运维不可缺少的报警渠道,假如半夜正在睡觉服务器异常了,这时候电话报警就非常必要. Spug推送助手针对常见的报警系统,内置好 ...

  9. Linux Zabbix——zabbix可视化、监控模板配置、自定义监控参数、自动发现监控下设备、数据库监控、企业proxy分布式监控搭建配置...

    Zabbix可视化.监控模板配置.自定义监控参数.自动发现监控下设备.数据库监控.proxy分布式监控搭建配置- 文章篇幅较长,可以选择目录查看感兴趣的模块. 1.Zabbix可视化 1. 简介 企业 ...

最新文章

  1. 运动检测(前景检测)之——ViBe
  2. IOS学习笔记之二十二(文件io)
  3. *【HDU - 4272 】LianLianKan (dfs 或 状压dp,贪心不行)
  4. keyshot怎么让物体发光_户外发光字的防水措施怎么做,不亮了怎么修。
  5. 100m网速测试软件,网速测试哦(100兆宽带wifi最佳设置)
  6. python数据转换成pdf_用python把ipynb文件转换成pdf文件过程详解
  7. git从克隆项目到本地分支和远程分支关联
  8. 构造函数创造对象--创建四大天王的对象
  9. 跨境电商一件代发和专线小包是什么意思?有什么区别?
  10. ++k与k++区别 和双目运算符结合
  11. idea 创建springboot项目的资源文件application.yml的图标显示不正常
  12. Mac配置LNMP开发环境全记录 一看就懂系列
  13. js里如何将字符串转成正则表达式
  14. NFT引发的“十大行业变局”
  15. python制作小帆船保姆级教学
  16. Vue3 的 ref 和 reactive 问题
  17. Java实现从Excel文件转换成XML文件(一)
  18. linux 解锁用户被锁
  19. html input光标位置,js控制input框内光标位置(setSelectionRange详解)
  20. codemirror 常见操作

热门文章

  1. oracle数据库连接失败1017,升级12C注意事项: 连接失败 ORA-28040 ORA-1017
  2. 智能语音识别_智能语音识别系统_小程序 智能语音识别 - 云+社区 - 腾讯云
  3. 关于数据库方面的书籍
  4. python爬虫程序下载_Python爬虫之多线程下载程序类电子书
  5. Arduino PAJ7620手势识别传感器 实验
  6. OpenCV常用操作
  7. [4G5G专题-10]:前传接口 eCPRI协议的那些事
  8. 用Python做数据分析的5个常用模型(内附资料)
  9. Excel读取通达信1分钟数据
  10. matlab 全校授权 中国,2019年上半年中国22所学校获IB授权认证