• Zabbix--03 邮件报警、微信报警


    一、 邮件报警

    1.定义发件人

    2.定义收件人

    3.优化告警信息

    定制报警内容:
    https://www.zabbix.com/documentation/4.0/zh/manual/appendix/macros/supported_by_location
    参考博客

    https://www.cnblogs.com/bixiaoyu/p/7302541.html
    

    1.操作位置
    配置--动作--选中--操作--恢复操作

    2.优化告警信息
    发送警告标题:
    ===============================================================
    故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
    ===============================================================
    
    发送警告消息内容:
    ===============================================================
    告警主机:{HOSTNAME1}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID} 
    ===============================================================
    
    
    恢复标题:
    ===============================================================
    恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
    ===============================================================
    
    
    恢复信息:
    ===============================================================
    告警主机:{HOSTNAME1}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}
    ===============================================================
    
    

    二、 微信报警

    1.查看配置文件里的脚本目录路径

    [root@m01 ~]# grep "^AlertScriptsPath" /etc/zabbix/zabbix_server.conf
    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    

    2.将weixin.py放在zabbix特定目录

    [root@m01 /usr/lib/zabbix/alertscripts]# ll
    总用量 4
    -rwxr-xr-x 1 root root 1344 8月   7 21:58 weixin.py
    

    3.配置发信人

    4.配置收信人

    5.登陆企业微信公众号添加账户

    https://work.weixin.qq.com/wework_admin/loginpage_wx
    1.登陆后在企业号上新建应用

    2.上传logo,填写应用名称 ,应用介绍等

    3.查看启动应用 同时会生成应用的AgentId以及Secret,这个在后面步骤会有用

    4.接口调用测试http://work.weixin.qq.com/api/devtools/devtool.php

    这里的corpid为公司ID

    Corpsecret就是刚才创建应用生成的Secrt,确认没问题填写进去然后下一步 如果没问题会显示200状态码

    6.添加成员

    7.关注公众号

    8.查看自己的账号

    9.修改脚本里的信息

    [root@m01 /usr/lib/zabbix/alertscripts]# cat weixin.py 
    ..............
    corpid='微信企业号corpid'
    appsecret='应用的Secret'
    agentid=应用的id
    ..............
    
    注意: 如下所示windows上生成的内容对照填进去
    AgentId:1000008
    Secret: 6h3MVlvmjqN-8rKz4V84OPMB5cp0PPJPlKR0ny9kt6U
    corpid: wwd26fdfb9940e7efa
    
    

    10.发信测试

    [root@m01 /usr/lib/zabbix/alertscripts]# python  weixin.py  你的账号  '发信测试'  ‘微信测试消息’
    

    11.微信号上查看

    12.发送到整个微信组

    虽然我们实现了发送到单个用户的功能,但是如果我们的用户比较多,这样还是麻烦的,不过我们可以发送到整个组,其实脚本里已经预留好了配置,只不过默认注释了。
    将脚本修改为以下内容,注释掉用户,打开组设置

    #!/usr/bin/env python
    
    import requests
    import sys
    import os
    import json
    import logging
    
    logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',
                    datefmt = '%a, %d %b %Y %H:%M:%S',
                    filename = os.path.join('/tmp','weixin.log'),
                    filemode = 'a')
    corpid='wwd26fdfb9940e7efa'
    appsecret='Btg89FnZfMu0k7l6b4iagmAR5Z9TCgKknYbx-SMQvmg'
    agentid=1000005
    
    token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
    req=requests.get(token_url)
    accesstoken=req.json()['access_token']
    
    msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken
    
    #touser=sys.argv[1]
    toparty=sys.argv[1]
    subject=sys.argv[2]
    message=sys.argv[2] + "
    
    " +sys.argv[3]
    
    params={
            #"touser": touser,
            "toparty": toparty,
            "msgtype": "text",
            "agentid": agentid,
            "text": {
                    "content": message
            },
            "safe":0
    }
    
    req=requests.post(msgsend_url, data=json.dumps(params))
    
    logging.info('sendto:' + toparty + ';;subject:' + subject + ';;message:' + message)                                                                              
    

    注意: toparty=sys.argv[1]默认是全组

    12.随机发送到指定用户玩笑脚本

    #!/bin/bash 
    num=$(echo $(($RANDOM%28+1)))
    name=$(sed -n "${num}p" name.txt)
    ok_boy=$(grep -v "${name}" name.txt)
    
    for ok in ${ok_boy}
    do
      python  weixin.py ${ok}  "$1"  "$2"
    done
    
  • 相关阅读:
    防止头文件的重复包含问题
    git常用命令
    redis
    linux常用操作
    数据库安装
    mysql修改表结构
    mysql 忘记root密码及授权访问
    mysql连表查询
    mysql 存取ip方法
    php批量修改表结构
  • 原文地址:https://www.cnblogs.com/gongjingyun123--/p/12063614.html
Copyright © 2020-2023  润新知