Prometheus 监控 ZooKeeper
Zookeeper的指标获取方式一般有两种,一种是Zookeeper的四字命令,另一种是使用JMX。ZooKeeper的四字命令用法在官方文档可以查到。针对JMX,Prometheus的jmx_exporter组件可以导出这些监控指标提供给Prometheus。Prometheus的exporter支持自定义,社区里面很多人开发了对接各种各样组件的exporter。除了jmx_exporter,Github上也有人做了zookeeper_exporter,有兴趣的人可以尝试一下。
下载 jmx_exporter
jmx_exporter Github地址 包含下载链接和使用说明。
我们可以看到此项目有个example_configs目录,这里包含了一些配置样例,其中有zookeeper的配置样例,我们可以一并下载下来。
我们可以看到jmx的使用方法是以java agent的形式启动:
java -javaagent:./jmx_prometheus_javaagent-0.13.0.jar=8080:config.yaml -jar yourJar.jar
如果你是像我一样正准备建设一整套hadoop的监控,我建议你规划一下exporter的存放路径和端口。
我是将监控相关的文件放在了和各种大数据组件平级的路径下,并对配置文件进行了归类:
mkdir -p /opt/bigdata/monitoring
mkdir -p /opt/bigdata/monitoring/zookeeper
mv jmx_prometheus_javaagent-0.13.0.jar /opt/bigdata/monitoring
mv zookeeper.yaml /opt/bigdata/monitoring/zookeeper
ZooKeeper 配置(唠叨版)
如果觉得废话太多可以跳过看精简版。
也许你在网上搜索其他攻略的时候,可以看到有些攻略在ZooKeeper里面配置各种和JMX相关的参数
像这样:-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.port=1234
但其实是不需要的,zookeeper默认开启JMX的本地模式,结合jmx_exporter,我们不需要开启远程模式,只需要把 -javaagent命令添加到启动命令中即可。
也许你还在网上搜索到我们需要在zookeeper home目录的bin/zkServer.sh进行修改:
像这样:
if [ "x