今儿早上班跑数据的时候,突然发现任务全部卡死,查看了下hadoop管理页面之后,发现节点全部都出问题了,导致数据任务无法执行,集群出问题了也没个提示,反正也挺难受的,在运维老哥的怂恿下,写个简易的脚本去监控集群的健康情况,然后做到及时提醒。
思路很简单,用Python去定时访问hadoop管理页面,爬取Lost Nodes与Unhealthy Nodes 的数值,如果不是0的话就抛出异常,再通过钉钉机器人去告警,反之如果为0就是正常。
有了思路,那么代码写起来就很快了。
首先我们用requests模块请求这个管理页面的地址,接着用XPath解析这两个数值的路径
右键拷贝出XPath路径之后,得到XPath路径为
'//*[@id="metricsoverview"]/tbody/tr/td[14]/a'
接下来开始上Python,首先我们这里需要用到以下几个包:
im