写在前面的话

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

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

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

但不可忽视,Python 写脚本还是挺不错的,且 Linux 自带 Python,可以省去很多麻烦!

闲话少说,直接上代码:

安装依赖

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

python -V

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

【1】安装 pip:

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": "",
"btnOrientation": "",
"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 扫码!

运维利器:钉钉机器人脚本告警(Linux Python 篇)的更多相关文章

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

    写在前面的话 目前换了几家公司,且最近几家都是以钉钉作为公司 OA 聊天工具,总的来说还是很不错的.最近去了新公司,由于公司以前没有运维,所以监控,做自动化等方面都没有实施,恰逢这个机会把最近做的关于 ...

  2. 如何高效地远程部署?自动化运维利器 Fabric 教程

    关于 Python 自动化的话题,在上一篇文章中,我介绍了 Invoke 库,它是 Fabric 的最重要组件之一.Fabric 也是一个被广泛应用的自动化工具库,是不得不提的自动化运维利器,所以,本 ...

  3. 运维利器-ClusterShell集群管理操作记录

    在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了!写个shell去 ...

  4. 运维利器-ClusterShell集群管理

    在运维实战中,如果有若干台数据库服务器,想对这些服务器进行同等动作,比如查看它们当前的即时负载情况,查看它们的主机名,分发文件等等,这个时候该怎么办?一个个登陆服务器去操作,太傻帽了!写个shell去 ...

  5. 运维工程师必会的109个Linux命令

    运维工程师必会的109个Linux命令 版本1.0 崔存新 更新于2009-12-26 目录 1 文件管理 6 1.1 basename 6 1.2 cat 6 1.3 cd 7 1.4 chgrp ...

  6. Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Discuz!

    Nginx+Lua+Redis整合实现高性能API接口 - 网站服务器 - LinuxTone | 运维专家网论坛 - 最棒的Linux运维与开源架构技术交流社区! - Powered by Disc ...

  7. Linux运维面试题:请简要说明Linux系统在目标板上的启动过程?

    Linux运维面试题:请简要说明Linux系统在目标板上的启动过程? 该问题是Linux运维面试最常见的问题之一,问题答案如下: 1.用户打开PC的电源,BIOS开机自检,按BIOS中设置的启动设备( ...

  8. python为运维人员打造一个监控脚本

    0x00前言: 一直想写一个监控方面的脚本,然后想到了运维这方面的 后来就写了个脚本. 0x001准备: psutil模块 0x02正文: import os import time import r ...

  9. 数据库(Oracle)运维工作内容及常用脚本命令

    1.系统资源状况:--内存及CPU资源  --linux,solaris,aix    vmstat 5  --说明:    1)观察空闲内存的数量多少,以及空闲内存量是否稳定,如果不稳定就得想办法来 ...

随机推荐

  1. linux lcd设备驱动剖析三

    上一节文章中详细地剖析了probe函数,但是从始至终都没有看到打开读写文件接口的操作函数,只看到了下面这个操作结构体 [cpp] view plain? static struct fb_ops s3 ...

  2. FPGA SD 卡 之 乒乓操作 、同步fifo

    这里记录一个实际的需要使用乒乓操作的例子:读sd卡数据的时,在spi的模式下.发送单数据块的读取命令,在回应之后会有 512字节的数据.使用乒乓操作,可以用两个八位的寄存器,就可以完成连续的512字节 ...

  3. js操作indexedDB增删改查示例

    js操作indexedDB增删改查示例 if ('indexedDB' in window) { // 如果数据库不存在则创建,如果存在但是version更大,会自动升级不会复制原来的版本 var r ...

  4. Java面向对象-方法的定义及简单使用

    Java面向对象之方法 方法是对象的一部分,也称为行为: 先来一个简单实例: package com.java1234.chap03.sec03; public class Person { void ...

  5. 0k6410定时器详细分析

    看到一篇很好的博文,分析2410定时器中断的使用的,很详细,和大家分享一下 转载来源于http://www.cnblogs.com/Neddy/archive/2011/07/01/2095176.h ...

  6. 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 2_Linear regression with one variable 单变量线性回归

    Lecture2   Linear regression with one variable  单变量线性回归 2.1 模型表示 Model Representation 2.1.1  线性回归 Li ...

  7. imp导入数据的时候报错:ORA-01658: 无法为表空间 MAXDATA 中的段创建 INITIAL 区

    在oracle里创建表,报出错: ORA-01658: 无法为表空间space中的段创建 INITIAL 区: 或者: ORA-01658: unable to create INITIAL exte ...

  8. c++多线程编程(三)

    关于WaitForSingleObject函数用法 : 用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法. 但是,用户模式的线程同步有限制,对于多个进程之间的 ...

  9. nohup 无发后台运行

      用nohup命令让Linux下程序永远在后台执行 [ 2006-5-13 22:31:54 | By: 牧云 ]   Unix/Linux下一般想让某个程序在后台运行,很多都是使用 & 在 ...

  10. Composert 的命令

    (1) php artisan       ----查看所有的命令帮助 (2) php artisan make:controller StudentController      ----创建一个控 ...