一 注册企业微信

本文所有内容是基于2018年12月26日时的企业微信版本所做的教程。后面可能由于企业微信界面规则更改导致部分流程不一致。(大家看文章时请注意这一点)

注册企业微信必备条件

  1. 微信号(实名认证了)
  2. 手机号

之前我有个误区,就是以为注册企业微信就一定要有营业执照之类的证件才可以注册,实际是不需要也可以的,因为我们直接注册后,即使不绑定企业,我们也是可以正常使用的,未绑定实际企业的,有200人的数的上限(难道你们技术部有200人?不存在的,哈哈!)

注册

注册链接:企业微信



企业名称可以随便填,建议填真实的啊,其他的你就按照实际情况填了。

二 创建消息

创建部门

首先我们需要创建一个部门,然后将成员添加到一个部门里面

邀请成员加入

我们可以在首页点击进行邀请。

也可以在选中要添加的部门后再选右边的添加成员或者微信邀请。

创建应用

创建的时候指定下可以接收的消息的部门

关注微工作平台

在我的企业 ---》 微工作平台 ---》邀请关注

三 实现预警

在完成的上面的所有准备工作后,我们还需要获取三个东西 :

1 企业ID

2 获取应用ID和Secret

获取企业ID

获取应用ID和Secret

通过shell 脚本实现监控预警

该shell 脚本实现的功能: 检测端口是否在监听状态,不在则进行微信预警。

#!/bin/bash
###############
#$Auth= djx
#$Function= monitoring service
#Date= 2018-12-26
###############
# 日志储存文件
log_file='/var/log/ljf_status.log'
# 主机名
hostname=`hostname`
# 监听的端口数组
check_port=("3306" "3329" "4567")
# 数组长度
num=${#check_port[*]}
# 报警消息
msg=""
echo "--------------------------$(date +%F_%T)-----------------" >>$log_file for i in `seq 0 $num`
do
netstat -tnlp|grep "${check_port[${i}]}" >>/dev/null
if [ $? -ne 0 ]
then
msg="\\n${hostname}:The Port ${check_port[${i}]} is down \\n"${msg}
echo "$(date +%F_%T) ${hostname}:The Port ${check_port[${i}]} is down">>$log_file
fi
done
if [ "${msg}" != "" ]
then
CropID="" #填入企业ID值
Secret="" #填入认证密码
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
# 获取token
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
body='{
"touser": "@all",
"msgtype": "text",
"agentid": "1000002", #要更改为我们的应用ID
"text":{
"content":"
故障:'$msg' "
},
"safe":0
}'
/usr/bin/curl --data-ascii "$body" $PURL >>$log_file 2>&1
fi

通过python 脚本实现监控预警

由于centos7和centos6 默认安装的都是python2版本,所以下面的脚本是基于python2写的,这样我们就可以直接拿到我们的服务器上使用了。

# -*- coding: utf-8 -*-
# @Time : 2018/12/27 0021 11:58
# @Author : djx
# @Email : 1120236774@qq.com
# @File : 微信预警脚本.py
# @Software: PyCharm
import os
import time
import urllib2
import json # 企业号ID
wxid = ""
# 应用ID
depid = ""
# 认证密码
secret = ""
# 获取主机的名称
hostname = os.popen("hostname").read()
# 日志储存文件
log_file = '/var/log/ljf_status.log'
# 监听的端口列表
check_port = (
"8500",
"3306")
# 发送的消息
msg = ""
# 获取当前的时间
date_time = time.strftime("%Y-%m-%d %X")
# 检查端口是否在监听
for i in check_port:
shell = "netstat -nutlp |grep \"" + i + "\""
recv = os.popen(shell).read()
if recv == "":
msg = msg + hostname + ": The Port " + i + "is down \n"
# 预警判断
if msg != "":
url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + \
wxid + "&corpsecret=" + secret
request = urllib2.Request(url)
response = urllib2.urlopen(request)
recv_info = response.read()
recv_info = eval(recv_info)
wx_token = recv_info['access_token']
msg_url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + wx_token
send_msg = {
"touser": "@all",
"msgtype": "text",
"agentid": depid,
"text": {"content": msg},
"safe": 0
}
send_msg_json = json.dumps(send_msg)
request_post = urllib2.urlopen(msg_url,send_msg_json)
recv_msg = request_post.read()
with open(log_file,mode='a') as f:
f.write(date_time)
f.write("\n")
f.write(msg)
f.write(recv_msg)
f.write("\n")

上面的脚本也可以应用在zabbix或者是Open-falcon。

最后送上一句觉得不错的话 : 立志要如山,行道要如水,如山能坚定,如水能曲达

