• zabbix微信告警实践


      首先你得有个企业号!!!具体操作步骤可以参考http://itnihao.blog.51cto.com/1741976/1733245,里面写的很详细就不重复了。

      微信公众号注册并配置完成后,还需要让zabbix通过脚本实现微信告警,以下为本人使用的微信告警脚本

     1 [root@alertscripts]# cat weixin.sh
     2 #!/bin/bash
     3 #可在微信公众号的设置菜单 => 权限管理 => 选择发送告警信息的管理组即可看到CropID和Secret信息
     4 CropID="XXXXX"      
     5 Secret="XXXXX"
     6 GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"      #微信公众号接口
     7 Gtoken=$(/usr/bin/curl -s -G $GURL | /bin/awk -F" '{print $4}')                #根据填写的CropID和Secret获取发送信息的管理组的token
     8 PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"         #接收告警信息的微信接口
     9 UserID1="@all"                                              #接收人ID,在微信公众号添加成员时自己填写的账号,建议以公司工号+姓名首字母组成
    10 Msg=$3                                                  #zabbix传过来的告警信息正文
    11 
    12 function body(){
    13         local int AppID=1                #应用ID,即你创建的用来发送信息的应用,在应用中心 => 我的应用里可以找到
    14         local UserID=$UserID1              #接收人ID,填写@all表示发给所有关注该公众号的用户
    15         local PartyID=1                              #部门ID
    16         local Totag="@all"                           #标签ID
    17         printf '{
    '
    18         printf '	"touser": "'"$UserID""",
    "
    19         printf '	"toparty": "'"$PartyID""",
    "
    20         printf '	"totag": "'"Totag""",
    "
    21         printf '	"msgtype": "text",
    '
    22         printf '	"agentid": "'" $AppID """,
    "
    23         printf '	"text": {
    '
    24         printf '		"content": "'"$Msg"""
    "
    25         printf '	},
    '
    26         printf '	"safe":"0"
    '
    27         printf '}
    '
    28 }
    29 
    30 /usr/bin/curl --data-ascii "$(body)" $PURL            #发送告警信息 

        把该脚本放到放在zabbix服务端相关目录下,笔者这里是/usr/local/share/zabbix/alertscripts

    1 [root@alertscripts]# chmod +x weixin.sh          #赋予执行权限
    2 [root@alertscripts]# sh weixin.sh d d 测试        #如果微信接收到“测试”消息就算是成功了
    3 {"errcode":0,"errmsg":"ok","invalidtag":"all tag invalid"}

      然后是配置zabbix

    1、创建告警内容

    以下是笔者定制的告警内容,可供参考

    警告:服务器 {HOSTNAME1} 出现异常 {TRIGGER.NAME}
    
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息:{TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:监控到{ITEM.NAME}为 :{ITEM.VALUE}
    当前状态:异常
    事件ID:{EVENT.ID}
    
    请及时登录运维平台http://192.168.1.8:8888/dashboard.php进行处理!
    
    特别声明:本邮件为系统告警程序自动发送,请勿回复!如有问题,请及时联系运维人员

    2、添加微信到告警媒介

    3、关联用户,这里接收人随便填,因为接收人已经在微信里配置好了,脚本也不接收该参数但这是必填项,所以这里填什么都可以

    之后可以改一下触发器的阀值,测试微信的告警功能

  • 相关阅读:
    AspNetPager分页控件
    Asp.Net MVC 路由表
    自动检测海岸线,生成海浪网格
    斜坡刷子,一种好用的地形编辑方式
    用NVPerfHud4剖析Farcry的绘制过程
    初学BSP,上一些测试数据
    让游戏通过红蓝立体眼镜展现立体效果
    没有贴图拉伸的陡峭悬崖
    刚刚做的Bloom(伪HDR)效果
    近两个礼拜地图编辑器的一些进展
  • 原文地址:https://www.cnblogs.com/dengtr/p/5163701.html
Copyright © 2020-2023  润新知