Hadoop日誌按天分割和開啓審計日誌

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章