告警脚本

无论是监控软件还是普通工作中的任务,都可以利用钉钉群机器人或企业微信群机器人来做告警通知或者任务完成后的通知

这里是一个简单的shell脚本

#!/bin/bash
webhook='https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxx'

curl $webhook \
   -H 'Content-Type: application/json' \
   -d "
	{
	\"msgtype\": \"text\",
	\"text\": 
		{
		\"content\": \"$1\"
		}
	}"

这个脚本的功能非常简单,只需要在运行脚本的同时跟上一个参数就行,参数就是消息的内容

这里的webhook可以是钉钉机器人的webhook,但是要注意,需要在钉钉群机器人中选择 关键字 方式,而参数中必须要携带关键字

也可以是企业微信群机器人的webhook

消息的格式文档

基于此,可以编写稍复杂易用的脚本

例如在zabbix里面需要的告警脚本

#!/bin/bash
#curl $3 -H 'Content-Type: application/json' -d "{\"msgtype\": \"markdown\",\"markdown\": {\"title\":\"$1\",\"text\": \"$2\"}}"
if [[ "$4" = "true" ]];then
 user="@all"
 mobile=false
 all=$4
elif [[ "$5" != ""  ]]&&[[ "$4" = "false" ]];then
 user="@$5"
 mobile=$5
 all=$4
else
 user=""
 mobile=false
 all=false
fi
curl $3 -H 'Content-Type: application/json' -d "{\"msgtype\": \"markdown\",\"markdown\": {\"title\":\"$1\",\"text\": \"$2\n\n$user\"},\"at\": {\"atMobiles\": [\"$mobile\"],\"isAtAll\": $all}}"

这里需要5个参数

  1. 消息的主题
  2. 消息的内容
  3. 群机器人的webhook链接
  4. 是否@全员
  5. 需要单独@人的电话号码

使用时需要注意,当第四个参数设置为 true 的时候,第五个参数就会被忽略

posted @ 2023-04-25 15:17  厚礼蝎  阅读(37)  评论(0编辑  收藏  举报