运维利器:钉钉机器人脚本告警(Linux Python 篇)

写在前面的话html

 

在前面的博客中已经具体提到了如何获取对的机器人的 Token 等操做,不清楚的能够参考以前写的 【运维利器:钉钉机器人脚本告警(Linux Shell 篇)】这篇博客的前部分。前端

本文主要给出的 Python 脚本的实现,我记得网上不少脚本给的好像是 go 语言写的。python

虽然如今 go 超级火,运维 docker 和 k8s 以及性能的缘由在自动化运维上可能即将取代 Python。docker

但不可忽视,Python 写脚本仍是挺不错的,且 Linux 自带 Python,能够省去不少麻烦!json

闲话少说,直接上代码:bootstrap

 

 

安装依赖api

 

我用的 CentOS 7,自带的是 Python 2.7, 不清楚的可使用命令查看:app

python -V

 

其中存在两个问题,一个是自带的 Python 没有 pip,须要安装,二是没有 requests 模块,安装方法以下:运维

【1】安装 pip:curl

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py

 

【2】安装 requests 模块:

pip install requests

 

 

发送脚本

 

【1】脚本内容:个人脚本名称( SendDingMessage.py

#!/usr/bin/python2
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "xxxxxxxxxxxxxxxxxxxxxxx 这里是你的钉钉机器人 Token xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

def msg(text, subject):
    json_text= {
        "actionCard": {
            "title": subject,
            "text": text,
            "hideAvatar": "0",
            "btnOrientation": "0",
            "btns": [
                {
                    "title": subject[:12],
                    "actionURL": ""
                }
            ]
        },
        "msgtype": "actionCard"
    }

    print(requests.post(api_url,json.dumps(json_text),headers=headers).content)

if __name__ == '__main__':
    text = sys.argv[1]
    text = text.replace("\n", "\r")
    subject = sys.argv[2]
    msg(text, subject)

 

【2】测试发送:

python SendDingMessage.py  'test' 'hahahahah'

 

【3】效果图:

 

【4】Zabbix 配置告警媒介:

 

【5】告警效果:

 

 

小结

 

最近特别忙,快过年了,以前给本身定了不少小目标尚未实现呢,好比 VUE + DRF 学习,结果中途窜出来了 LayUI,Docker K8S 等等。

Zabbix 系列也没时间更新,由于我的对于排版要求很严,注定无法高产。

前段时间学了点 Bootstrap + JQuery,第一件事就是把这个博客园的主题本身重写了,而后如今在作本身的一个我的博客。

如今线上是之前没学前端时候的版本,前端代码稀烂,正在重构中。感兴趣的能够关注一下。

最后就是,博客园别忘了点个 推荐 再走,给点动力也行啊!

最后的最后,又是右上角 QQ 扫码!

相关文章
相关标签/搜索