Hadoop日誌按天分割和開啓審計日誌
日誌按天分割
hadoop 各個組件默認日誌是大小分割的,到一定大小就分割出 .1 .2 .3 .4這樣的文件,這樣我們在查找問題的時候不是好定位你要的那天日誌在哪個文件中。要是一天一個文件,按照日誌的話就很好定位了。
在這裏介紹一下hadoop按天切分日誌的方法。
方法一 修改變量
hbase
1 2 3 |
hbase-env.sh 添加: export HBASE_ROOT_LOGGER=INFO,DRFA |
hdfs
1 2 3 4 5 |
hadoop-env.sh 修改: export HADOOP_ROOT_LOGGER=INFO,DRFA export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,DRFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,DRFAAUDIT} $HADOOP_NAMENODE_OPTS" export HADOOP_DATANODE_OPTS="-Dhadoop.security.logger=INFO,DRFAS $HADOOP_DATANODE_OPTS" |
yarn
1 2 3 |
yarn-env.sh 添加: export YARN_ROOT_LOGGER=INFO,DRFA |
方法二 修改啓動腳本
hdfs
1 2 3 4 5 6 7 8 |
export HADOOP_ROOT_LOGGER=${HADOOP_ROOT_LOGGER:-"INFO,RFA"} export HADOOP_SECURITY_LOGGER=${HADOOP_SECURITY_LOGGER:-"INFO,RFAS"} export HDFS_AUDIT_LOGGER=${HDFS_AUDIT_LOGGER:-"INFO,NullAppender"} 改爲: export HADOOP_ROOT_LOGGER=${HADOOP_ROOT_LOGGER:-"INFO,DRFA"} #開啓hdfs審計日誌 export HADOOP_SECURITY_LOGGER=${HADOOP_SECURITY_LOGGER:-"INFO,DRFAS"} export HDFS_AUDIT_LOGGER=${HDFS_AUDIT_LOGGER:-"INFO,DRFAAUDIT"} |
yarn
1 2 3 4 |
修改yarn-darmon.sh下面 export YARN_ROOT_LOGGER=${YARN_ROOT_LOGGER:-INFO,RFA} 爲 export YARN_ROOT_LOGGER=${YARN_ROOT_LOGGER:-INFO,DRFA} |
hbase
1 2 3 4 5 6 |
export HBASE_ROOT_LOGGER=${HBASE_ROOT_LOGGER:-"INFO,RFA"} export HBASE_SECURITY_LOGGER=${HBASE_SECURITY_LOGGER:-"INFO,RFAS"} 爲: export HBASE_ROOT_LOGGER=${HBASE_ROOT_LOGGER:-"INFO,DRFA"} export HBASE_SECURITY_LOGGER=${HBASE_SECURITY_LOGGER:-"INFO,DRFAS"}(無法直接修改,log4裏沒有配置,需要添加day日誌配置) |
審計日誌
hdfs 日審計日誌
1 2 3 4 5 6 7 8 9 10 |
hdfs.audit.logger=INFO,console hdfs.audit.log.maxfilesize=256MB hdfs.audit.log.maxbackupindex=20 log4j.logger.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=${hdfs.audit.logger} log4j.additivity.org.apache.hadoop.hdfs.server.namenode.FSNamesystem.audit=false log4j.appender.DRFAAUDIT=org.apache.log4j.DailyRollingFileAppender log4j.appender.DRFAAUDIT.File=${hadoop.log.dir}/hdfs-audit.log log4j.appender.DRFAAUDIT.layout=org.apache.log4j.PatternLayout log4j.appender.DRFAAUDIT.layout.ConversionPattern=%d{ISO8601} %p %c{2}: %m%n log4j.appender.DRFAAUDIT.DatePattern=.yyyy-MM-dd |
hbase的日審計日誌
log4j.properties
1 2 3 4 5 6 7 8 9 10 11 |
hbase.security.log.file=SecurityAuth.audit hbase.security.log.maxfilesize=256MB hbase.security.log.maxbackupindex=20 log4j.category.SecurityLogger=${hbase.security.logger} log4j.appender.DRFAS=org.apache.log4j.DailyRollingFileAppender log4j.appender.DRFAS.File=${hbase.log.dir}/${hbase.security.log.file} log4j.appender.DRFAS.layout=org.apache.log4j.PatternLayout log4j.appender.DRFAS.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n log4j.appender.DRFAS.DatePattern=.yyyy-MM-dd log4j.additivity.SecurityLogger=true log4j.logger.SecurityLogger.org.apache.hadoop.hbase.security.access.AccessController=TRACE |
同時需要配置 hbase-site.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
<property> <name>hbase.rpc.engine</name> <value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value> </property> <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.token.TokenProvider,org.apache.hadoop.hbase.security.access.AccessController</value> </property> <property> <name>hbase.superuser</name> <value>hadoop</value> </property> <property> <name>hbase.security.authorization</name> <value>false</value> <!-- 如果值爲true,默認每個用戶只能訪問當前的表。而之前創建的member表的屬主是HBase,其他用戶對其沒有訪問權限,需要超級用戶爲其賦權 --> </property> |