
本篇文章大概1968字,阅读时间大约5分钟
采用Cloudera Mananger提供的自定义告警脚本的方式,收集告警信息并转发到企业微信群中~(企业微信群机器人)
实现Cloudera Manager告警的企业微信群机器人转发
实现思路是采用cloudera manager支持的自定义告警脚本方式,在脚本中调用企业微信群机器人的api
测试环境
CDH5.16.2
企业微信群中的管理员可以根据需求创建不同功能的“群机器人”,包括监控告警,数据推送,自动回复等。这里我们采用群机器人的功能实现Cloudera Manager的监控告警。
添加群机器人
群机器人配置中心:
https://work.weixin.qq.com/help?person_id=1&doc_id=13376
新建一个企业微信群聊,右键点击群聊添加群机器人,添加企业微信机器人后可以获取到一个webhook地址

进入安装CDH - Alert Publisher服务的机器:

新建告警脚本目录
# 创建目录
mkdir -p opt/cloudera/ud_alert;
编写企业微信告警脚本
vi /opt/cloudera/ud_alert/ew_alert.py
#!/usr/bin/env python
#coding: utf8
import sys
import json
import requests
import time
reload(sys)
sys.setdefaultencoding('utf-8')
def ew_robot(data):
webhook = "http://xxxxx/cgi-bin/webhook/send?key=xxxxx"
headers = {'content-type': 'application/json'}
r = requests.post(webhook, headers=headers, data=json.dumps(data))
r.encoding = 'utf-8'
return (r.text)
if __name__ == "__main__":
myfile = sys.stdin
alert_data = json.load(myfile)
content = "### Eights-CDH测试环境集群告警\n"
for i in range(0, len(alert_data)):
alert=alert_data[i]["body"]["alert"]
timestamp= time.localtime(alert["timestamp"]["epochMs"]/1000)
content = content +"> 时间:**"+time.strftime("%Y-%m-%d %H:%M:%S",timestamp)+"**\n"
content = content +"> 内容:"+alert["content"] +"\n"
content = content +"> 详情:"+alert["source"]+"\n"
content = conteng +"> ---------------------------------------\n"
print content
data={"msgtype": "markdown","markdown": {"content": content}}
res = ew_robot(data)
print(res)
配置告警发送脚本
#!/usr/bin/env bash
# 抓告警信息
cat $1 >> /opt/cloudera/ud_alert/alert.log
# 告警信息发送
ALERT_INFO=`cat $1 | python /opt/cloudera/ud_alert/ew_alert.py`
echo ${ALERT_INFO}
修改告警目录下所有脚本的权限和组
# 修改权限和组
chown -R cloudera-scm:cloudera-scm /opt/cloudera/ud_alert;
chmod 755 -R /opt/cloudera/ud_alert;

在Cloudera Manager上配置自定义告警服务的脚本路径,找到cm的配置,Alert Publisher配置中找到自定义报警脚本的配置:alert.script.path

重启Cloudera Manager服务,自定义告警配置完成

CDH企业微信告警功能测试
本环境为个人的测试环境,手动kill掉集群的一个Hbase的RegionServer服务,看是否可以实现自定义告警


Cloudera Mananger上Hbase的健康状态

企业微信群里的告警记录

查看记录的alert.log告警日志

CDH平台告警信息集成到企业微信完成

扫描二维码
获取更多精彩
Eights


点个在看吧~

文章转载自Eights做数据,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




