zoukankan      html  css  js  c++  java
  • 运维利器:钉钉机器人脚本告警(Linux Shell 篇)

     

    写在前面的话

    目前换了几家公司,且最近几家都是以钉钉作为公司 OA 聊天工具,总的来说还是很不错的。最近去了新公司,由于公司以前没有运维,所以监控,做自动化等方面都没有实施,恰逢这个机会把最近做的关于用到钉钉机器人的一些东西写出来,希望能够帮到和我有同样需求的兄弟,少走一些弯路!

    目前个人钉钉机器用在了两个方面:

    一是 Zabbix 监控告警,使用的是 Python 编写的脚本,且目前也在写关于 Zabbix 的文档,有兴趣的小伙伴可以到我主页看看!

    二是 Jenkins 自动发布,在构建后执行 Shell 过程中加入一系列的钉钉机器人消息提醒!

    添加钉钉机器人

    目前个人已知的钉钉机器人只能存在于钉钉群,钉钉群的建群需求是至少 3 人,当然,你建群之后可以把其它人踢出去,我就是这样干的,谁让我们只有两个人呢 ...

    【1】首先,我们进入一个钉钉群创建我们的机器人:

     

     【2】目前钉钉已经存在了一些项目的机器人,你可以根据自己的选,当然,我们本次就用自定义的,添加一个名为 HELLO ROBOT 机器人:

     

    【3】 机器人添加完成,会生成一个 webhook,这是你上传数据接口,同时这个接口也代表着该机器人的身份标识,相当重要!

     

    【4】添加完成后,机器人会在群里发送一条消息,还有点阔爱:

     

    发送消息脚本(Linux Shell)

    对于消息在钉钉群中的显示格式以及更多的关于钉钉机器人的开发文档说明,可以查看官方给的开发者文档:

    https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.oAAN7T&treeId=257&articleId=105733&docType=1

    以下是 Linux Shell 脚本,个人选择的是钉钉消息的 ActionCard 格式: 

    #!/bin/bash 
    
    function SendMessageToDingding(){ 
        Dingding_Url="这就是刚刚机器人的 webhook xxxxxxxx" 
        # 发送钉钉消息
        curl "${Dingding_Url}" -H 'Content-Type: application/json' -d "
        {
            "actionCard": {
                "title": "$1", 
                "text": "$2", 
                "hideAvatar": "0", 
                "btnOrientation": "0", 
                "btns": [
                    {
                        "title": "$1", 
                        "actionURL": ""
                    }
                ]
            }, 
            "msgtype": "actionCard"
        }"
    } 
    
    Subject="$1" 
    
    Body="$2"
    
    SendMessageToDingding $Subject $Body

    备注:我们这里传递了两个参数,当然,你也可以根据自己的需求选择消息类型,定制参数,都是 Shell 的基础知识,比较简单! 

    最后,我们可以放在机器上面测试一下,下面是我的效果: 

    注意,由于 Linux 多行的值赋值给一个变量的时候,换行符需要转义,还有就是 Zabbix 触发动作里面内容一定不定有空格,这都是 shell post json 的大坑! 

    Zabbix 监控告警的效果:

    小结

    使用 Shell 发送很简单,其实就是提交 JSON 数据,但是 Shell 提交 JSON 感觉有点恶心,后续我会把 Python 脚本脚本也发出来,希望能够帮到各位! 

  • 相关阅读:
    通联支付相关注意事项
    账号配置vue版本的扫码下单以及对店铺进行装修的步骤
    银盒子扫码下单在线订单开启商品售卖时段使用说明
    ERP承接新后台优惠规则问题
    简易付安装后无法使用
    ASP.NET没有魔法——ASP.NET Identity 的“多重”身份验证代码篇
    ASP.NET没有魔法——ASP.NET Identity 的“多重”身份验证
    ASP.NET没有魔法——ASP.NET MVC 过滤器(Filter)
    ASP.NET没有魔法——ASP.NET Identity与授权
    ASP.NET没有魔法——ASP.NET Identity的加密与解密
  • 原文地址:https://www.cnblogs.com/Dy1an/p/9264691.html
Copyright © 2011-2022 走看看