Linux----------zabbix监控-微信、钉钉告警

目录

  • 一,zabbix配置微信告警

    • 1.1 设置微信企业号

      • 1.2.1 设置微信通讯录
      • 1.2.2 创建新的应用
      • 1.2.3 应用权限管理
      • 1.2.4 收集微信相关信息
    • 1.3 微信脚本
      • 1.3.1 安装依赖
      • 1.3.2 下载安装脚本
      • 1.3.3 填写微信脚本参数
    • 1.4 添加zabbix示警媒介
    • 1.5 添加用户-示警媒介
    • 1.6 添加到动作
    • 1.7 自行测试
  • 二、钉钉告警
    • 2.1 配置钉钉
    • 2.2 编写告警脚本
    • 2.3 添加示警媒介
    • 2.4 添加用户-示警媒介
    • 2.5 添加到动作
    • 2.6 自行测试

一,zabbix配置微信告警

写先声明:本人完全python小白,脚本内容有许多看不懂,这都不影响接下来的操作,写这个就是为了复习记忆,也多谢官网推荐的,用于WeChat报警的python脚本,主要是图文教程,配合作者火星小刘的README和脚本,更容易学习.
https://blog.csdn.net/wenhs5479/article/details/90514159
注意事项等,作者火星小刘的README中有,下面开始教程正文

1.1 设置微信企业号

https://work.weixin.qq.com/?from=qyh_redirect

1.2.1 设置微信通讯录

  • 登录后台
  • 通讯录中添加部门和人员
  • 记录部门ID

1.2.2 创建新的应用

  • 创建应用
  • 设置应用接受人
  • 查看监控服务,记录应用ID

1.2.3 应用权限管理

1.2.4 收集微信相关信息

  • 1.记录应用ID (点击应用于小程序-监控服务)
  • 2.记录CorpID与Secret (点击我的企业-企业信息)
  • 3.记录子部门(运维部)ID (点击通讯录-运维部-设置)

1.3 微信脚本

1.3.1 安装依赖

(一)

yum -y install python-pip python-wheel python-setuptools
yum upgrade python-setuptools
pip install requests
pip install --upgrade requests

(二)

wget https://pypi.python.org/packages/c3/38/d95ddb6cc8558930600be088e174a2152261a1e0708a18bf91b5b8c90b22/requests-2.18.3.tar.gz
tar zxvf requests-2.18.3.tar.gz
cd requests-2.18.3
python setup.py build
python setup.py install

1.3.2 下载安装脚本

git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git
cp Zabbix-Alert-WeChat/wechat.py /etc/zabbix/alertscripts
chmod +x /usr/local/etc/scripts/wechat.py
chown zabbix.zabbix /usr/local/etc/scripts/wechat.py 

1.3.3 填写微信脚本参数

#!/usr/bin/python2.7
#_*_coding:utf-8 _*_
#auther:火星小刘(出自这位大佬的GitHub库,链接在开头)

import requests,sys,json
import urllib3
urllib3.disable_warnings()

reload(sys)
sys.setdefaultencoding('utf-8')

def GetTokenFromServer(Corpid,Secret):
    Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
    Data = {
        "corpid":Corpid,
        "corpsecret":Secret
    }
    r = requests.get(url=Url,params=Data,verify=False)
    print(r.json())
    if r.json()['errcode'] != 0:
        return False
    else:
        Token = r.json()['access_token']
        file = open('/tmp/zabbix_wechat_config.json', 'w')
        file.write(r.text)
        file.close()
        return Token

