CDH 5.11.0
配置企业微信预警功能
1、注册一个新的洗液微信账户
https://work.weixin.qq.com/wework_admin/register_wx?from=myhome
2、添加一个通讯录分组,即预警分组,并添加预警人
3、创建一个新的应用,预警应用
添加应用时可指定分组
4、这里预警时会用到(企业ID,AgentId,Secret)
我的企业:
5、配置脚本发送预警
alert.sh
#!/usr/bin/env bash
CLUSTER=`cat $1 | python /opt/cloudera/alert.py`
echo $CLUSTER
alert.py
#!/usr/bin/env python
#coding: utf8
import os
import time
import urllib2
import json
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
myfile = sys.stdin
data = json.load(myfile)
for i in range(0, len(data)):
alert = data[i]["body"]["alert"]["attributes"]
alertSummary = alert["ALERT_SUMMARY"]
for summary in alertSummary:
print "ALERT_SUMMARY: ",
print summary
healthResult = alert["HEALTH_TEST_RESULTS"]
for result in healthResult:
print "content: ",
print result["content"]
print "testName: ",
print result["testName"]
print ""
# 企业号ID
wxid = "wwXXX"
# 应用ID
depid = "100001111"
# 认证密码
secret = "U37SXXXXXXXXXXX"
msg = result["content"]
# 获取当前的时间
date_time = time.strftime("%Y-%m-%d %X")
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()
Cloudera Management Service配置
路径填写预警脚本路径
重启Cloudera Management Service!
测试
因为测试环境集群已经有一些服务挂掉,所以可以直接查看日志,看配置是否生效:
tail -200f mgmt-cmf-mgmt-ALERTPUBLISHER-zt01.log.out
日志显示,已成功执行预警脚本,查看企业微信:
来源:oschina
链接:https://my.oschina.net/u/4410646/blog/4274265