前言
最近接到一个新任务,使用ganglia去监控Hadoop各个组件的指标。
调研发现,hdfs,hbase,spark这三个,可以通过设置,源生支持ganglia。然后其他的组件,比如storm,hive之类的,由于都是运行在JVM上的,可以使用JMX获取其监控指标。
在实际的生产过程,使用HttpClient获取JMX的json串,然后再进行解析,可以获取其内容。但是编码量比较大,而且都是重复工作,于是发现了jmxtrans这个工具,可以通过JSON配置文件的方式,获取JMX的监控指标,并将其发给ganglia。从而完成整个监控。
Ganglia
Ganglia 简介
Ganglia是UCBerkeley发起的一个开源集群监视项目。它主要是用来监控系统性能,如:CPU、Memory、硬盘利用率,I/O负载、网络流量情况等。Ganglia通过图形化的方式展示每个节点的状态信息,这对合理调整、分配系统资源,提高系统整体性能起到重要作用。Ganglia包含三个核心组件:GangliaMonitoring Daemon(gmond)、GangliaMeta Daemon(gmetad)以及GangliaPHP Web Frontend。