一、HBase自帶監控工具
http://<master-host>:16010/master-status
,可查看集群整體狀態(如健康度、RegionServer數量)、Region分布及各RegionServer的負載詳情(CPU、內存占用);每個RegionServer還有獨立的UI(http://<regionserver-host>:16030
),用于監控其本地指標。status 'detailed'
查看集群詳細狀態(包括RegionServer的線程數、請求處理數);describe 'table_name'
查看表的Schema及存儲屬性;list_regions 'table_name'
查看表的Region分布情況;compaction_state
監控Compaction任務的執行狀態。jconsole
或curl http://<master-host>:16010/jmx
查看;也可配置Metrics Sink將指標輸出到文件(如hadoop-metrics2-hbase.properties
中設置*.sink.file.class=org.apache.hadoop.metrics2.sink.FileSink
)。二、第三方監控工具(常用組合)
prometheus.yml
添加HBase Exporter作為數據源(scrape_configs
中配置HBase Exporter的地址);② 部署HBase Exporter(需編譯或下載二進制文件,配置hbase-site.xml
路徑),用于將HBase Metrics轉換為Prometheus可采集的格式;③ 部署Grafana,添加Prometheus作為數據源,導入HBase監控面板(如官方或社區提供的hbase-grafana-dashboard.json
),展示MemStore使用率、BlockCache命中率等關鍵指標;④ 配置Alertmanager(Prometheus組件),設置告警規則(如hbase_regionserver_memStoreSize / hbase_regionserver_memStoreLimit > 0.8
表示MemStore即將滿),并通過郵件、Slack等方式發送通知。zabbix_agentd.conf
,添加HBase監控項(如UserParameter=hbase.regionserver.memstore.size[*], curl -s http://localhost:16010/jmx?qry=Hadoop:service=HBase,name=RegionServer,sub=Server&attr=memStoreSize
);③ 在Zabbix Web端創建主機(HBase Master/RegionServer),關聯HBase模板(如Template App HBase
),設置觸發器(如{HBase:regionserver.memstore.size.avg(5m)}>0.8
),觸發告警。check_hbase.py
插件(可從GitHub獲?。?;② 修改Nagios配置文件(services.cfg
),添加HBase服務檢查(如check_command check_hbase_regionserver!/var/log/hbase/regionserver.log
);③ 設置告警閾值(如RegionServer CPU使用率超過80%),通過郵件或短信通知管理員。三、日志告警配置
/var/log/hbase/
),解析日志中的關鍵字(如ERROR
、WARN
);② 將解析后的日志存儲到Elasticsearch;③ 通過Kibana創建Dashboard展示日志趨勢,并設置告警規則(如ERROR
日志數量在1分鐘內超過10條),通過郵件或釘釘發送通知。四、關鍵監控指標與閾值設置
hbase_regionserver_memStoreSize / hbase_regionserver_memStoreLimit
,閾值建議≤0.8)、BlockCache命中率(hbase_regionserver_blockCacheHitCount / (hbase_regionserver_blockCacheHitCount + hbase_regionserver_blockCacheMissCount)
,閾值建議≥0.85);hbase.regionserver.handler.count
,閾值建議≤100ms/請求)、Compaction隊列長度(hbase.regionserver.compactionQueueLength
,閾值建議≤100);hbase.regionserver.totalHFiles
,閾值建議≤10萬)、存儲空間使用率(hbase.regionserver.storeFileSize / hbase.regionserver.totalStorage
,閾值建議≤80%);hbase.master.balancer.movesExecuted
,閾值建議≤10次/分鐘)、Region分裂次數(hbase.regionserver.regionSplitCount
,閾值建議≤5次/小時)。