CentOS系統中,HBase日志默認存儲在**$HBASE_HOME/logs**目錄下($HBASE_HOME為HBase安裝根目錄),文件命名規則為hbase-<用戶名>-hbase-<主機名>.log
(如hbase-root-hbase-centos7.log
)。此外,部分系統日志可能同步到/var/log/messages
或/var/log/hbase
目錄。
tail -f
命令跟蹤日志文件的實時更新,例如:tail -f $HBASE_HOME/logs/hbase-root-hbase-centos7.log
grep
命令篩選特定錯誤或關鍵字(如“ERROR”“WARN”),例如:grep "ERROR" $HBASE_HOME/logs/hbase-root-hbase-centos7.log
tail -f /var/log/messages
查看系統級HBase日志。HBase使用Log4j框架管理日志級別,通過修改log4j.properties
文件(位于$HBASE_HOME/conf目錄)調整日志詳細程度。日志級別從低到高依次為:TRACE
(最詳細)> DEBUG
(調試)> INFO
(默認,常規信息)> WARN
(警告)> ERROR
(錯誤)> FATAL
(致命)。
log4j.properties
文件:vi $HBASE_HOME/conf/log4j.properties
rootLogger
配置項(通常位于文件頂部),修改日志級別:# 將INFO改為DEBUG(調試用)或ERROR(生產環境推薦)
log4j.rootLogger=DEBUG, console, file
$HBASE_HOME/bin/stop-hbase.sh
$HBASE_HOME/bin/start-hbase.sh
INFO
或WARN
級別,避免DEBUG
/TRACE
導致日志過多影響性能;org.apache.hadoop.hbase.regionserver
)調整日志級別,可添加如下配置:log4j.logger.org.apache.hadoop.hbase.regionserver=DEBUG
```。
日志輪轉可防止日志文件無限增長占用磁盤空間,HBase通過Log4j的RollingFileAppender實現,默認配置已在log4j.properties
中定義。
# 日志文件路徑(${hbase.rootdir}為HBase根目錄,需替換為實際路徑)
log4j.appender.file.File=${hbase.rootdir}/logs/hbase.log
# 單個日志文件最大大?。ㄈ?0MB)
log4j.appender.file.MaxFileSize=10MB
# 保留的備份文件數量(如10個)
log4j.appender.file.MaxBackupIndex=10
當日志文件達到MaxFileSize
時,會自動重命名為hbase.log.1
、hbase.log.2
等,保留最近的MaxBackupIndex
個文件。
若需更靈活的輪轉策略(如按天輪轉),可通過/etc/logrotate.d/hbase
文件配置。示例配置:
/var/log/hbase/*.log {
daily # 每天輪轉
missingok # 忽略缺失文件
rotate 7 # 保留7天
compress # 壓縮舊日志
delaycompress # 延遲壓縮(避免壓縮當天日志)
notifempty # 空日志不輪轉
sharedscripts # 所有日志輪轉完成后執行腳本
postrotate
/bin/kill -HUP $(cat /var/run/hbase.pid 2>/dev/null) 2>/dev/null || true
endscript
}
配置完成后,logrotate會每天自動執行輪轉。
grep -c "ERROR" $HBASE_HOME/logs/hbase-root-hbase-centos7.log
awk '/2025-09-20/,/2025-09-21/' $HBASE_HOME/logs/hbase-root-hbase-centos7.log
審計日志用于記錄用戶對HBase表的訪問操作(如讀、寫、刪除),需修改hbase-site.xml
配置文件:
<property>
<name>hbase.coprocessor.master.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.coprocessor.region.classes</name>
<value>org.apache.hadoop.hbase.security.access.AccessController</value>
</property>
<property>
<name>hbase.security.authorization</name>
<value>true</value>
</property>
<property>
<name>hbase.audit.log.enabled</name>
<value>true</value>
</property>
<property>
<name>hbase.audit.log.path</name>
<value>${hbase.rootdir}/logs/audit.log</value>
</property>
配置完成后,重啟HBase服務,審計日志將寫入${hbase.rootdir}/logs/audit.log
文件。如需更詳細的審計信息,可創建專門的審計表存儲日志。