
# HetuEngine日志介绍
在MRS集群运维和问题排查中，管理员和开发人员需要查看组件日志来定位故障原因、监控系统运行状态和审计用户操作行为。HetuEngine作为MRS集群中的高性能交互式分析引擎，提供完整的日志体系覆盖安装启停、运行状态、接口调用、健康检查、审计操作等多个维度。了解HetuEngine的日志存储路径、归档规则、日志级别和日志格式，有助于快速获取关键信息进行故障定位和安全审计。本文介绍HetuEngine日志的存储路径、归档规则、日志级别和日志格式说明。
- **运行日志**：记录HetuEngine内部组件在运行过程中产生的各类事件日志，如服务启停、接口调用、计算实例执行等，用于问题排查和性能分析。
- **审计日志**：记录用户对HetuEngine执行的操作行为，如登录、查询、数据访问授权等，用于安全审计和合规追溯。
#### 日志描述
**日志存储路径：**
HetuEngine的日志保存路径为"/var/log/Bigdata/hetuengine/"和"/var/log/Bigdata/audit/hetuengine/"。
**日志归档规则**：
日志归档规则采用FixedWindowRollingPolicy策略，可配置项为单个文件最大值、日志归档的最大保留数目，具体规则如下：
- 当单个文件超过默认单个文件最大值时，就会生成一个新的归档压缩文件，归档后的日志压缩文件命名规则为*\<* *原有日志名\>* .*\[* *编号\]*.log.gz。
- 日志删除规则：
  - 运行日志中的HetuEngine计算实例运行日志压缩文件总大小达到最大值时会删除最旧的日志文件。 HetuEngine计算实例的运行日志会同步到HDFS，且默认保留30天（log.clean.task.expire-time.day），归档路径为：hdfs://hacluster/hetuserverhistory/*租户*/coordinator。
    
  
  - 其他日志归档文件数目达到最大值时，或压缩文件总大小达到最大值时会删除最旧的日志文件。
   
 