def SendMessage(User,Agentid,Subject,Content):
    try:
        file = open('/tmp/zabbix_wechat_config.json', 'r')
        Token = json.load(file)['access_token']
        file.close()
    except:
        Token = GetTokenFromServer(Corpid, Secret)

    n = 0
    Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
    Data = {
        "touser": User,          # 企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
        "totag": Tagid,          # 企业号中的标签id,群发使用(推荐)
        "toparty": Partyid,      # 企业号中的部门id,群发时使用。
        "msgtype": "text",       # 消息类型。
        "agentid": Agentid,      # 企业号中的应用id。
        "text": {
            "content": Subject + '\n' + Content
        },
        "safe": "0"
    }
    r = requests.post(url=Url,data=json.dumps(Data),verify=False)
    while r.json()['errcode'] != 0 and n < 4:
        n+=1
        Token = GetTokenFromServer(Corpid, Secret)
        if Token:
            Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
            r = requests.post(url=Url,data=json.dumps(Data),verify=False)
            print(r.json())

    return r.json()

if __name__ == '__main__':
    User = sys.argv[1]               # zabbix传过来的第一个参数{ALERT.SENDTO}
    Subject = str(sys.argv[2])       # zabbix传过来的第二个参数{ALERT.SUBJECT}
    Content = str(sys.argv[3])       # zabbix传过来的第三个参数{ALERT.MESSAGE}

    Corpid = "企业Id"         # CorpID是企业号的标识
    Secret = "在应用里面"      # Secret是管理组凭证密钥
    Tagid = "zabbix"         # 通讯录标签ID(这个没搞懂,随便写的通讯录标签名)
    Agentid = "自己修改"      # 应用ID
    Partyid = "2"            # 部门ID,如果是1,则是技术部,那么技术部下面的,都可以收到告警,显然不合适

    Status = SendMessage(User,Agentid,Subject,Content)
    print Status

1.4 添加zabbix示警媒介

1.5 添加用户-示警媒介

收件人为微信企业号通讯录内的用户账号

1.6 添加到动作

1.7 自行测试

二、钉钉告警

2.1 配置钉钉

  • 下载钉钉后创建群组
  • 添加机器人实现报警

2.2 编写告警脚本

#!/usr/bin/python
# -*- coding: utf-8 -*-

import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
#api_url后跟告警机器人的webhook
api_url = "上图中的webhook的链接"
def msg(text):
   json_text= {
    "msgtype": "text",
    "text": {
        "content": text
    },
    "at": {
        "atMobiles": [
            "手机号"    #@群里的一个人
        ],
        "isAtAll": False  #@所有人为True,
    }
   }
   print(requests.post(api_url,json.dumps(json_text),headers=headers).content)
if __name__ == '__main__':
   text = sys.argv[1]
   msg(text)

//赋予执行权限
chown zabbix.zabbix ding.py
chmod +x ding.py
  • 测试
[[email protected] scripts]# ./ding.py 这是测试
{"errcode":0,"errmsg":"ok"}
[[email protected] scripts]# ./ding.py 这是测试
{"errcode":0,"errmsg":"ok"}

2.3 添加示警媒介

2.4 添加用户-示警媒介

和上方微信告警一样,只需要修改通知介质

2.5 添加到动作

和上方微信告警一样,只需要修改固定那几个参数

2.6 自行测试

原文地址:https://www.cnblogs.com/wangchengshi/p/10925502.html

时间: 2024-07-31 16:40:01

Linux----------zabbix监控-微信、钉钉告警的相关文章

Zabbix 实现微信短信告警

Zabbix简介 Zabbix 近几年得到了各大互联网公司的认可,当然第一点归功与它强大的监控功能,第二点免费开源也得到了广大用户的青睐.Zabbix 能将操作系统中的绝大部分指标进行监控,比如(CPU 负荷,内存使用,网络状况,端口监视,日志监视等等等等指标!).监控指标的广度是一方面,它强大的功能特点也省去了很多的配置操作. Zabbix 功能特点: 自动发现服务器和网络设备 分布式监控网络,集中式管理(agent .server 分开) 监控指标模版丰富 可灵活地分配用户权限 系统各个指标

zabbix监控WEB页面及告警 实战

