在 Debian 上监控 HBase 集群的可落地方案
一 监控体系与端口总览
- 建议采用“内置界面 + JMX 指标 + 主机/进程监控 + 可视化告警”的组合方式,覆盖可用性、性能与健康检查。
- 关键访问与健康端口如下(示例端口,按实际配置为准):
| 组件 |
访问方式 |
默认端口 |
主要用途 |
| HBase Master UI |
http://:16010 |
16010 |
集群摘要、负载、Region 分布、运行时指标 |
| RegionServer UI |
http://:16030 |
16030 |
单节点请求、Region 分布、慢查询 |
| HDFS NameNode UI |
http://:50070 |
50070 |
HDFS 容量、块分布、健康 |
| ZooKeeper |
客户端/四字命令 |
2181 |
集群元数据、会话 |
| HBase RPC |
服务端口 |
16000 |
Master RPC |
| RegionServer RPC |
服务端口 |
16020 |
RS RPC |
| HDFS DataNode |
服务端口 |
50010 |
数据读写 |
| HDFS DataNode HTTP |
http://:50075 |
50075 |
DN 状态 |
| HDFS JournalNode |
服务端口 |
8485 |
共享编辑日志 |
| HDFS JournalNode HTTP |
http://:8480 |
8480 |
JN 状态 |
- 如启用防火墙,放行示例端口区间:16000:16030/tcp、2181:2186/tcp、50010:50020/tcp、50070:50075/tcp、60000:60030/tcp。以上端口与访问方式适用于 HBase 2.x 的常用部署。
二 快速检查与内置界面
- HBase Shell 快速巡检
- 连接与状态:/opt/hbase-/bin/hbase shell → 执行 status 查看集群存活与 RegionServer 数量。
- 表与 Region 健康:list、describe ‘
’、scan ‘’, {LIMIT => 10} 排查异常表/Region。
- Web UI 巡检
- Master UI(16010):查看集群 Summary、Servers(负载与 Region 数)、Tables、请求速率、慢 Region/慢 RPC。
- RegionServer UI(16030):逐节点查看 Region 数量与大小、读写延迟、Compaction/Flush 活动、StoreFile 数量与大小。
- Hadoop 生态联动
- HDFS NameNode UI(50070):确认 HBase 根目录(如 /hbase)可用空间、块健康。
- ZooKeeper:四字命令(如 ruok、stat)检查会话与角色健康。
三 基于 JMX 与主机的基础监控
- JMX 暴露 HBase 指标
- 在 HBASE-ENV.SH 中开启 JMX(示例,按需调整):
- export HBASE_JMX_BASE=“-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false”
- export HBASE_MASTER_OPTS=“$HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10101”
- export HBASE_REGIONSERVER_OPTS=“$HBASE_JMX_BASE -Dcom.sun.management.jmxremote.port=10102”
- 使用 JConsole 或 VisualVM 连接上述端口,采集 JVM GC、堆内存、线程、RPC 请求 等关键指标。
- 主机与进程监控
- 进程存活:systemctl 或 jps | grep -E ‘HMaster|HRegionServer’。
- 资源与连通:监控 CPU、内存、磁盘 IO、网络,并对 16010/16030/50070/2181 等端口做连通性探测。
- 日志与告警
- 集中收集 HBase 日志(.log/.out) 与 GC 日志,用 ELK(Logstash/Elasticsearch/Kibana) 建立错误关键字与延迟阈值告警。
四 Prometheus Grafana 与告警落地
- 指标采集
- 方案 A(推荐):使用 JMX Exporter 暴露 HBase JMX 为 Prometheus 指标(每个 Master/RegionServer 部署一个 Exporter,指向 10101/10102)。
- 方案 B:若使用 Ambari 管理集群,可启用其 Metrics 采集并对接 Grafana。
- 可视化与阈值示例
- 在 Grafana 构建面板,覆盖:
- 集群:HMaster/RS 存活数、请求速率、读写延迟 P95/P99。
- Region:每 RS 的 Region 数量与大小、读写请求计数与延迟、MemStore 使用、Compaction/Flush 次数与时长、StoreFile 数量、Split/Merge 活动。
- 存储:HDFS 使用率、剩余空间、块丢失/复制不足。
- 建议阈值(需结合实际容量与 SLA 调优):
- Region 大小超过 10 GB 触发拆分或预分裂规划。
- 单 RS 的 Region 数量 超过节点 CPU 核数的 5–10 倍 时关注热点与负载均衡。
- 读写延迟 P95 持续高于 100–200 ms 或错误率上升时告警。
- MemStore 使用率 接近堆上限(如 > 70–80%)时关注 Flush/Compaction 压力。
- 告警规则示例(Prometheus)
- 节点离线:up{job=“hbase-master”} == 0 或 up{job=“hbase-regionserver”} == 0
- 请求异常:rate(hbase_server_requests_total{type=~“read|write”}[5m]) < 0.1(示例阈值)
- 延迟异常:histogram_quantile(0.95, sum(rate(hbase_server_request_duration_seconds_bucket[5m])) by (le)) > 0.2
- HDFS 容量:1 - (hdfs_capacity_used_bytes / hdfs_capacity_total_bytes) < 0.15
- 可视化与告警工具选择
- Prometheus + Grafana 负责时序指标与可视化;Nagios/Zabbix 负责服务存活与端口/进程可用性;Ambari 适合 Hadoop 生态一体化运维。
五 日常巡检清单与自动化建议
- 每日巡检
- HBase Shell status、关键表 scan/count 抽样、Master/RS UI 检查 请求速率/延迟/慢 Region。
- HDFS UI 检查 容量、块健康、复制因子;ZooKeeper 四字命令健康检查。
- 每周巡检
- Region 均衡(balancer 开关与均衡效果)、Compaction 压力、StoreFile 数量与大小分布。
- GC 日志 与 停顿时间、JVM 堆与非堆使用趋势。
- 自动化与容量规划
- 使用 cron/系统d 定时执行巡检脚本,结合 Prometheus Alertmanager 或 Nagios/Zabbix 推送告警(邮件/企业微信/钉钉)。
- 建立容量阈值与 Region 预分裂 策略,避免热点与大 Region 带来的抖动。