审计日志默认单个文件最大值为30MB，日志归档文件最大数目为20。
运行日志默认单个文件最大值为100MB，日志归档文件最大数目为20，其中HetuEngine计算实例运行日志单个文件最大值为100MB，归档在HDFS上的日志默认保留30天。
如果需要修改实例的运行日志或审计日志的单个文件最大值或者日志归档文件最大数目，请执行如下操作：
1. 登录MRS集群Manager。 
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"集群 \> 服务 \> HetuEngine \> 配置 \> 全部配置"。
3. 在参数列表中查看日志级别的参数，搜索"logback.xml"，可以看到HSBroker、HSConsole、HSFabric、QAS当前的运行日志和审计日志的配置。 
   ![](https://support.huaweicloud.com/cmpntguide-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   HetuEngine计算实例运行日志相关参数：
   - log.clean.task.enabled：是否开启计算实例日志自动定时清理。
   
   - log.clean.task.expire-time.day：计算实例日志归档在HDFS的过期时间，默认值：30天。
   
   - log.max-history：计算实例日志在本地的最大保留时间，默认值：7天。
   
   - log.clean.task.schedule.plan：自动清理计算实例日志的调度计划。值为cron表达式，此处仅允许指定一天中固定的触发时间。
   
   - log.max-size：HetuEngine计算实例单个日志文件的最大值，默认值：100MB。
   
   - log.max-total-size：HetuEngine计算实例日志压缩文件总体最大值，默认值：5GB。
    
   
   
4. 选择要修改的配置项进行修改。
5. 单击"保存"，然后单击"确定"，成功后等待大约30秒，配置自动生效。
表1HetuEngine日志列表 
| 日志类别                                      | 日志文件名                                                                                                                         | 描述                                     |
|:---|:---|:---|
| 安装启停日志                                    | prestart.log                                                                                                                  | 启动前预处理脚本日志。                            |
| 安装启停日志                                    | start.log                                                                                                                     | 启动日志。                                  |
| 安装启停日志                                    | stop.log                                                                                                                      | 停止日志。                                  |
| 安装启停日志                                    | postinstall.log                                                                                                               | 安装日志。                                  |
| 运行日志                                      | *实例名*.log                                                                                                                     | 运行日志。                                  |
| 运行日志                                      | *实例名*_wsf.log                                                                                                                 | 接口参数校验日志。                              |
| 运行日志                                      | hdfs://hacluster/hetuserverhistory/*租户* /coordinator或worker/*application_ID* /*container_ID/* *yyyyMMdd*/server.log           | HetuEngine计算实例的运行日志。                   |
| 状态检查日志  | service_check.log                                                                                                             | 健康检查日志。                                |
| 状态检查日志  | service_getstate.log                                                                                                          | 状态检查日志。                                |
| 状态检查日志  | availability-check.log                                                                                                        | HetuEngine服务是否可用状态检查日志。                |
| 状态检查日志  | haCheck.log                                                                                                                   | QAS检查高可用状态打印的日志。                       |
| 审计日志                                      | *实例名*-audit.log                                                                                                               | 审计日志。                                  |
| 审计日志                                      | hsbroker-audit.log                                                                                                            | HSBroker操作的审计日志。                       |
| 审计日志                                      | hsconsole-audit.log                                                                                                           | HSConsole操作的审计日志。                      |
| 审计日志                                      | hsfabric-audit.log                                                                                                            | HetuEngine跨域查询操作的审计日志。                 |
| 审计日志                                      | hdfs://hacluster/hetuserverhistory/*租户* /coordinator/*application_ID* /*container_ID* /*yyyyMMdd*/hetuserver-engine-audit.log | HetuEngine计算实例的审计日志。                   |
| queryInfo日志                               | hdfs://hacluster/hetuserverhistory/*租户* /coordinator/*application_ID* /*container_ID* /*yyyyMMdd*/queryinfo.log               | HetuEngine计算实例的queryInfo日志，SQL运行的统计信息。 |
| 清理日志                                      | cleanup.log                                                                                                                   | 清理脚本日志。                                |
| 初始化日志                                     | hetupg.log                                                                                                                    | 元数据初始化日志。                              |
| 初始化日志                                     | ranger-trino-plugin-enable.log                                                                                                | Ranger插件集成到HetuEngine内核的操作日志。          |
| 客户端日志                                     | qas_client.log                                                                                                                | QAS实例ZooKeeper客户端日志。                   |
| 堆栈信息日志                                    | threadDump-\<*DATE*\>.log                                                                                                     | 实例重启或实例停止时会打印。                         |
| 其他                                        | hetu-updateKrb5.log                                                                                                           | 部署Hive集群更换域后，Hive数据源配置自动刷新时打印的日志。      |
| 其他                                        | hetu_utils.log                                                                                                                | 启动时预处理脚本调用工具类上传文件到HDFS时打印的日志。          |
   
#### 日志级别
HetuEngine中提供了如[表2]所示的日志级别。日志级别优先级从高到低分别是OFF、ERROR、WARN、INFO、DEBUG。程序会打印高于或等于所设置级别的日志，设置的日志等级越高，打印出来的日志就越少。
 表2日志级别 
| **级别** | **描述**                  |
|:---|:---|
| OFF    | OFF表示不记录日志。             |
| ERROR  | ERROR表示记录当前时间处理存在错误信息。  |
| WARN   | WARN表示记录当前事件处理存在异常信息。   |
| INFO   | INFO表示记录系统及各事件正常运行状态信息。 |
| DEBUG  | DEBUG表示记录系统及系统的调试信息。    |
   
如果您需要修改实例的运行日志或审计日志级别，请执行如下操作：
1. 登录MRS集群Manager。 
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"集群 \> 服务 \> HetuEngine \> 配置 \> 全部配置"。
3. 在参数列表中查看日志级别的参数，搜索"logback.xml"，可以看到HSBroker、HSConsole、HSFabric当前的运行日志和审计日志的级别。
4. 选择所需修改的日志级别。
5. 单击"保存"，然后单击"确定"，成功后等待大约30秒，配置自动生效。
如果需要修改HetuEngine Coordinator/Worker日志级别，请执行如下操作：
1. 登录MRS集群Manager。 
   登录集群Manager具体操作，请参考[访问MRS集群Manager](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0128.html)。
   
   
2. 选择"集群 \> 服务 \> HetuEngine \> 配置 \> 全部配置"。
3. 在参数列表中查看日志级别的参数，搜索"log.properties"，可以看到当前的日志级别。
4. 选择所需修改的日志级别。
5. 单击"保存"，然后单击"确定"，等待操作成功。
6. 选择"集群 \> 服务 \> HetuEngine \> 实例"，单击角色列表的HSBroker实例，选择"更多 \> 重启实例"。
7. 待HSBroker实例重启后，选择"集群 \> 服务 \> HetuEngine"，在"概览"页面单击"HSConsole WebUI"后的链接，进入计算实例界面。
8. 选择待重启的计算实例，单击"停止"，待全部实例停止后，再单击"启动"重新启动计算实例。
**验证操作：**
修改日志级别后，通过客户端执行查询语句触发日志记录，检查对应日志文件中的日志输出级别是否与设置一致（如设置为WARN后日志中不再出现INFO级别信息），则表示日志级别修改生效。
#### 日志格式
HetuEngine的日志格式如下所示：
表3日志格式 
| 日志类型 | 格式                                                                                              | 示例                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| 运行日志 | 日期 \| 日志级别 \| 线程名 \| 消息内容 \| 日志事件的发生位置                                                          | 2024-05-22 06:03:35,696 \| INFO \| main \| Construct zooKeeper helper finished. \| com.xxx.hetuserver.hsbroker.core.zookeeper.ZooKeeperClient (ZooKeeperClient.java:312)                                                                                                                                                       |
| 审计日志 | 日期 \| 日志级别 \| 线程名 \| UserName=用户名称 UserIP=用户IP Time=事件时间 Operation=操作内容 Result=操作结果 Detail=具体信息 | 2024-05-22 14:12:24,967 \| INFO \| https-jsse-nio-192.168.43.244-29860-exec-10 \| UserName=hetuserver/hadoop.eef78bf6_bce3_47ff_b808_ec90ae6f6a2a.com@EEF78BF6_BCE3_47FF_B808_EC90AE6F6A2A.COM UserIP=192.168.43.244 Time=2024-05-22 14:12:24 Operation=Login stmt={kerberos login} Result=SUCCESS Detail=SUCCESS \| audit xxx |
   
#### 常见问题
- **如何下载HetuEngine日志**
  了解如何下载MRS集群日志，请参考[下载MRS集群日志](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0267.html)。也可以直接通过SSH登录Master节点，使用文件传输工具（如WinSCP）下载本地日志文件。对于HDFS上的计算实例日志，可使用**hdfs**命令下载或通过HDFS Web界面查看。
  
- **日志文件数量过多占用磁盘空间**
  当业务负载较高或日志级别设置为DEBUG时，日志文件增长速度加快，归档文件数量和大小可能达到配置上限，系统会自动删除最旧归档以释放空间，但如果磁盘容量本身较小仍可能出现空间不足。
  可以通过修改日志参数调整归档文件最大值和保留数目，减小归档文件单个文件大小和总大小。同时将日志级别调整为INFO或WARN，减少非必要的日志输出。定期将历史日志归档到外部存储（如OBS）以长期保存。
  
- **修改日志级别后计算实例未生效**
  修改HetuEngine Coordinator/Worker的日志级别后，需要重启HSBroker实例和计算实例才能使新级别生效。仅保存配置而不重启实例，新级别不会在运行时环境中应用。
  修改日志级别后，请重启HSBroker实例，并停止后再启动所有计算实例，使新日志级别在所有组件中生效。
  
 
#### 相关文档
- 如需在Manager在线检索HDFS或者其他组件日志，请参考[在线检索MRS集群日志](https://support.huaweicloud.com/usermanual-mrs/admin_guide_000074.html)。
- 了解如何下载MRS集群日志，请参考[下载MRS集群日志](https://support.huaweicloud.com/usermanual-mrs/mrs_01_0267.html)。
- 如需查看组件各角色实例的日志内容并下载指定日志文件，请参考[查看MRS组件角色实例日志](https://support.huaweicloud.com/usermanual-mrs/mrs_01_300080.html)。
 