网站对一个公司来说非常重要,里边包含了公司的业务,介绍和订单等相关信息,网站的宕掉了对公司的影响非常重大,所以要很好的对网站的页面进行监控,zabbix提供了对web页面的监控,具体步骤如下. 一,配置web页面的检测: 1,选择一台能上外网的被监控主机,依次执行:配置---主机---zabbix server---web监测. 2,单击web场景---创建web场景. 3,在场景选项卡中添加名称,应用集.然后调到步骤选项卡来添加监控页面. 4,在步骤选项卡中单击添加按钮,依次添加名称,URL超

zabbix监控web页面,以及告警配置

背景: 今天研发线上的配置配错了,导致公司网站访问不了,结果又甩锅给我们运维,华丽地再次背锅.但是没有做web网页的监控也的确是我们的锅,没办法,含泪接下-- 为了不再次背锅,故把公司的线上网站全部做了监控.这里来说说在zabbix上做web页面监控的具体步骤. 注: 我这里的zabbix是3.2.1版本,中文配置.虽然和其他版本的页面可能不同,但是配置步骤应该是一样的. 这里的例子为监控百度首页. 配置web页面检测: 在zabbix上选择一台能上外网的主机,配置web检测场景. "配置&qu

Zabbix通过网易邮箱、企业微信、钉钉整合实现实时告警

Zabbix可以通过多种方式将告警信息发送到指定人,常用的报警方式有邮件.微信.钉钉等.本次博文主要介绍这三种报警方式. 一.配置网易邮箱实现报警 本篇博文采用网易邮箱的方式实现报警!操作如下: zabbix server需进行以下配置: [[email protected] ~]# yum -y install perl-Net-SSLeay perl-IO-Socket-SSL //安装所需依赖 [[email protected] ~]# wget http://caspian.dotco

Zabbix 配置钉钉脚本告警(4)

title: Zabbix 配置钉钉脚本告警(4) date: 2018-12-10 11:50:21 tags: Zabbix categories: Zabbix copyright: true --- Zabbix是一个非常强大的监控系统,是企业级的软件,来监控IT基础设施的可用性和性能.它是一个能够快速搭建起来的开源的监控系统,Zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位解决存在的各种问题,Zabbix系统几乎可用于任何系统的监控过

zabbix监控钉钉报警配置

下载golang编写的钉钉插件(附件中已上传,可直接下载): 修改zabbix server配置文件: vi /usr/local/zabbix/etc/zabbix_server.conf AlertScriptsPath=/usr/local/zabbix/etc/alertscripts 把下载好的golang插件上传至/usr/local/zabbix/etc/alertscripts目录下: cd /usr/local/zabbix/etc/alertscripts chmod +x 

zabbix使用钉钉告警

1.钉钉创建群 2.[[email protected] ~]# vim /etc/zabbix/zabbix_server.conf # 配置文件中查找”Alert”查看告警脚本存放路径 [[email protected] alertscripts]# vim token.sh#!/bin/bashto=$1subject=$2text=$3curl 'https://oapi.dingtalk.com/robot/send?access_token=b4d37016f622cc50f67e

pinpoint实现告警推送至钉钉和微信群

前言 在前面的文章中,我们学习了如何通过java实现将消息发送到钉钉.和将消息发送到微信群聊. 基于上述基础,我们今天来接入pinpoint的告警,发送到钉钉群. 实操前准备 开始之前,推荐阅读一下,官方的告警说明文档. 阅读官方文档后,我们实际的来操作一遍. 按照官方说明,首先需要创建对应的用户组和用户,但是我们这里打开有异常: 通过后台,pinpoint-web的日志可以发现,这是由于没有配置mysql表的原因. 步骤1-配置mysql表 首先,我们创建一个名为pinpoint的数据库. 然

通过钉钉群聊机器人推送zabbix告警

1.首先在zabbix服务端的alertscripts目录下新建一个dingding.sh脚本,内容如下: #!/bin/bash Content=$2 curl 'https://oapi.dingtalk.com/robot/send?access_token=XXXX' \ -H 'Content-Type: application/json' \ -d ' {"msgtype": "text", "text": { "conte