场景一:使用企业微信机器人报警

图中的token是:在群组中添加机器人,机器人的webhook地址的key

  1. var Wechat = {
  2. token: null,
  3. to: null,
  4. message: null,
  5. parse_mode: null,
  6.  
  7. sendMessage: function() {
  8. var params = {
  9. msgtype: "text",
  10. chat_id: Wechat.to,
  11. text: {
  12. content:Wechat.message
  13. },
  14. disable_web_page_preview: true,
  15. disable_notification: false
  16. },
  17. data,
  18. response,
  19. request = new CurlHttpRequest(),
  20. url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=' + Wechat.token;
  21.  
  22. if (Wechat.parse_mode !== null) {
  23. params['parse_mode'] = Wechat.parse_mode;
  24. }
  25.  
  26. request.AddHeader('Content-Type: application/json');
  27. data = JSON.stringify(params);
  28.  
  29. // Remove replace() function if you want to see the exposed token in the log file.
  30. Zabbix.Log(4, '[Wechat Webhook] URL: ' + url.replace(Wechat.token, '<TOKEN>'));
  31. Zabbix.Log(4, '[Wechat Webhook] params: ' + data);
  32. response = request.Post(url, data);
  33. Zabbix.Log(4, '[Wechat Webhook] HTTP code: ' + request.Status());
  34. Zabbix.Log(4, '[Wechat Webhook] response: ' + response);
  35.  
  36. try {
  37. response = JSON.parse(response);
  38. }
  39. catch (error) {
  40. response = null;
  41. Zabbix.Log(4, '[Wechat Webhook] response parse error');
  42. }
  43.  
  44. if (request.Status() !== 200 || response.errcode !== 0 || response.errmsg !== 'ok') {
  45. if (typeof response.errmsg === 'string') {
  46. throw response.errmsg;
  47. }
  48. else {
  49. throw 'Unknown error. Check debug log for more information.'
  50. }
  51. }
  52. }
  53. }
  54.  
  55. try {
  56. var params = JSON.parse(value);
  57.  
  58. if (typeof params.Token === 'undefined') {
  59. throw 'Incorrect value is given for parameter "Token": parameter is missing';
  60. }
  61.  
  62. Wechat.token = params.Token;
  63.  
  64. if (['Markdown', 'HTML', 'MarkdownV2'].indexOf(params.ParseMode) !== -1) {
  65. Wechat.parse_mode = params.ParseMode;
  66. }
  67.  
  68. Wechat.to = params.To;
  69. Wechat.message = params.Subject + '\n' + params.Message;
  70. Wechat.sendMessage();
  71.  
  72. return 'OK';
  73. }
  74. catch (error) {
  75. Zabbix.Log(4, '[Wechat Webhook] notification failed: ' + error);
  76. throw 'Sending failed: ' + error + '.';
  77. }

场景二:电话报警

  1. var Wechat = {
  2. tel: null,
  3.  
  4. calluser: function (){
  5. var response,
  6. request = new CurlHttpRequest(),
  7. url = 'http://phone_server.com/TRinterfaceYun/CheckSystem.aspx?phone=' + Wechat.tel + '&guid=1234'; // 此处URL 为电话接口
  8.  
  9. Zabbix.Log(4, '[Wechat Webhook] URL: ' + url.replace(Wechat.tel, '<Tel>'));
  10. response = request.Post(url);
  11. Zabbix.Log(4, '[Wechat Webhook] HTTP code: ' + request.Status());
  12. Zabbix.Log(4, '[Wechat Webhook] response: ' + response);
  13.  
  14. try {
  15. response = JSON.parse(response);
  16. }
  17. catch (error) {
  18. response = null;
  19. Zabbix.Log(4, '[Wechat Webhook] response parse error');
  20. }
  21. }
  22.  
  23. }
  24.  
  25. try {
  26. var params = JSON.parse(value);
  27.  
  28. if (typeof params.Tel === 'undefined') {
  29. throw 'Incorrect value is given for parameter "Tel": parameter is missing';
  30. }
  31.  
  32. Wechat.tel = params.Tel;
  33. Wechat.calluser();
  34. return 'OK';
  35.  
  36. }
  37. catch (error) {
  38. Zabbix.Log(4, '[Wechat Webhook] notification failed: ' + error);
  39. throw 'Sending failed: ' + error + '.';
  40. }

