如何在Debian上配置HBase监控告警
导读:在Debian上配置HBase监控告警 一 监控体系与端口 内置观测 HBase Master Web UI:访问 http://:16010/master-status,查看集群健康、RegionServer 列表、表/Region...
在Debian上配置HBase监控告警
一 监控体系与端口
- 内置观测
- HBase Master Web UI:访问 http://:16010/master-status,查看集群健康、RegionServer 列表、表/Region 分布等。
- HBase Shell:执行 status ‘simple’ 快速判断集群是否可用。
- JMX:HBase 通过 JMX 暴露 JVM/GC/RegionServer 等指标,常用端口为 16010(Master JMX)、16020(RegionServer JMX),可用 JConsole/VisualVM 远程连接查看。
- 第三方监控
- Prometheus + Grafana:以 JMX Exporter 采集 HBase JMX 指标,Grafana 做可视化与告警。
- Zabbix:通过自定义脚本/Exporter 采集指标,配置触发器实现告警。
二 方案一 Prometheus JMX Exporter 告警
- 部署 JMX Exporter
- 下载 jmx_exporter(版本号按需选择),在 /opt/prometheus/ 解压,创建 HBase 专用配置 /opt/prometheus/hbase_jmx_config.yml(示例抓取 Master 与 RegionServer 常用 MBean):
rules: - pattern: "Hadoop:service=HBase,name=Master,sub=Server" - pattern: "Hadoop:service=HBase,name=Master,sub=IPC" - pattern: "Hadoop:service=HBase,name=Master,sub=Balancer" - pattern: "Hadoop:service=HBase,name=RegionServer,sub=Server" - pattern: "Hadoop:service=HBase,name=RegionServer,sub=IPC" - pattern: "Hadoop:service=HBase,name=RegionServer,sub=WAL" - pattern: "java.lang:type=Memory" - pattern: "java.lang:type=GarbageCollector,name=.*" - 启动 JMX Exporter 作为 Java Agent(示例为 Master,RegionServer 类似,仅更换 JMX 端口与进程名):
说明:将 JMX Exporter 端口(示例 9404)与 HBase 进程的 JMX 端口(Master 16010、RegionServer 16020)区分开,Exporter 通过 JMX 远程连接 HBase。java -javaagent:/opt/prometheus/jmx_prometheus_javaagent-< ver> .jar=9404:/opt/prometheus/hbase_jmx_config.yml \ -cp $HBASE_HOME/lib/*:$HBASE_HOME/conf \ org.apache.hadoop.hbase.master.HMaster start
- 下载 jmx_exporter(版本号按需选择),在 /opt/prometheus/ 解压,创建 HBase 专用配置 /opt/prometheus/hbase_jmx_config.yml(示例抓取 Master 与 RegionServer 常用 MBean):
- 配置 Prometheus 抓取
- 编辑 prometheus.yml,新增 job(示例抓取 Master 与两台 RegionServer):
scrape_configs: - job_name: 'hbase-master' static_configs: - targets: ['master.example.com:9404'] - job_name: 'hbase-regionserver' static_configs: - targets: ['rs1.example.com:9404','rs2.example.com:9404']
- 编辑 prometheus.yml,新增 job(示例抓取 Master 与两台 RegionServer):
- Grafana 告警规则示例
- 在 Prometheus 中创建规则文件 hbase.rules.yml(示例阈值可按需调整):
groups: - name: hbase rules: - alert: HBaseMasterDown expr: up{ job="hbase-master"} == 0 for: 1m labels: severity: critical annotations: summary: "HBase Master 不可用" description: "HBase Master { { $labels.instance } } 已宕机超过 1 分钟。" - alert: HBaseRegionServerDown expr: up{ job="hbase-regionserver"} == 0 for: 1m labels: severity: critical annotations: summary: "HBase RegionServer 不可用" description: "RegionServer { { $labels.instance } } 已宕机超过 1 分钟。" - alert: HBaseMemstoreUsageHigh expr: (1 - (hadoop_hbase_RegionServer_MemStoreMemoryUsage{ } /hadoop_hbase_RegionServer_MemStoreLimit)) < 0.2 for: 5m labels: severity: warning annotations: summary: "MemStore 使用率过高" description: "RegionServer { { $labels.instance } } MemStore 剩余不足 20%." - alert: HBaseRPCLatencyHigh expr: rate(hadoop_hbase_RegionServer_RPCQueueTime_num_ops[5m]) / rate(hadoop_hbase_RegionServer_RPCQueueTime_sum[5m]) > 1 for: 5m labels: severity: warning annotations: summary: "RPC 队列时间过长" description: "RegionServer { { $labels.instance } } 5 分钟平均 RPC 队列时间 > 1s." - Grafana 添加 Prometheus 数据源,导入 HBase 仪表盘(社区有现成面板),并在 Alerting → Alert rules 中加载上述规则,配置 Notification channels(如 Email、企业微信、钉钉、Webhook)。
- 在 Prometheus 中创建规则文件 hbase.rules.yml(示例阈值可按需调整):
三 方案二 Zabbix 告警
- 部署 Zabbix Agent
- 安装 Zabbix Agent(Debian 10/11 示例):
wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-4+debian11_all.deb sudo dpkg -i zabbix-release_6.0-4+debian11_all.deb sudo apt update & & sudo apt install -y zabbix-agent sudo systemctl enable --now zabbix-agent
- 安装 Zabbix Agent(Debian 10/11 示例):
- 自定义监控项
- 方式 A(推荐):使用 JMX Exporter + Zabbix JMX Discovery,自动发现 HBase 进程与指标。
- 方式 B:编写脚本采集 HBase Shell 或 REST/Thrift 状态,输出为 Zabbix 键值。示例脚本 /usr/local/bin/hbase_status.sh:
在 /etc/zabbix/zabbix_agentd.conf 增加:#!/usr/bin/env bash echo "simple" | hbase shell -n 2> /dev/null | grep -E '^\d+ live servers' | awk '{ print $1} '
重启 Zabbix Agent:sudo systemctl restart zabbix-agentUserParameter=hbase.live_servers,/usr/local/bin/hbase_status.sh
- 前端配置
- 在 Zabbix 前端创建 监控项(键值:hbase.live_servers,类型:Zabbix Agent),创建 触发器(如 hbase.live_servers 小于 1 触发严重告警),并配置 动作(邮件/企业微信/钉钉/Webhook 通知)。
四 关键告警规则与阈值建议
- 服务可用性
- HBase Master 不可用(Master JMX/进程探测失败,连续 1–2 分钟)。
- RegionServer 不可用(任一 RS JMX/进程探测失败,连续 1–2 分钟)。
- 资源与性能
- MemStore 使用率过高(剩余不足 20%,持续 5 分钟)。
- BlockCache 命中率过低(低于 80%,持续 5 分钟)。
- RPC 延迟过高(平均队列/处理时间 > 1s,持续 5 分钟)。
- Region 分布不均(各 RS 的 Region 数量差异超过 30%,持续 10 分钟)。
- 存储与写入
- StoreFile 数量/大小异常增长(短期增幅 > 50%)。
- Compaction 积压(队列长度 > 10,持续 10 分钟)。
- 依赖组件
- HDFS 可用空间不足(剩余 < 20% 或 DataNode 异常)。
- ZooKeeper 会话异常/不可用(四字命令 stat 失败或连接超时)。
五 快速验证与排错
- 连通性与指标
- 访问 http://:16010/master-status 确认 UI 正常。
- 使用 JConsole 连接 :16010/16020 验证 JMX 暴露的指标。
- 访问 http://:9404/metrics 确认 JMX Exporter 已输出指标;在 Prometheus Targets 页面检查 UP 状态。
- 日志与依赖
- 查看 $HBASE_HOME/logs/hbase-*.log 是否有 OutOfMemoryError、GC 超时、RegionServer 频繁重启 等异常。
- 使用 echo stat | nc zk1 2181 检查 ZooKeeper 状态;使用 hdfs dfsadmin -report 检查 HDFS 健康。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Debian上配置HBase监控告警
本文地址: https://pptw.com/jishu/762719.html
