首页主机资讯如何在Debian上配置HBase监控告警

如何在Debian上配置HBase监控告警

时间2025-12-03 20:25:04发布访客分类主机资讯浏览1303
导读:在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 端口与进程名):
      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 端口(示例 9404)与 HBase 进程的 JMX 端口(Master 16010、RegionServer 16020)区分开,Exporter 通过 JMX 远程连接 HBase。
  • 配置 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']
      
  • 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)。

三 方案二 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
      
  • 自定义监控项
    • 方式 A(推荐):使用 JMX Exporter + Zabbix JMX Discovery,自动发现 HBase 进程与指标。
    • 方式 B:编写脚本采集 HBase Shell 或 REST/Thrift 状态,输出为 Zabbix 键值。示例脚本 /usr/local/bin/hbase_status.sh
      #!/usr/bin/env bash
      echo "simple" | hbase shell -n 2>
      /dev/null | grep -E '^\d+ live servers' | awk '{
      print $1}
          '
      
      /etc/zabbix/zabbix_agentd.conf 增加:
      UserParameter=hbase.live_servers,/usr/local/bin/hbase_status.sh
      
      重启 Zabbix Agent:sudo systemctl restart zabbix-agent
  • 前端配置
    • 在 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
Debian HBase版本兼容性问题有哪些 如何在Debian上优化HBase存储

游客 回复需填写必要信息