• 发告警到钉钉上


    1. 钉钉上的设置

    钉钉拉一个讨论组,至少要三人。

    钉钉上点开讨论组的  “群设置”  --> "智能群助手"  --> "添加机器人" --> “添加机器人”右边的三个点 --> "自定义"(通过webhook)接入自定义服务  --> "添加"

    在弹出来的设置页面里面:

      给机器人起名字;

      记录下Webhook的地址,这个地址,是接收告警的接口;

      “安全设置“,勾选自定义关键词。填关键字进去(例如: storage ),这个应该是验证用的。就是发告警的时候,内容里面,要含有这个关键字(storage)。

    2. 服务器上通过shell脚本发告警

    粘上我抄过来的代码(略有改动),比如这个脚本叫 postToDingding.sh

    #!/bin/bash
    export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    data=$1
    curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx'     ## 这里填第一步记录的地址
               -H 'Content-Type: application/json'
                  -d '{     "msgtype": "text",
                            "text": {
                                    "content": "'$data'"
                                 }
                       }'

    上面的脚本,是专门发给钉钉的一个接口,再写一个信息收集的脚本,调用这个脚本,就可以发送消息了。我还是给个例子,因为我遇上点小坑:

    #!/bin/bash
     
    export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    thisIp=`ifconfig |grep "inet "|grep "10.3."|awk '{print $2}'`
    plat=`grep miner minerIp.txt|grep "$thisIp"|awk '{print $1}'`

    if ! ./abc.sh storage viplist > /dev/null
    then
            ./postToDingding.sh "storage:${plat}_${thisIp}_miner_execute_error"    ## 脚本postToDingding.sh 后面跟要发送的消息,不能带空格
            exit
    fi

    for i in `bcd.sh`
    do
            if ! echo $i|grep ',' > /dev/null
            then    
                    ./postToDingding.sh "storage:${plat}-${i}-is-only-one-node"
            fi
            for j in `echo $i|sed -e 's/["//g' -e 's/"\,"/ /g' -e 's/"]//g'`
            do
                    if ! curl $j > /dev/null 2>&1
                    then
                            ./postToDingding.sh "storage:${plat}-${j}-connect-error"
                            exit
                    fi
            done
    done

    上面这个脚本不可用。因为环境有差异,我想表达的是,shell发告警,因为有空格会被认为是第二个参数,我赶时间,没有想其它办法,就用"-" 代替空格了。不然会报错。

  • 相关阅读:
    Python装饰器的解包装(unwrap)
    《Python cookbook》 “定义一个属性可由用户修改的装饰器” 笔记
    关于Python的函数(Method)与方法(Function)
    判断python对象是否可调用的三种方式及其区别
    tornado返回指定的http code
    Mac下安装pymssql
    iptables
    OpenFlow通信流程解读
    Prometheus的架构及持久化
    ansible总结
  • 原文地址:https://www.cnblogs.com/dennnnnis/p/14240257.html
Copyright © 2020-2023  润新知