问题
找一个能够能够将本地主机监控日志发送到移动端的工具。微信不允许调用web接口,找到了钉钉。
简单使用
主要测试了读取本机文件通过钉钉机器人向钉钉群组发送信息
1、下载桌面版钉钉,在桌面版钉钉中新建一个测试群组,添加一个自定义机器人。
2、在本地新建一个dingTalkSend.py文件,主要包含获取告警文件并进行告警信息格式化,通过钉钉机器人将告警信息发送给移动端与PC端
3、将dingTalkSend.py放置在后台,每隔15分钟读取告警文件并调用钉钉机器人
发送告警信息的主要代码为:
class dingRobot():
def __init__(self):
self.url = "https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx"
def request(self, url, method, data=None, head={}):
request = urllib2.Request(url=url, headers=head)
request.get_method = lambda: method
httpRes = urllib2.urlopen(request, data)
content = httpRes.read()
httpRes.close()
return content
def postStart(self, infoContent):
data = {}
data['msgtype'] = 'markdown'
data['markdown'] = {}
data['markdown']['title'] = '监控信息'
data['markdown']['text'] = infoContent
data = json.dumps(data)
head = {"Content-Type": "application/json"}
content = self.request(self.url, "POST", data, head)
return content
def dingStart(self, warnInfoDict):
print itype
for infoItem in warnMessageDict['pending']:
self.postStart(infoItem)
for infoItem in warnMessageDict['ok']:
self.postStart(infoItem)
- 在
__init__()
中初始化自己的钉钉机器人,其中access_token=xxxxxxxx
是在钉钉中创建机器人时生成的串 -
post_start()
中定义了发送信息的样式,钉钉支持text、link、markdown、ActionCard等 -
ding_start()
:通过该方法传入待发送信息{string, []}
调用方法为:
ddRobot = dingRobot()
ddRobot.dingStart(warnMessageDict)