Zabbix webhook 自定义报警媒介的更多相关文章

  1. zabbix 配合钉钉群机器人(webhook) 报警

    首先建钉钉群,添加一个自定义机器人拿到webhook zabbix添加一个报警媒介 搞一个shell脚本来启动Python脚本(直接用zabbix调Python脚本不行,不知道什么原因) vim di ...

  2. Centos7下zabbix部署(五)定义报警媒介-微信

    1.注册微信 注册过程参考地址:https://www.cnblogs.com/hanyifeng/p/5368102.html 主要需要以下一些信息 CorpID :     wwxxxxxxxxx ...

  3. (48)zabbix报警媒介:自定义脚本Custom alertscripts

    自定义脚本媒介.zabbix会将信息传递给脚本,接下来你在脚本里面随意处理,一共会传递三个参数,按顺序接受也就是$1,$2,$3了,为了方便记忆,一般分别给他们赋值到To\Subject\body 配 ...

  4. Centos7下zabbix部署(四)定义报警媒介-邮件

    1.安装发送邮件工具mailx [root@zabbix-server ~]# yum install mailx -y 2.自定义使用163邮箱为默认发件人(避免被当作垃圾邮件) set from= ...

  5. zabbix报警媒介------>微信报警

    zabbix报警媒介------>微信报警 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 欢迎加入高级运维工程师之路:598432640 微信在我们的生活中使用的比较频繁,有 ...

  6. zabbix监控-自定义监控与报警(二)

    标签: linux 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 1.web界面操用(host groups) 1.1创建一个组名字为damo 1.2配置文件解 ...

  7. sendmail 发送邮件 zabbix 自定义报警

    配合zabbix 触发脚本 达到自定义报警目的 #!/bin/bash # Created : 2015.12.08 # Updated : 2015.12.08 # Author : sanmuya ...

  8. zabbix配置报警媒介-用户-动作-邮件脚本触发mailx邮件报警

    2018-09-16更新,新版本zabbix不需要使用脚本发送邮件,在zabbix web界面直接配置就可以 配置邮件参数,测试发送邮件 确认安装相关服务,centos7默认安装 [root@VM_1 ...

  9. Zabbix 预警问题-预警对应的用户报警媒介收不到

    问题背景 公司现在有这种需求,需要我们对关键的预警发送到对应的项目组负责人,比如 保险项目组的服务器预警大于警告的预警发送到保险负责人的邮箱(也会发送给运维的,背锅逃不掉的). 进行创建一个 用户群组 ...

随机推荐

  1. 关于 CLAHE 的理解及实现

    CLAHE CLAHE 是一种非常有效的直方图均衡算法, 目前网上已经有很多文章进行了说明, 这里说一下自己的理解. CLAHE是怎么来的 直方图均衡是一种简单快速的图像增强方法, 其原理和实现过程以 ...

  2. OpenGL渲染管道,Shader,VAO&VBO&EBO

    OpenGL渲染管线 (也就是)OpenGL渲染一帧图形的流程 以下列举最简单的,渲染一个三角形的流程,你可以将它视为 精简版OpenGL渲染管线 更复杂的流程也仅仅就是:在此基础上的各个流程中 添加 ...

  3. 学习PHP中好玩的Gmagick图像操作扩展的使用

    在 PHP 的图像处理领域,要说最出名的 GD 库为什么好,那就是因为它不需要额外安装的别的什么图像处理工具,而且是随 PHP 源码一起发布的,只需要在安装 PHP 的时候添加上编译参数就可以了. G ...

  4. mysql中varchar类型和datetime类型字段进行比较

    我是在mysql5.7版本进行比较 表a的字段order_no和表iwebshop_tmp的字段order_no一样 需要更新iwebshop_member_order表的datetime类型expi ...

  5. php实现实例化类后自动进行错误以及异常处理(简易版)

    <?php class App { public function __construct() { /* * ini_set 设置配置项 * display_errors 是否在页面显示错误信息 ...

  6. 一生挚友redo log、binlog《死磕MySQL系列 二》

    系列文章 原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 一生挚友redo log.binlog<死磕MySQL系列 二> 前言 咔咔闲谈 上期根据 ...

  7. Java 知识点 列表

    * Java SE Java开发基础 Java异常处理 Java泛型与反射 Java IO基础 JUnit单元测试 Java多线程开发 Maven基础  https://www.yiibai.com/ ...

  8. python学习笔记(十三)-python对Excel进行读写修改操作

    日常工作中会遇到Excel的读写问题.我们可以使用xlwt 模块将数据写入Excel表格,使用xlrd 模块从Excel读取数据,使用xlutils模块和xlrd模块结合对Excel数据进行修改.下面 ...

  9. P5825-排列计数【EGF,NTT】

    正题 题目链接:https://www.luogu.com.cn/problem/P5825 题目大意 对于每个\(k\),求有多少个长度为\(n\)的排列有\(k\)个位置上升. \(1\leq n ...

  10. 推荐一款 Python 微服务框架 - Nameko

    1. 前言 大家好,我是安果! 考虑到 Python 性能及效率性,Python Web 端一直不温不火,JAVA 和 Golang 的微服务生态一直很繁荣,也被广泛用于企业级应用开发当中 ​本篇文章 ...