一:前期准备

  1.1:企业号注册        https://qy.weixin.qq.com/

     微信调用接口说明     http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5

     微信企业号接口调试地址  http://qydev.weixin.qq.com/debug

  1.2:建立应用:
 

  1.3:获取企业ID

  1.4:获取Secret

  1.5:获取token

       https://work.weixin.qq.com/api/devtools/devtool.php

  1.6:通过命令行获取:(此处有问题可忽略)

  1. /usr/bin/curl -s -G https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=xxxx&corpsecret=xxxx |awk -F\":'{print $4}'|awk -F\" '{print $2}'

  

二:安装python3

  2.1:安装openssl-devel依赖,让python支持https

  1. yum install -y openssl-devel
  2.  
  3. yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc gcc-c++

  

  2.2:下载并安装python3

     wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz

    解压:

     tar -zxvf Python-3.7.2.tgz

    安装:

    cp -r Python-3.7.2 /usr/local/python3

    cd /usr/local/python3

    ./configure --prefix=/usr/local/python3

    运行结果

  1. creating Modules/Setup
  2. creating Modules/Setup.local
  3. creating Makefile
  4.  
  5. If you want a release build with all stable optimizations active (PGO, etc),
  6. please run ./configure --enable-optimizations

    

    make && make install

  1. Looking in links: /tmp/tmp75uuoqa7
  2. Collecting setuptools
  3. Collecting pip
  4. Installing collected packages: setuptools, pip
  5. Successfully installed pip-18.1 setuptools-40.6.2

  

  2.3:创建python3的软链接

    ln -s /usr/local/python3/bin/python3 /usr/bin/python3

    测试:

    cd /

    python -V

    python3 -V

  1. [root@zabbix /]# python -V
  2. Python 2.7.5
  3. [root@zabbix /]# python3 -V
  4. Python 3.7.2
  1. [root@zabbix /]# cd /usr/local/python3/
  2. [root@zabbix python3]# ll
  3. 总用量 0
  4. drwxr-xr-x 2 root root 295 2 14 11:13 bin
  5. drwxr-xr-x 3 root root 24 2 14 11:13 include
  6. drwxr-xr-x 4 root root 63 2 14 11:13 lib
  7. drwxr-xr-x 3 root root 17 2 14 11:13 share
  8. [root@zabbix python3]# cd bin
  9. [root@zabbix bin]# ll
  10. 总用量 27336
  11. lrwxrwxrwx 1 root root 8 2 14 11:13 2to3 -> 2to3-3.7
  12. -rwxr-xr-x 1 root root 109 2 14 11:13 2to3-3.7
  13. -rwxr-xr-x 1 root root 250 2 14 11:13 easy_install-3.7
  14. lrwxrwxrwx 1 root root 7 2 14 11:13 idle3 -> idle3.7
  15. -rwxr-xr-x 1 root root 107 2 14 11:13 idle3.7
  16. -rwxr-xr-x 1 root root 232 2 14 11:13 pip3
  17. -rwxr-xr-x 1 root root 232 2 14 11:13 pip3.7
  18. lrwxrwxrwx 1 root root 8 2 14 11:13 pydoc3 -> pydoc3.7
  19. -rwxr-xr-x 1 root root 92 2 14 11:13 pydoc3.7
  20. lrwxrwxrwx 1 root root 9 2 14 11:13 python3 -> python3.7
  21. -rwxr-xr-x 2 root root 13979384 2 14 11:12 python3.7
  22. lrwxrwxrwx 1 root root 17 2 14 11:13 python3.7-config -> python3.7m-config
  23. -rwxr-xr-x 2 root root 13979384 2 14 11:12 python3.7m
  24. -rwxr-xr-x 1 root root 3105 2 14 11:13 python3.7m-config
  25. lrwxrwxrwx 1 root root 16 2 14 11:13 python3-config -> python3.7-config
  26. lrwxrwxrwx 1 root root 10 2 14 11:13 pyvenv -> pyvenv-3.7
  27. -rwxr-xr-x 1 root root 449 2 14 11:13 pyvenv-3.7
  28. [root@zabbix bin]#

  

  2.4:安装之后脚本要用到的python库

       /usr/local/python3/bin/pip3 install requests

  1. [root@zabbix zm]# /usr/local/python3/bin/pip3 install requests
  2. Collecting requests
  3. Downloading https://files.pythonhosted.org/packages/7d/e3/20f3d364d6c8e5d2353c72a67778eb189176f08e873c9900e10c0287b84b/requests-2.21.0-py2.py3-none-any.whl (57kB)
  4. 100% |████████████████████████████████| 61kB 238kB/s
  5. Collecting idna<2.9,>=2.5 (from requests)
  6. Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
  7. 100% |████████████████████████████████| 61kB 16.9MB/s
  8. Collecting chardet<3.1.0,>=3.0.2 (from requests)
  9. Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
  10. 100% |████████████████████████████████| 143kB 734kB/s
  11. Collecting urllib3<1.25,>=1.21.1 (from requests)
  12. Downloading https://files.pythonhosted.org/packages/62/00/ee1d7de624db8ba7090d1226aebefab96a2c71cd5cfa7629d6ad3f61b79e/urllib3-1.24.1-py2.py3-none-any.whl (118kB)
  13. 100% |████████████████████████████████| 122kB 16.4MB/s
  14. Collecting certifi>=2017.4.17 (from requests)
  15. Downloading https://files.pythonhosted.org/packages/9f/e0/accfc1b56b57e9750eba272e24c4dddeac86852c2bebd1236674d7887e8a/certifi-2018.11.29-py2.py3-none-any.whl (154kB)
  16. 100% |████████████████████████████████| 163kB 11.0MB/s
  17. Installing collected packages: idna, chardet, urllib3, certifi, requests
  18. Successfully installed certifi-2018.11.29 chardet-3.0.4 idna-2.8 requests-2.21.0 urllib3-1.24.1
  19. You are using pip version 18.1, however version 19.0.2 is available.
  20. You should consider upgrading via the 'pip install --upgrade pip' command.
  21. [root@zabbix zm]# pip install --upgrade pip
  22. Collecting pip
  23. Downloading https://files.pythonhosted.org/packages/d7/41/34dd96bd33958e52cb4da2f1bf0818e396514fd4f4725a79199564cd0c20/pip-19.0.2-py2.py3-none-any.whl (1.4MB)
  24. 100% |████████████████████████████████| 1.4MB 283kB/s
  25. Installing collected packages: pip
  26. Found existing installation: pip 18.1
  27. Uninstalling pip-18.1:
  28. Successfully uninstalled pip-18.1
  29. Successfully installed pip-19.0.2
  30. [root@zabbix zm]# pip -V
  31. pip 19.0.2 from /usr/lib/python2.7/site-packages/pip (python 2.7)

  有报错:

  1. You are using pip version 18.1, however version 19.0.2 is available.
  2. You should consider upgrading via the 'pip install --upgrade pip' command.

  执行:

   pip install --upgrade pip

   pip3 install --upgrade pip

