Prometheus 监控 Hadoop3
可能是全网最简洁的配置攻略,欢迎讨论
下载 jmx_exporter
jmx_exporter Github地址 包含下载链接和使用说明。
我们可以看到jmx的使用方法是以java agent的形式启动,会开启一个端口供Prometheus拉数:
java -javaagent:./jmx_prometheus_javaagent-0.13.0.jar=8080:config.yaml -jar yourJar.jar
创建组件配置文件
启动jmx_exporter的时候需要指定配置文件,配置文件可以为空,但不能没有。为每个组件创建一下配置文件,暂时设置为空就好:
namenode.yaml |
---|
datanode.yaml |
resourcemanager.yaml |
nodemanager.yaml |
journalnode.yaml |
zkfc.yaml |
hffps.yaml |
proxyserver.yaml |
historyserver.yaml |
规划一下监控体系
如果你是像我一样正准备建设一整套hadoop的监控,我建议你规划一下监控文件的存放路径和端口。
我是将监控相关的文件放在了和各种大数据组件平级的路径下:
mkdir -p /opt/bigdata/monitoring
mkdir -p /opt/bigdata/monitoring/zookeeper
mkdir -p /opt/bigdata/monitoring/hadoop
mv jmx_prometheus_javaagent-0.13.0.jar /opt/bigdata/monitoring
我在monitoring目录下存放了jmx_exporter jar包。后续还会有主机监控node_exporter等组件,我选择将他们放在一起管理、并将配置文件分类存放了下来。
我这样做的目的是想把监控做成一个模块,尽量少的对原有组件进行改动,降低耦合程度。
Hadoop 配置
Hadoop的配置十分简单,只需要在hadoop-env.sh传入参数即可:
cd hadoop/etc/hadoop/
vim hadoop-env.sh
export HDFS_NAMENODE_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30002:/opt/bigdata/monitoring/hadoop/namenode.yaml $HDFS_NAMENODE_OPTS"
export HDFS_DATANODE_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30003:/opt/bigdata/monitoring/hadoop/datanode.yaml $HDFS_DATANODE_OPTS"
export YARN_RESOURCEMANAGER_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30004:/opt/bigdata/monitoring/hadoop/resourcemanager.yaml $YARN_RESOURCEMANAGER_OPTS"
export YARN_NODEMANAGER_OPTS="-javaagent:/opt/bigdata/monitoring/jmx_prometheus_javaagent-0.13.0.jar=30005:/opt/bigdata/monitoring/hadoop/nodemanager.yaml $YARN_NODEMANAGER_OPTS"
<