
# HBase日志介绍
在HBase集群运维和问题排查中，管理员和开发人员需要查看组件日志来定位故障原因、监控系统运行状态和审计用户操作行为。HBase作为MRS集群中的核心NoSQL数据库，提供完整的日志体系覆盖HMaster、RegionServer、ThriftServer、MetricController、RESTServer、PhoenixQueryServer等多个角色的运行日志、审计日志和GC日志。了解HBase的日志存储路径、归档规则、日志级别和日志格式，有助于快速获取关键信息进行故障定位和安全审计。本文介绍HBase日志的存储路径、归档规则、日志级别和日志格式说明。
#### 日志描述
HBase的日志体系按角色（HMaster、RegionServer、ThriftServer、MetricController、RESTServer、PhoenixQueryServer）分别组织，覆盖运行日志、审计日志、GC日志等多个类别。
**日志存储路径** ：HBase相关日志的默认存储路径为"/var/log/Bigdata/hbase/*角色名*"。
- HMaster："/var/log/Bigdata/hbase/hm"（运行日志），"/var/log/Bigdata/audit/hbase/hm"（审计日志）。
- MetricController（MRS 3.3.0-LTS及之后版本）："/var/log/Bigdata/hbase/mc"（运行日志），"/var/log/Bigdata/audit/hbase/mc"（审计日志）。
- RegionServer："/var/log/Bigdata/hbase/rs"（运行日志），"/var/log/Bigdata/audit/hbase/rs"（审计日志）。
- ThriftServer："/var/log/Bigdata/hbase/ts2"（运行日志，ts2为具体实例名称），"/var/log/Bigdata/audit/hbase/ts2"（审计日志，ts2为具体实例名称）。
- PhoenixQueryServer（MRS 3.6.0-LTS及之后版本）："/var/log/Bigdata/hbase/pqs"（运行日志），"/var/log/Bigdata/audit/hbase/pqs"（审计日志）。
**日志归档规则**：HBase的日志启动了自动压缩归档功能，缺省情况下，当日志大小超过30MB的时候，会自动压缩，压缩后的日志文件名规则为："\<原有日志名\>-\<yyyy-mm-dd_hh-mm-ss\>.\[编号\].log.zip"。最多保留最近的20个压缩文件，压缩文件保留个数可以在Manager界面中配置。
表1HBase日志列表 
| 日志类型                   | 日志文件名                                                 | 描述                                                                         | 是否支持Manager在线检索 |
|:---|:---|:---|:---|
| HMaster运行日志            | hbase-\<SSH_USER\>-master-\<hostname\>.log            | HMaster系统日志，主要包括启动时间，启动参数信息以及HMaster系统运行时候所产生的大部分日志。                       | 是               |
| HMaster运行日志            | hbase-\<SSH_USER\>-master-\<hostname\>.out            | HBase运行环境信息日志。                                                             | 否               |
| HMaster运行日志            | master-\<SSH_USER\>-\<DATE\>-\<PID\>-gc.log           | HBase服务垃圾回收日志。                                                             | 是               |
| HMaster运行日志            | checkServiceDetail.log                                | HBase服务启动是否成功的检查日志。                                                        | 是               |
| HMaster运行日志            | hbase.log                                             | HBase服务健康检查脚本以及部分告警检查脚本执行所产生的日志。                                           | 是               |
| HMaster运行日志            | sendAlarm.log                                         | HBase告警检查脚本上报告警信息日志。                                                       | 否               |
| HMaster运行日志            | hbase-switch-hmaster.log                              | HMaster主备状态检测日志。                                                           | 否               |
| HMaster运行日志            | stop.log                                              | HMaster进程启停操作日志。                                                           | 否               |
| HMaster运行日志            | ranger-hbase-plugin-enable.log                        | HBase服务启用或停用Ranger鉴权的日志。                                                   | 是               |
| RegionServer运行日志       | hbase-\<SSH_USER\>-regionserver-\<hostname\>.log      | RegionServer系统日志，主要包括启动时间，启动参数信息以及RegionServer系统运行时候所产生的大部分日志。             | 是               |
| RegionServer运行日志       | hbase-\<SSH_USER\>-regionserver-\<hostname\>.out      | HBase运行环境信息日志。                                                             | 否               |
| RegionServer运行日志       | checkServiceDetail.log                                | HBase服务启动是否成功的检查日志。                                                        | 是               |
| RegionServer运行日志       | hbase.log                                             | HBase服务健康检查脚本以及部分告警检查脚本执行所产生的日志。                                           | 是               |
| RegionServer运行日志       | regionserver-\<SSH_USER\>-\<DATE\>-\<PID\>-gc.log     | HBase服务垃圾回收日志。                                                             | 是               |
| RegionServer运行日志       | hbase-trace.log                                       | RegionServer全链路Trace日志。                                                    | 是               |
| RegionServer运行日志       | rolling-restart-prepare.log                           | HBase服务滚动重启日志。                                                             | 是               |
| RegionServer运行日志       | ranger-hbase-plugin-enable.log                        | HBase服务启用或停用Ranger鉴权的日志。                                                   | 是               |
| RegionServer运行日志       | startDetail.log                                       | RegionServer启动日志。                                                          | 否               |
| RegionServer运行日志       | stopDetail.log                                        | RegionServer停止详细日志信息。                                                      | 否               |
| RegionServer运行日志       | stop.log                                              | RegionServer停止操作日志。                                                        | 否               |
| ThriftServer运行日志       | hbase-\<SSH_USER\>-*thrift*-\<hostname\>.log          | ThriftServer系统日志，主要包括启动时间，启动参数信息以及ThriftServer系统运行时候所产生的大部分日志。             | 是               |
| ThriftServer运行日志       | hbase-\<SSH_USER\>-*thrift*-\<hostname\>.out          | HBase运行环境信息日志。                                                             | 否               |
| ThriftServer运行日志       | *thrift*-\<SSH_USER\>-\<DATE\>-\<PID\>-gc.log         | HBase服务垃圾回收日志。                                                             | 是               |
| ThriftServer运行日志       | checkServiceDetail.log                                | ThriftServer启动是否成功的检查日志。                                                   | 否               |
| ThriftServer运行日志       | hbase.log                                             | HBase服务健康检查脚本以及部分告警检查脚本执行所产生的日志。                                           | 否               |
| ThriftServer运行日志       | ranger-hbase-plugin-enable.log                        | HBase服务启用或停用Ranger鉴权的日志。                                                   | 否               |
| ThriftServer运行日志       | stop.log                                              | ThriftServer进程启停操作日志。                                                      | 否               |
| MetricController运行日志   | hbase-\<SSH_USER\>-metriccontroller-\<hostname\>.log  | MetricController系统日志，主要包括启动时间，启动参数信息以及MetricController系统运行时所产生的大部分日志。      | 是               |
| MetricController运行日志   | hbase-\<SSH_USER\>-metriccontroller-\<hostname\>.out  | HBase运行环境信息日志。                                                             | 否               |
| MetricController运行日志   | ranger-hbase-plugin-enable.log                        | HBase服务启用或停用Ranger鉴权的日志。                                                   | 否               |
| MetricController运行日志   | checkServiceDetail.log                                | MetricController启动是否成功的检查日志。                                               | 是               |
| MetricController运行日志   | hbase.log                                             | HBase服务健康检查脚本以及部分告警检查脚本执行所产生的日志。                                           | 是               |
| MetricController运行日志   | metriccontroller-\<SSH_USER\>-\<DATE\>-\<PID\>-gc.log | HBase服务垃圾回收日志。                                                             | 是               |
| MetricController运行日志   | stop.log                                              | MetricController进程启停操作日志。                                                  | 否               |
| RESTServer运行日志         | checkServiceDetail.log                                | RESTServer启动是否成功的检查日志。                                                     | 否               |
| RESTServer运行日志         | hbase.log                                             | HBase服务健康检查脚本以及部分告警检查脚本执行所产生的日志。                                           | 否               |
| RESTServer运行日志         | hbase-\<SSH_USER\>-rest-\<hostname\>.log              | RESTServer系统日志，主要包括启动时间，启动参数信息以及RESTServer系统运行时候所产生的大部分日志。                 | 是               |
| RESTServer运行日志         | rest-\<SSH_USER\>-\<DATE\>-\<PID\>-gc.log             | HBase服务垃圾回收日志。                                                             | 是               |
| RESTServer运行日志         | ranger-hbase-plugin-enable.log                        | HBase服务启用或停用Ranger鉴权的日志。                                                   | 否               |
| RESTServer运行日志         | hbase-\<SSH_USER\>-rest-\<hostname\>.out              | HBase运行环境信息日志。                                                             | 否               |
| RESTServer运行日志         | stop.log                                              | RESTServer进程启停操作日志。                                                        | 否               |
| PhoenixQueryServer运行日志 | checkServiceDetail.log                                | PhoenixQueryServer启动是否成功的检查日志。                                             | 否               |
| PhoenixQueryServer运行日志 | hbase.log                                             | HBase服务健康检查脚本以及部分告警检查脚本执行所产生的日志。                                           | 否               |
| PhoenixQueryServer运行日志 | hbase-\<SSH_USER\>-phoenixserver-\<hostname\>.log     | PhoenixQueryServer系统日志，主要包括启动时间，启动参数信息以及PhoenixQueryServer系统运行时候所产生的大部分日志。 | 是               |
| PhoenixQueryServer运行日志 | phoenixserver-\<SSH_USER\>-\<DATE\>-\<PID\>-gc.log    | HBase服务垃圾回收日志。                                                             | 是               |
| PhoenixQueryServer运行日志 | ranger-hbase-plugin-enable.log                        | HBase服务启用或停用Ranger鉴权的日志。                                                   | 否               |
| PhoenixQueryServer运行日志 | hbase-\<SSH_USER\>-rest-\<hostname\>.out              | HBase运行环境信息日志。                                                             | 否               |
| PhoenixQueryServer运行日志 | stop.log                                              | PhoenixQueryServer进程启停操作日志。                                                | 否               |
| 审计日志                   | hbase-audit-hmaster.log                               | HMaster安全审计日志。                                                             | 是               |
| 审计日志                   | hbase-audit-regionserver.log                          | RegionServer安全审计日志。                                                        | 是               |
| 审计日志                   | hbase-audit-thriftserver.log                          | ThriftServer安全审计日志。                                                        | 是               |
| 审计日志                   | hbase-audit-metriccontroller.log                      | MetricController安全审计日志。                                                    | 是               |
| 审计日志                   | hbase-audit-restserver.log                            | RESTServer安全审计日志。                                                          | 是               |
| 审计日志                   | hbase-ranger-audit-regionserver.log                   | RegionServer的Ranger插件审计日志。                                                 | 是               |
| 审计日志                   | hbase-ranger-audit-hmaster.log                        | HMaster的Ranger插件审计日志。                                                      | 是               |
   