三:编辑zabbix报警脚本:

  3.1:查看zabbix配置文件:

      vim /etc/zabbix/zabbix_server.conf

      查找如下内容:

      AlertScriptsPath=/usr/lib/zabbix/alertscripts

    进入zabbix脚本目录:

     cd /usr/lib/zabbix/alertscripts/

  3.2:新建zabbix脚本文件:

       vim sendweixin.py

  1. #!/usr/local/python3/bin/python3
  2. # -*- coding:utf-8 -*-
  3. import requests
  4. import json
  5. import sys
  6.  
  7. # 企业号及应用相关信息
  8. corp_id = 'xxxxxxx'
  9. corp_secret = 'xxxxxxx'
  10. agent_id = xxxxxx
  11. # 存放access_token文件路径
  12. file_path = '/tmp/access_token.log'
  13.  
  14. def get_access_token_from_file():
  15. try:
  16. f = open(file_path,'r+')
  17. this_access_token = f.read()
  18. print('get success %s' % this_access_token)
  19. f.close()
  20. return this_access_token
  21. except Exception as e:
  22. print(e)
  23.  
  24. # 获取token函数,文本里记录的token失效时调用
  25. def get_access_token():
  26. get_token_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s' % (corp_id, corp_secret)
  27. print(get_token_url)
  28. r = requests.get(get_token_url)
  29. request_json = r.json()
  30. this_access_token = request_json['access_token']
  31. print(this_access_token)
  32. r.close()
  33. # 把获取到的access_token写入文本
  34. try:
  35. f = open(file_path,'w+')
  36. f.write(this_access_token)
  37. f.close()
  38. except Exception as e:
  39. print(e)
  40.  
  41. # 返回获取到的access_token值
  42. return this_access_token
  43.  
  44. # snedMessage
  45. # 死循环,直到消息成功发送
  46. flag = True
  47. while(flag):
  48. # 从文本获取access_token
  49. access_token = get_access_token_from_file()
  50. try:
  51. to_user = '@all'
  52. message = sys.argv[3]
  53. send_message_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' % access_token
  54. print(send_message_url)
  55. message_params = {
  56. "touser":to_user,
  57. "msgtype":"text",
  58. "agentid":agent_id,
  59. "text":{
  60. "content" : message
  61. },
  62. "safe":0
  63. }
  64. r = requests.post(send_message_url, data=json.dumps(message_params))
  65. print('post success %s ' % r.text)
  66. # 判断是否发送成功,如不成功则跑出异常,让其执行异常处理里的函数
  67. request_json = r.json()
  68. errmsg = request_json['errmsg']
  69. if errmsg != 'ok': raise
  70. # 消息成功发送,停止死循环
  71. flag = False
  72. except Exception as e:
  73. print(e)
  74. access_token = get_access_token()

  

还未验证成功!!!

感谢:

微信:

http://www.ttlsa.com/zabbix/use-wechat-send-zabbix-msg/

https://www.cnblogs.com/lemon-le/p/7204944.html

https://www.cnblogs.com/kumarhua/p/7645399.html

python:

https://www.cnblogs.com/xiaoerjun/p/9837029.html

