zookeeper 监控 与 JVM 设置

一、通过JMX监控 JVM

默认情况下,在 ./bin/zkServer.sh 脚本中是默认开启了JMX监控的,并且是不需要认证的,详情可见ZOOMAIN变量;

ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=$JMXPORT -Dcom.sun.management.jmxremote.authenticate=$JMXAUTH -Dcom.sun.management.jmxremote.ssl=$JMXSSL -Dzookeeper.jmx.log4j.disable=$JMXLOG4J org.apache.zookeeper.server.quorum.QuorumPeerMain"

但是一般情况下为了数据保密是需要认证和授权,这个时候就需要添加以下变量,并将上述$JMXAUTH变量设置为true

ZOOMAIN="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=$JMXPORT -Dcom.sun.management.jmxremote.authenticate=$JMXAUTH -Dcom.sun.management.jmxremote.ssl=$JMXSSL -Dzookeeper.jmx.log4j.disable=$JMXLOG4J -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password 
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access org.apache.zookeeper.server.quorum.QuorumPeerMain"

==注意:==如果你想添加其他系统参数,也可以通过此方式添加;想要加深了解JMX,请阅读这篇文件

二、JVM设置

可以在 ./bin/zkEnv.sh 文件中的以下配置中新增JVM相关配置

# default heap for zookeeper server
ZK_SERVER_HEAP="${ZK_SERVER_HEAP:-1000}"
export SERVER_JVMFLAGS="-Xmx${ZK_SERVER_HEAP}m $SERVER_JVMFLAGS"

三、Prometheus 进行指标监控

要开启prometheus指标监控,需要启用 Prometheus MetricsProvider 设置,可以将以下配置新增到zoo.cfg配置文件中,其中端口默认是7000;

metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
metricsProvider.httpPort=7000

并且在prometheus的配置文件中新加如下配置

cat > /tmp/test-zk.yaml <<EOF
global:
  scrape_interval: 10s
scrape_configs:
  - job_name: test-zk
    static_configs:
    - targets: ['192.168.10.32:7000','192.168.10.33:7000','192.168.10.34:7000']
EOF
cat /tmp/test-zk.yaml

告警设置,详见zookeeper监控官网,想要了解更多prometheus 请阅读我的prometheus专栏详解。

上一篇:canvas跟随鼠标画有透明度的矩形边框


下一篇:简述如何系统地学习Python