作者:唐辉
1
文档编写目的
Fayson在本文中介绍如何通过shell 和python 脚本获取CM中重要的告警信息,以便更方便的掌握和分析集群以及集群中节点和服务的健康状况。
- 测试环境:
1.RedHat7.2
2.CDH6.2.0
3.Python 2.7
4.使用root用户操作
2
操作步骤
2.1
在CM中获取API和event信息
首先需要知道CM 中API 获取告警信息的rest API ,可以通过在CM界面>支持>API 文档 搜索events。注:由于C6中API页面改版的缘故,在C6点击查看API详情界面使用的Google 的在线JQuery,建议使用VPN,否则C6中可能无法查看详情
因为使用rest API 通过curl 的方式,通过明文用户和密码,在CM中创建一个只读用户用来测试。CM>管理>User&Roles 中添加只读用户
关于事件的汇总可以在CM界面>诊断>事件 中通过添加筛选器来进行查看
2.2
编辑Shell 脚本获取数据
在CM界面筛选出想要的数据后,我们可以通过CM API方式用curl 获取数据,并导出到本地文件中,创建event.sh ,内容如下
执行调试,由于近10分钟没有告警,所以创建了一个触发器进行测试,详情参考文章《0642-6.2-如何在CM界面创建触发器》
2.3
创建MySQL测试表
在MySQL中test 库中创建事件表eventtable
2.4
编写Python脚本解析数据
通过Python 解析获取的数据并拼接SQL文件,创建event.py,内容如下(注:下列Python脚本中有Python2的也有Python3 的,注意查看注释代码)
测试环境Python2.7
进行测试
2.5
添加Linux 定时执行器
写入到定时器中每10分钟执行一次
为了立马看到效果,添加了一个CPU触发器进行验证,发现已经成功入库(注:存在重复数据是因为测试将定时器中途有重新获取文件和定时器时间为每分钟执行一次)
3
总结
通过上述的操作,我们可以同时管理多个CM管理的多个集群的事件信息,以及更加方便我们分析集群的事件,更便捷的掌握集群的健康状况