https://www.cnblogs.com/JahanGu/p/7452527.html

https://www.cnblogs.com/dongml/p/8719421.html

Zabbix4.0报警配置-企业微信报警的更多相关文章

  1. Prometheus(五):Prometheus+Alertmanager 配置企业微信报警

    此处默认已安装Prometheus服务,服务地址:192.168.56.200  一.设置企业微信 1.1.企业微信注册(已有企业微信账号请跳过) 企业微信注册地址:https://work.weix ...

  2. Zabbix 3.0 配置企业微信报警(注册---测试)

    一.申请企业微信 1.登录企业微信官网,点击企业注册 二.配置企业微信 1.邀请管理员使用企业微信,如果有多个人直接添加新成员 2.管理员收到邀请,下载手机版企业微信,使用微信号登陆即可 3.创建应用 ...

  3. zabbix配置企业微信报警

    +++++++++++++++++++++++++++++++++++++++++ 1. 工作中最长使用的就是微信,普及,开源,而且免费!!! 2. 在企业微信中要记录的值: · 部门id · 企业i ...

  4. Zabbix 3.0 配置企业微信报警(配置zabbix-web)

    一.添加报警媒体类型 Name:自定义 Type:选择script Scripts name:填写脚本名称 Script parameters:脚本参数 --corpid=XXX --corpsecr ...

  5. Zabbix4.2.0使用Python连接企业微信报警

    目录 1. 配置企业微信 2. 脚本配置 2.1 安装python依赖的库 2.2 编写脚本 2. 搭建FTP 3. 配置Zabbix监控FTP 3.1 添加FTP模板 3.2 添加报警媒介 3.3 ...

  6. Nagios通过企业微信报警

    主要分两部分进行: 注册企业微信,自建应用,获取与发送消息相关的信息: 编写调用微信API脚本(bash),配置Nagios微信报警: 一.企业微信 1.注册企业微信:https://work.wei ...

  7. 分布式监控系统Zabbix-3.0.3-新版微信报警(企业微信取代企业号)

    一般来说,Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是现在越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人 ...

  8. 配置zabbix通过微信报警企业微信报警

    如今势态: 报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,QQ报警,微信报警等等. 电话报警:一般都是使用别的平台的工具,平台给你提供一个接口供你使用,大多数为限量收费款 短信报警 ...

  9. Prometheus 企业微信报警/inhibit抑制 /静默(二)

    创建企业微信应用 注册企业微信:访问https://work.weixin.qq.com/,注册企业,随便填,不需要认证 创建应用 创建告警配置 vim /usr/local/prometheus-2 ...

随机推荐

  1. 新装Windows Server 2008 r2无法连接有线网络

    新装的Windows Server 2008 r2没有网卡驱动,所以没有网络适配器. 首先,我在相同的型号电脑上查到这个主板的网卡驱动安装的是Intel(R) Ethernet Coinnection ...

  2. input光标大小

    最近在做项目忘记密码页面时,input光标大小需要统一.同时也需要兼容ie8浏览器. 总结如下: IE:不管该行有没有文字,光标高度与font-size一致. FF:该行有文字时,光标高度与font- ...

  3. WebForm母版页

    母版页:可以把界面的部分代码进行重用 添加新项-母版页 在母版页中界面代码不要写在 <asp:ContentPlaceHolder ID="head" runat=" ...

  4. VSCode 打开文件tab键空格数量异常问题

    [1]现象与原因 现象:用Notepad++打开文件,tab键占4个空格键.但是,用VSCode打开,tab键缺变成了3个空格键. 原因:因为VSCode默认启用了根据文件类型自动设置tabsize的 ...

  5. win10安装JDK

    1.下载 首先,在官网下载 JDK:Oracle 官网 如上图所示,在 Oracle 官网下载 JDK,有一点需要注意,那就是在咱们下载合适的 JDK 之前,需要先点击“标记1”所在的按钮,选择接受. ...

  6. C#计算重重字符串,出现的次数

    int bac = System.Text.RegularExpressions.Regex.Matches(“字符串”, @"要计算的").Count;        //字符串 ...

  7. jw player 配置参数

    Loading the player … //player所在div //具体配置参数 jwplayer(“container”).setup({//通过js调用播放器并安装到指定容器(contain ...

  8. kubernetes1.5新特性(二):支持Photon卷插件

    在Kubernetes中卷的作用在于提供给POD持久化存储,这些持久化存储可以挂载到POD中的容器上,进而给容器提供持久化存储. 从图中可以看到结构体PodSpec有个属性是Volumes,通过这个V ...

  9. 连接redis错误:ERR Client sent AUTH, but no password is set

    问题原因:没有设置redis的密码 解决:命令行进入Redis的文件夹: D:\Redis-x64-3.2.100>redis-cli.exe 查看是否设置了密码: 127.0.0.1:6379 ...

  10. php 根据日期获取星座

    根据日期获取星座 /* * * 获取星座 * 星座是按阳历来计算的 * $month 阳历月份 * $day 阳历日期 * */ public static function get_xingzuo( ...