用企业微信实现预警(shell + python)的更多相关文章

  1. 企业微信公众号告警Python脚本

    #!/usr/bin/env python # -*- coding: utf-8 -*- import time import requests import json import os impo ...

  2. Python Django对接企业微信第三方服务回调验证的一些坑

    今天公司老总,叫我把公司的企业微信,服务商管理后台中的本地应用进行回调验证. 听起来一脸懵逼,没搞过企业微信对接情况.一头雾水,不知道如何下手. 先讲解一下,企业微信情况. 登录到企业微信后,右上角服 ...

  3. Zabbix4.2.0使用Python连接企业微信报警

    目录 1. 配置企业微信 2. 脚本配置 2.1 安装python依赖的库 2.2 编写脚本 2. 搭建FTP 3. 配置Zabbix监控FTP 3.1 添加FTP模板 3.2 添加报警媒介 3.3 ...

  4. Python 发送企业微信消息

    1.获取企业微信信息 1)我的企业 --> 企业信息 --> 企业ID 2)创建一个应用,记录该应用的 AgentId.Secret 2.python代码 #!/usr/bin/env p ...

  5. 使用Python发送企业微信消息

    准备工作: 到企业微信官网,注册一个企业:登录企业微信后台,创建一个“自建”应用, 获取企业ID.agentid.secret这3个必要的参数:在企业微信的通讯录中,创建多个测试账号:在手机端安装“企 ...

  6. python实现通过企业微信发送消息

    实现了通过企业微信发送消息,平时用于运维的告警还是不错的,相对于邮件来说,实时性更高,不过就是企业微信比较麻烦,此处不做过多解释. 企业微信api的详细请看:http://work.weixin.qq ...

  7. python发送微信及企业微信消息

    1.发送微信消息 直接使用第三方库 itchat,其文档中有详细使用方式:https://itchat.readthedocs.io/zh/latest/ 如下实例为 发送群聊信息 # -*- cod ...

  8. UDP端口检查告警SHELL脚本(企业微信版机器人版)

    脚本准备 0Batch_Check.sh 1port_check.sh 2wechat_bot_alert.sh CheckList CheckList #支持大/小写 10.1.1.5 Udp 53 ...

  9. Python接入企业微信 - 推送信息到内部群里

    前言 之前一篇文章提到了使用wechatpy库来实现企业微信应用登录:Django + Taro 前后端分离项目实现企业微信登录 其实这个库可以实现的功能非常多,基本微信开发涉及到的功能都能实现. 本 ...

随机推荐

  1. Codeforces807 A. Is it rated? 2017-05-08 23:03 177人阅读 评论(0) 收藏

    A. Is it rated? time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  2. 解决由AJAX请求时forms认证实效的重新认证问题

    前言: 当用AJAX请求一个资源时,服务器检查到认证过期,会重新返回302,通过HTTP抓包,是看到请求了登录页面的,但是JS是不会进行跳转到登录页面. 使用环境: ASP.NET MVC 4 JQU ...

  3. Svn在eclipse中使用

            首先下载SvnAdt,我这里有个中文版的. 下载地址是  http://dl.vmall.com/c0i19tiqbq         你在其它地方下载的文件的话,解压文件后,把fea ...

  4. Java异常处理机制的秘密

    一.结论 这些结论你可能从未听说过,但其正确性是毋庸置疑的,不妨先看看: 1.catch中throw不一定能抛回到上一层,因为finally中的return会抑制这个throw 2.finally中t ...

  5. BitAdminCore框架更新日志20180523

    20180523更新内容 本次更新两个内容,一是增加视频处理功能,二是增加定时服务功能. 视频处理 定时服务 BitAdminCore框架,用最少的代码,实现最多的功能 本次新暂未发布,后续有空发布 ...

  6. 将GridView的数据导出Excel

    HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename ...

  7. VUE.js 中取得后台原生HTML字符串 原样显示问题

    今天使用vue调试页面,发现了页面上的一个问题,后台数据传过来的HTML字符串并没有被转换为正常的HTML代码,一拍脑门,发现忘记转换了,于是满心欢喜加上了{{{}}}.但是之后构建发现报错: 为此去 ...

  8. MongoDB VUE的下载及安装

    下载: mongo vue官网地址:http://www.mongovue.com/ 安装: 很简单,注意的是:在提示buy 和 OK  的时候点击OK即可: 连接: 默认连接(无用户名密码): 在启 ...

  9. python远程执行命令

    def run(): try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ...

  10. day65 Django模板语言

      常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} 变量名由字母数字和下划线组成. 点(.)在模板语言中有特殊的含 ...