一、HBase自带监控工具(基础监控)
HBase自带Web界面和Shell命令,适合日常快速查看集群状态,无需额外安装工具。
http://master-node:16010/master-status(默认端口16010),可查看集群整体状态、RegionServer列表、Region分布、表详细信息(如行数、存储占用)及Metrics指标(如读写延迟、QPS)。hbase shell进入命令行,常用命令包括:
status 'detailed':查看集群详细状态(包括RegionServer健康状况、Region数量);list:列出所有表;describe 'table_name':查看表的Schema及配置;count 'table_name':统计表行数(需指定范围,避免全表扫描)。二、第三方监控工具(专业监控与告警)
第三方工具提供更全面的监控(如历史数据存储、可视化、告警规则)和告警功能,适合生产环境。
hbase-exporter)收集Metrics(支持Prometheus格式),Grafana负责数据可视化,Alertmanager处理告警路由。hbase-exporter(需指定HBase Master地址),暴露/metrics接口;prometheus.yml中添加HBase Exporter作为Job(scrape_configs),并引用告警规则文件(rule_files);hbase_rules.yml(示例:监控节点宕机up{job="hbase"} == 0、RegionServer负载过高hbase_regionserver_server_load > 200),并配置Alertmanager接收者(如邮件、Slack)。gmetad(数据聚合)、ganglia-web(Web界面),在RegionServer节点安装gmond(数据采集);http://master-node/ganglia访问Web界面,查看CPU、内存、磁盘、网络及HBase-specific指标(如RegionServer请求数)。zabbix_agentd.conf,设置Server地址、主机名;UserParameter=hbase.regionserver.load,echo $(hbase shell -n "status 'simple'" | grep "RegionServer" | awk '{print $2}'));check_hbase_regionserver.pl),放置在/usr/local/nagios/libexec/;commands.cfg中定义HBase监控命令(如check_hbase_regionserver),在services.cfg中添加RegionServer监控服务(如检查RegionServer是否存活、读写延迟);三、告警配置要点
up{job="hbase"} == 0)、RegionServer不可用(hbase_regionserver_server_status != 1);hbase_regionserver_read_latency > 1000ms、hbase_regionserver_write_latency > 1000ms)、BlockCache命中率(hbase_regionserver_block_cache_hit_ratio < 80%)、Compaction队列长度(hbase_regionserver_compaction_queue_length > 100);hbase_regionserver_cpu_usage > 80%)、内存使用率(hbase_regionserver_mem_usage > 70%)、磁盘IO使用率(hbase_regionserver_disk_io_usage > 90%)。hbase_rules.yml中定义规则(示例):groups:
- name: hbase_alerts
rules:
- alert: HBaseNodeDown
expr: up{job="hbase"} == 0
for: 1m
labels:
severity: critical
annotations:
summary: "HBase node {{ $labels.instance }} is down"
description: "HBase node {{ $labels.instance }} has been down for more than 1 minute."
- alert: HighRegionServerLoad
expr: hbase_regionserver_server_load > 200
for: 5m
labels:
severity: warning
annotations:
summary: "High load on HBase RegionServer {{ $labels.instance }}"
description: "RegionServer {{ $labels.instance }} load is {{ $value }}, exceeding the threshold of 200."
prometheus.yml中添加rule_files: ["rules/hbase_rules.yml"]。alertmanager.yml中配置接收者(示例:邮件通知):route:
receiver: 'email-notifications'
receivers:
- name: 'email-notifications'
email_configs:
- to: 'admin@example.com'
from: 'alertmanager@example.com'
smarthost: 'smtp.example.com:587'
auth_username: 'user@example.com'
auth_password: 'password'
send_resolved: true
prometheus.yml中添加alerting: alertmanagers: - static_configs: - targets: ['localhost:9093']。四、日志分析与告警(补充手段)
通过监控HBase日志(如hmaster.log、regionserver.log),可发现潜在问题(如Region分裂失败、Compaction异常)。使用ELK Stack(Elasticsearch+Logstash+Kibana)收集、存储日志,配置关键字告警(如“ERROR”“Exception”),当出现异常日志时触发通知。