#### 日志级别
HBase中提供了如[表2]所示的日志级别。日志级别优先级从高到低分别是FATAL、ERROR、WARN、INFO、DEBUG。程序会打印高于或等于所设置级别的日志，设置的日志等级越高，打印出来的日志就越少。
 表2日志级别 
| **级别** | **描述**                                |
|:---|:---|
| FATAL  | FATAL表示当前事件处理出现严重错误信息，可能导致系统崩溃。       |
| ERROR  | ERROR表示当前事件处理出现错误信息，系统运行出错。           |
| WARN   | WARN表示当前事件处理存在异常信息，但认为是正常范围，不会导致系统出错。 |
| INFO   | INFO表示记录系统及各事件正常运行状态信息                |
| DEBUG  | DEBUG表示记录系统及系统的调试信息。                  |
   
如果您需要修改日志级别，请执行如下操作：
1. 登录FusionInsight Manager，选择"集群 \> 服务 \> HBase \> 配置 \> 全部配置"，进入HBase服务参数"全部配置"界面。
2. 左边菜单栏中选择所需修改的角色所对应的日志菜单。
3. 选择所需修改的日志级别。
4. 保存配置，在弹出窗口中单击"确定"使配置生效。 
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   配置完成后立即生效，不需要重启服务。
   
   
**验证操作：**
修改日志级别后，通过客户端执行HBase操作触发日志记录，检查对应日志文件中的日志输出级别是否与设置一致（如设置为WARN后日志中不再出现INFO级别信息），则表示日志级别修改生效。
#### 日志格式
HBase的日志格式如下所示：
表3日志格式 
| 日志类型 | 实例名称         | 格式                                                                                          | 示例                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| 运行日志 | HMaster      | \<yyyy-MM-dd HH:mm:ss,SSS\>\|\<Log Level\>\|\<产生该日志的线程名字\>\|\<log中的message\>\|\<日志事件的发生位置\> | 2020-01-19 16:04:53,558 \| INFO \| main \| env:HBASE_THRIFT_OPTS= \| org.apache.hadoop.hbase.util.ServerCommandLine.logProcessInfo(ServerCommandLine.java:113)                                                       |
| 运行日志 | RegionServer | \<yyyy-MM-dd HH:mm:ss,SSS\>\|\<Log Level\>\|\<产生该日志的线程名字\>\|\<log中的message\>\|\<日志事件的发生位置\> | 2020-01-19 16:05:18,589 \| INFO \| regionserver16020-SendThread(linux-k6da:2181) \| Client will use GSSAPI as SASL mechanism. \| org.apache.zookeeper.client.ZooKeeperSaslClient$1.run(ZooKeeperSaslClient.java:285) |
| 运行日志 | ThriftServer | \<yyyy-MM-dd HH:mm:ss,SSS\>\|\<Log Level\>\|\<产生该日志的线程名字\>\|\<log中的message\>\|\<日志事件的发生位置\> | 2020-02-16 09:42:55,371 \| INFO \| main \| loaded properties from hadoop-metrics2.properties \| org.apache.hadoop.metrics2.impl.MetricsConfig.loadFirst(MetricsConfig.java:111)                                      |
| 审计日志 | HMaster      | \<yyyy-MM-dd HH:mm:ss,SSS\>\|\<Log Level\>\|\<产生该日志的线程名字\>\|\<log中的message\>\|\<日志事件的发生位置\> | 2020-02-16 09:42:40,934 \| INFO \| master:linux-k6da:16000 \| Master: \[master:linux-k6da:16000\] start operation called. \| org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:581)                            |
| 审计日志 | RegionServer | \<yyyy-MM-dd HH:mm:ss,SSS\>\|\<Log Level\>\|\<产生该日志的线程名字\>\|\<log中的message\>\|\<日志事件的发生位置\> | 2020-02-16 09:42:51,063 \| INFO \| main \| RegionServer: \[regionserver16020\] start operation called. \| org.apache.hadoop.hbase.regionserver.HRegionServer.startRegionServer(HRegionServer.java:2396)              |
| 审计日志 | ThriftServer | \<yyyy-MM-dd HH:mm:ss,SSS\>\|\<Log Level\>\|\<产生该日志的线程名字\>\|\<log中的message\>\|\<日志事件的发生位置\> | 2020-02-16 09:42:55,512 \| INFO \| main \| thrift2 server start operation called. \| org.apache.hadoop.hbase.thrift2.ThriftServer.main(ThriftServer.java:421)                                                        |
   
