This is an automated email from the ASF dual-hosted git repository.
devesh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 31ec026380 HDDS-11306. OM support system audit log (#7061)
31ec026380 is described below
commit 31ec0263805f9cbc28f5633e4c0b71d1d1be1ea7
Author: Sumit Agrawal <[email protected]>
AuthorDate: Wed Aug 14 10:05:07 2024 +0530
HDDS-11306. OM support system audit log (#7061)
---
.../apache/hadoop/ozone/audit/AuditLoggerType.java | 3 ++-
.../dist/src/shell/conf/om-audit-log4j2.properties | 30 ++++++++++++++++++++--
.../apache/hadoop/ozone/audit/OMSystemAction.java | 21 +++++----------
.../org/apache/hadoop/ozone/om/OzoneManager.java | 19 ++++++++++++++
4 files changed, 56 insertions(+), 17 deletions(-)
diff --git
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLoggerType.java
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLoggerType.java
index d37d22118d..8dec4f4fc3 100644
---
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLoggerType.java
+++
b/hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLoggerType.java
@@ -24,7 +24,8 @@ public enum AuditLoggerType {
DNLOGGER("DNAudit"),
OMLOGGER("OMAudit"),
SCMLOGGER("SCMAudit"),
- S3GLOGGER("S3GAudit");
+ S3GLOGGER("S3GAudit"),
+ OMSYSTEMLOGGER("OMSystemAudit");
private String type;
diff --git a/hadoop-ozone/dist/src/shell/conf/om-audit-log4j2.properties
b/hadoop-ozone/dist/src/shell/conf/om-audit-log4j2.properties
index b9b11bb628..40d02bae2c 100644
--- a/hadoop-ozone/dist/src/shell/conf/om-audit-log4j2.properties
+++ b/hadoop-ozone/dist/src/shell/conf/om-audit-log4j2.properties
@@ -60,7 +60,7 @@ filter.write.onMismatch=NEUTRAL
#appender.console.layout.pattern=%d{DEFAULT} | %-5level | %c{1} | %msg |
%throwable{3} %n
# Comment this line when using both console and rolling appenders
-appenders=rolling
+appenders=rolling,sysrolling
# Rolling File Appender with size & time thresholds.
# Rolling is triggered when either threshold is breached.
@@ -88,13 +88,39 @@
appender.rolling.strategy.delete.ifFileName.glob=om-audit-*.log.gz
appender.rolling.strategy.delete.ifLastModified.type=IfLastModified
appender.rolling.strategy.delete.ifLastModified.age=30d
-loggers=audit
+appender.sysrolling.type=RollingFile
+appender.sysrolling.name=SysRollingFile
+appender.sysrolling.fileName
=${sys:hadoop.log.dir}/om-sys-audit-${hostName}.log
+appender.sysrolling.filePattern=${sys:hadoop.log.dir}/om-sys-audit-${hostName}-%d{yyyy-MM-dd-HH-mm-ss}-%i.log.gz
+appender.sysrolling.layout.type=PatternLayout
+appender.sysrolling.layout.pattern=%d{DEFAULT} | %-5level | %c{1} | %msg |
%throwable{3} %n
+appender.sysrolling.policies.type=Policies
+appender.sysrolling.policies.time.type=TimeBasedTriggeringPolicy
+appender.sysrolling.policies.time.interval=86400
+appender.sysrolling.policies.size.type=SizeBasedTriggeringPolicy
+appender.sysrolling.policies.size.size=64MB
+appender.sysrolling.strategy.type=DefaultRolloverStrategy
+appender.sysrolling.strategy.delete.type=Delete
+appender.sysrolling.strategy.delete.basePath=${sys:hadoop.log.dir}
+appender.sysrolling.strategy.delete.maxDepth=1
+appender.sysrolling.strategy.delete.ifFileName.type=IfFileName
+appender.sysrolling.strategy.delete.ifFileName.glob=om-sys-audit-*.log.gz
+appender.sysrolling.strategy.delete.ifLastModified.type=IfLastModified
+appender.sysrolling.strategy.delete.ifLastModified.age=30d
+
+loggers=audit,sysaudit
logger.audit.type=AsyncLogger
logger.audit.name=OMAudit
logger.audit.level=INFO
logger.audit.appenderRefs=rolling
logger.audit.appenderRef.file.ref=RollingFile
+logger.sysaudit.type=AsyncLogger
+logger.sysaudit.name=OMSystemAudit
+logger.sysaudit.level=INFO
+logger.sysaudit.appenderRefs=sysrolling
+logger.sysaudit.appenderRef.file.ref=SysRollingFile
+
rootLogger.level=INFO
#rootLogger.appenderRefs=stdout
#rootLogger.appenderRef.stdout.ref=STDOUT
diff --git
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLoggerType.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/audit/OMSystemAction.java
similarity index 73%
copy from
hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLoggerType.java
copy to
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/audit/OMSystemAction.java
index d37d22118d..9f5b6ccebc 100644
---
a/hadoop-hdds/framework/src/main/java/org/apache/hadoop/ozone/audit/AuditLoggerType.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/audit/OMSystemAction.java
@@ -18,21 +18,14 @@
package org.apache.hadoop.ozone.audit;
/**
- * Enumeration for defining types of Audit Loggers in Ozone.
+ * Enum to define Audit Action types for system audit in OzoneManager. This
will in addition to OMAction
+ * as present for request.
*/
-public enum AuditLoggerType {
- DNLOGGER("DNAudit"),
- OMLOGGER("OMAudit"),
- SCMLOGGER("SCMAudit"),
- S3GLOGGER("S3GAudit");
+public enum OMSystemAction implements AuditAction {
+ STARTUP;
- private String type;
-
- public String getType() {
- return type;
- }
-
- AuditLoggerType(String type) {
- this.type = type;
+ @Override
+ public String getAction() {
+ return this.toString();
}
}
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
index 03896a042e..9ceb9bb96d 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
@@ -91,6 +91,7 @@ import org.apache.hadoop.hdds.utils.db.Table;
import org.apache.hadoop.hdds.utils.db.Table.KeyValue;
import org.apache.hadoop.hdds.utils.db.TableIterator;
import org.apache.hadoop.ozone.OzoneManagerVersion;
+import org.apache.hadoop.ozone.audit.OMSystemAction;
import org.apache.hadoop.ozone.om.helpers.LeaseKeyInfo;
import org.apache.hadoop.ozone.om.helpers.ListOpenFilesResult;
import org.apache.hadoop.ozone.om.helpers.SnapshotDiffJob;
@@ -351,6 +352,9 @@ public final class OzoneManager extends
ServiceRuntimeInfoImpl
private static final AuditLogger AUDIT = new AuditLogger(
AuditLoggerType.OMLOGGER);
+ private static final AuditLogger SYSTEMAUDIT = new AuditLogger(
+ AuditLoggerType.OMSYSTEMLOGGER);
+
private static final String OM_DAEMON = "om";
// This is set for read requests when OMRequest has S3Authentication set,
@@ -1644,11 +1648,15 @@ public final class OzoneManager extends
ServiceRuntimeInfoImpl
* Start service.
*/
public void start() throws IOException {
+ Map<String, String> auditMap = new HashMap();
+ auditMap.put("OmState", omState.name());
if (omState == State.BOOTSTRAPPING) {
if (isBootstrapping) {
+ auditMap.put("Bootstrap", "normal");
// Check that all OM configs have been updated with the new OM info.
checkConfigBeforeBootstrap();
} else if (isForcedBootstrapping) {
+ auditMap.put("Bootstrap", "force");
LOG.warn("Skipped checking whether existing OM configs have been " +
"updated with this OM information as force bootstrap is called.");
}
@@ -1736,12 +1744,17 @@ public final class OzoneManager extends
ServiceRuntimeInfoImpl
}
omState = State.RUNNING;
+ auditMap.put("NewOmState", omState.name());
+
SYSTEMAUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMSystemAction.STARTUP,
auditMap));
}
/**
* Restarts the service. This method re-initializes the rpc server.
*/
public void restart() throws IOException {
+ Map<String, String> auditMap = new HashMap();
+ auditMap.put("OmState", omState.name());
+ auditMap.put("Trigger", "restart");
setInstanceVariablesFromConf();
LOG.info(buildRpcServerStartMessage("OzoneManager RPC server",
@@ -1808,6 +1821,8 @@ public final class OzoneManager extends
ServiceRuntimeInfoImpl
startJVMPauseMonitor();
setStartTime();
omState = State.RUNNING;
+ auditMap.put("NewOmState", omState.name());
+
SYSTEMAUDIT.logWriteSuccess(buildAuditMessageForSuccess(OMSystemAction.STARTUP,
auditMap));
}
/**
@@ -3037,6 +3052,10 @@ public final class OzoneManager extends
ServiceRuntimeInfoImpl
return AUDIT;
}
+ public AuditLogger getSystemAuditLogger() {
+ return SYSTEMAUDIT;
+ }
+
@Override
public AuditMessage buildAuditMessageForSuccess(AuditAction op,
Map<String, String> auditMap) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]