zoukankan      html  css  js  c++  java
  • zabbix 微信告警配置

    作者信息

    邮箱:sijiayong000@163.com

    Q Q:601566386

    Zabbix 微信告警

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

    使用微信发送告警,需要先注册一个微信企业号

    此处忽略具体步骤,请访问百度

    设置预警

    注册完成微信企业号后,点击我的企业

    在这里记录下来CorpID的值

    在之后发送微信告警的脚本中会用到

    查看CorpID

    紧接着需要创建组和用户
    创建组

    创建用户
    创建用户

    创建应用
    创建应用

    获取AgentID 和 Secret

    这两个信息,同样需要记录下来

    在之后的发送微信告警时需要

    创建应用

    准备事项#

    微信企业号

    企业号已经被部门成员关注
    企业号有一个可以发送消息的应用,一个授权管理员,可以使用应用给成员发送消息

    需要得到的信息#

    • CorpID
    • AgentID
    • Secret
    • 用户的账号 或 组ID

    配置zabbix server端

    需要修改zabbix.conf
    grep alertscripts /etc/zabbix/zabbix_server.conf

    AlertScriptsPath=/usr/lib/zabbix/alertscripts
    我们设置zabbix默认脚本路径,这样在web端就可以获取到脚本

    Shell 脚本

    进入到/usr/lib/zabbix/alertscripts/目录下,创建一个wechat.sh脚本文件
    给脚本文件授权用户和组以及增加执行权限

    chown zabbix.zabbix wechat.sh
    chmod +x wechat.sh

    #!/bin/bash
    ###SCRIPT_NAME:wechat.sh###
    ###send message from weixin for zabbix monitor###
    
    CropID='此处填写上面获取到的CorpID'
    Secret='此处填写应用的Secret'
    GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
    Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F" '{print $10}')
    
    PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
    
    function body() {
            #企业号中的应用id
            local int AppID=这里填写AgentID
            #部门成员id,zabbix中定义的微信接收者
            local UserID=$1
            #部门id,定义了范围,组内成员都可接收到消息
            local PartyID=2     
            #过滤出zabbix传递的第三个参数
            local Msg=$(echo "$@" | cut -d" " -f3-)
            printf '{
    '
            printf '	"touser": "'"$UserID""",
    "
            printf '	"toparty": "'"$PartyID""",
    "
            printf '	"msgtype": "text",
    '
            printf '	"agentid": "'" $AppID """,
    "
            printf '	"text": {
    '
            printf '		"content": "'"$Msg"""
    "
            printf '	},
    '
            printf '	"safe":"0"
    '
            printf '}
    '
    }
    /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL## 
    

    脚本测试

    /bin/sh /usr/lib/zabbix/alertscripts/wechat.sh sijiayong test test

    告警测试脚本

    定义Zabbix动作发送告警

    创建告警媒介

    按照图片中的定义创建新告警媒介
    此处贴出告警参数

    {ALERT.SENDTO}
    {ALTER.SUBJECT}
    {ALERT.MESSAGE}
    

    告警媒介添加页面

    告警媒介添加配置

    最后点击添加即可

    添加告警用户和动作

    添加告警用户

    配置告警用户
    配置告警用户

    配置用户告警媒介
    配置用户告警媒介

    最后点击更新,用户就完成

    添加动作

    故障配置

    故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
    
    告警主机:{HOSTNAME1}
    告警主机IP地址:{HOST.CONN}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    发生: {TRIGGER.NAME}故障!
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件 ID:{EVENT.ID}
    

    恢复配置

    恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
    
    告警主机:{HOSTNAME1}
    告警主机IP地址:{HOST.CONN}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
     {TRIGGER.NAME}已恢复!
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件 ID:{EVENT.ID}
    

    动作添加
    动作添加1

    动作添加2

    动作添加3

    动作添加2

    测试

    手动出发一次故障

    告警测试

    技术男一枚,喜欢做技术分享,把学习的过程,以及遇到问题的解决过程都愿意分享给大家,博客中如有不足,请留言或者联系博主,感谢。 邮箱: sijiayong000@163.com Q Q: 601566386
  • 相关阅读:
    centos7之防止root密码被破解
    近期codeforces做题的总结?(不定期更新)
    小程序分享微信好友
    小程序自定义头部导航栏滑动颜色渐变
    小白快速上手的react.js教程
    架构型设计模式-同步模式
    仿vue-cli写一个简易的脚手架
    VUE基础知识篇-vue从零开始学VUE
    彻底理解Vue组件间7种方式通信
    设计模式--观察者模式
  • 原文地址:https://www.cnblogs.com/winstom/p/8883796.html
Copyright © 2011-2022 走看看