#### 常见问题
- **如何下载HBase日志**
  HBase的运行日志保存在各角色节点的本地目录"/var/log/Bigdata/hbase/"下，审计日志保存在"/var/log/Bigdata/audit/hbase/"目录。直接登录各节点查看日志操作繁琐，且需要分别访问多个节点。
  了解如何下载MRS集群日志，请参考[下载MRS集群日志](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0267.html)。也可以直接通过SSH登录对应节点（HMaster节点、RegionServer节点等），使用文件传输工具（如WinSCP）下载本地日志文件。
  
- **日志文件数量过多占用磁盘空间**
  当业务负载较高或日志级别设置为DEBUG时，日志文件增长速度加快，归档文件数量可能达到20个的上限。虽然系统会自动删除最旧的归档文件，但如果磁盘容量本身较小，仍可能出现空间不足。
  可以通过修改HBase日志参数调整归档文件保留数目，减小归档文件总大小。同时将日志级别调整为INFO或WARN，减少非必要的日志输出。定期将历史日志归档到外部存储（如OBS）以长期保存。
  
- **修改日志级别后未生效**
  HBase日志级别修改后无需重启服务，配置完成后立即生效。如果修改后未生效，可能是操作路径错误或未正确保存配置。
  请确认在Manager的HBase配置页面正确选择了角色对应的日志菜单，并成功保存配置。如仍不生效，请检查是否有多个HBase实例，确认修改的是目标实例的配置。
  
- **如何通过日志排查HBase问题**
  HBase问题排查通常需要查看多个角色的日志，如HMaster日志查看Region分配情况，RegionServer日志查看读写请求处理情况，GC日志查看JVM性能等。
  
 
#### 相关文档
- 了解HBase日志介绍，请参考[HBase日志介绍](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1056.html)。
- 了解HBase常见问题，请参考[HBase常见问题](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_1638.html)。
 
