温馨提示×

如何在CentOS上监控Zookeeper性能指标

小樊
35
2025-12-29 13:38:38
栏目: 智能运维

在 CentOS 上监控 Zookeeper 性能指标

一 内置四字命令快速巡检

  • 使用 nc/telnet2181 端口发送四字命令,获取延迟、连接数、请求量等关键指标:
    • 存活探测:echo ruok | nc localhost 2181(返回 imok 表示正常)
    • 基础状态:echo stat | nc localhost 2181(角色 Mode、连接与会话、Znode 数、延迟等)
    • 结构化指标:echo mntr | nc localhost 2181(如 AvgLatency、MaxLatency、PacketsReceived/PacketsSent、AliveConnections、ZnodeCount 等)
  • 注意:确保 Zookeeper 配置允许四字命令(默认开启),且 firewalld/iptables 放行 2181 端口。以上命令适合脚本化巡检与临时排障。

二 JMX 深度监控 JVM 与内部指标

  • 启用 JMX(推荐在启动脚本如 zookeeper-env.sh 中设置 JVMFLAGS,或 zoo.cfg 中配置 jmx.port,视版本支持情况而定):
    • 示例(JVM 参数方式):
      • export JVMFLAGS=“-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
  • 连接与查看:
    • 使用 jconsoleVisualVM 连接 :9999,在 MBeans 下查看 org.apache.ZooKeeperService 相关计数器(如请求处理统计、DataTree 节点数等),同时可观察 JVM 内存、线程、GC 等指标。
  • 安全建议:生产环境请开启 认证/SSL 并限制来源 IP,避免暴露 JMX 端口到公网。

三 Prometheus + Grafana 长期监控与可视化

  • 方式 A(Zookeeper 内置 Prometheus 指标,Zookeeper 3.6+ 推荐):
    • zoo.cfg 启用指标端点:
      • metricsProvider.classname=org.apache.zookeeper.server.metrics.PrometheusMetricsProvider
      • metricsProvider.httpport=7000
    • Prometheus 抓取:
      • scrape_configs:
        • job_name: ‘zookeeper’ static_configs:
          • targets: [‘localhost:7000’]
    • Grafana:添加 Prometheus 数据源,导入官方面板(如 ID:1186511794),展示延迟、连接数、请求量、Znode 数等趋势。
  • 方式 B(JMX Exporter,兼容旧版本或非内置场景):
    • 部署 jmx_exporter,暴露 9143 端口;Prometheus 抓取 :9143,Grafana 使用相同面板展示。
  • 该方案适合生产环境的长期存储、可视化与告警联动。

四 Telegraf 采集与系统资源联动

  • 安装与配置 Telegraf(CentOS 可用 yum 安装):
    • 编辑 /etc/telegraf/telegraf.conf
      • [[inputs.zookeeper]]
        • servers = [“localhost:2181”]
        • timeout = “5s
    • 启动:systemctl restart telegraf
  • 采集结果可输出到 InfluxDB/Prometheus 等后端,与系统层面指标(CPU、内存、磁盘 IO、网络)联动分析,快速定位瓶颈。

五 进程与系统资源健康检查

  • 进程与服务:
    • systemd:systemctl status zookeeper(查看运行状态与最近日志)
    • 日志:tail -f /var/log/zookeeper/zookeeper.out(实时跟踪异常)
  • 资源与网络:
    • CPU/内存:top/htop(关注 java 进程)
    • 磁盘 IO:iostat -x 1(关注 %util、await,Zookeeper 对磁盘写延迟敏感)
    • 连接与端口:ss -tulpen | grep 2181;netstat -anp | grep 2181
    • 数据目录空间:df -h(确保 dataDir/dataLogDir 所在磁盘充足)
  • 进程守护(可选):使用 Supervisor 保证进程异常退出自动拉起,并集中管理日志。

0