Skip to content

Commit b00c77d

Browse files
vparfonovopenshift-merge-bot[bot]
authored andcommitted
LOG-7014: fix parsing complex auditd logs for otlp mode
Signed-off-by: Vitalii Parfonov <[email protected]>
1 parent 1b91185 commit b00c77d

File tree

8 files changed

+50
-8
lines changed

8 files changed

+50
-8
lines changed

internal/generator/vector/output/lokistack/lokistack_otel.toml

+7-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,13 @@ if exists(kv.type) {
189189
r.attributes = push(r.attributes, {"key": "auditd.type", "value": {"stringValue": kv.type }})
190190
}
191191
if exists(kv.msg) {
192-
trimmed = slice!(kv.msg, find!(kv.msg, "(") + 1, -2)
192+
msg_str = ""
193+
if is_array(kv.msg) {
194+
msg_str = kv.msg[0]
195+
} else {
196+
msg_str = kv.msg
197+
}
198+
trimmed = slice!(msg_str, find!(msg_str, "(") + 1, -2)
193199
parts = split!(trimmed, ":")
194200
r.attributes = push(r.attributes, {"key": "auditd.sequence", "value": {"stringValue": parts[1] }})
195201
}

internal/generator/vector/output/otlp/otlp_all.toml

+7-1
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,13 @@ if exists(kv.type) {
215215
r.attributes = push(r.attributes, {"key": "auditd.type", "value": {"stringValue": kv.type }})
216216
}
217217
if exists(kv.msg) {
218-
trimmed = slice!(kv.msg, find!(kv.msg, "(") + 1, -2)
218+
msg_str = ""
219+
if is_array(kv.msg) {
220+
msg_str = kv.msg[0]
221+
} else {
222+
msg_str = kv.msg
223+
}
224+
trimmed = slice!(msg_str, find!(msg_str, "(") + 1, -2)
219225
parts = split!(trimmed, ":")
220226
r.attributes = push(r.attributes, {"key": "auditd.sequence", "value": {"stringValue": parts[1] }})
221227
}

internal/generator/vector/output/otlp/otlp_tuning.toml

+7-1
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,13 @@ if exists(kv.type) {
215215
r.attributes = push(r.attributes, {"key": "auditd.type", "value": {"stringValue": kv.type }})
216216
}
217217
if exists(kv.msg) {
218-
trimmed = slice!(kv.msg, find!(kv.msg, "(") + 1, -2)
218+
msg_str = ""
219+
if is_array(kv.msg) {
220+
msg_str = kv.msg[0]
221+
} else {
222+
msg_str = kv.msg
223+
}
224+
trimmed = slice!(msg_str, find!(msg_str, "(") + 1, -2)
219225
parts = split!(trimmed, ":")
220226
r.attributes = push(r.attributes, {"key": "auditd.sequence", "value": {"stringValue": parts[1] }})
221227
}

internal/generator/vector/output/otlp/otlp_with_auth_basic.toml

+7-1
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,13 @@ if exists(kv.type) {
215215
r.attributes = push(r.attributes, {"key": "auditd.type", "value": {"stringValue": kv.type }})
216216
}
217217
if exists(kv.msg) {
218-
trimmed = slice!(kv.msg, find!(kv.msg, "(") + 1, -2)
218+
msg_str = ""
219+
if is_array(kv.msg) {
220+
msg_str = kv.msg[0]
221+
} else {
222+
msg_str = kv.msg
223+
}
224+
trimmed = slice!(msg_str, find!(msg_str, "(") + 1, -2)
219225
parts = split!(trimmed, ":")
220226
r.attributes = push(r.attributes, {"key": "auditd.sequence", "value": {"stringValue": parts[1] }})
221227
}

internal/generator/vector/output/otlp/otlp_with_auth_sa_token.toml

+7-1
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,13 @@ if exists(kv.type) {
215215
r.attributes = push(r.attributes, {"key": "auditd.type", "value": {"stringValue": kv.type }})
216216
}
217217
if exists(kv.msg) {
218-
trimmed = slice!(kv.msg, find!(kv.msg, "(") + 1, -2)
218+
msg_str = ""
219+
if is_array(kv.msg) {
220+
msg_str = kv.msg[0]
221+
} else {
222+
msg_str = kv.msg
223+
}
224+
trimmed = slice!(msg_str, find!(msg_str, "(") + 1, -2)
219225
parts = split!(trimmed, ":")
220226
r.attributes = push(r.attributes, {"key": "auditd.sequence", "value": {"stringValue": parts[1] }})
221227
}

internal/generator/vector/output/otlp/otlp_with_auth_token.toml

+7-1
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,13 @@ if exists(kv.type) {
215215
r.attributes = push(r.attributes, {"key": "auditd.type", "value": {"stringValue": kv.type }})
216216
}
217217
if exists(kv.msg) {
218-
trimmed = slice!(kv.msg, find!(kv.msg, "(") + 1, -2)
218+
msg_str = ""
219+
if is_array(kv.msg) {
220+
msg_str = kv.msg[0]
221+
} else {
222+
msg_str = kv.msg
223+
}
224+
trimmed = slice!(msg_str, find!(msg_str, "(") + 1, -2)
219225
parts = split!(trimmed, ":")
220226
r.attributes = push(r.attributes, {"key": "auditd.sequence", "value": {"stringValue": parts[1] }})
221227
}

internal/generator/vector/output/otlp/transform.go

+7-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,13 @@ if exists(kv.type) {
110110
r.attributes = push(r.attributes, {"key": "auditd.type", "value": {"stringValue": kv.type }})
111111
}
112112
if exists(kv.msg) {
113-
trimmed = slice!(kv.msg, find!(kv.msg, "(") + 1, -2)
113+
msg_str = ""
114+
if is_array(kv.msg) {
115+
msg_str = kv.msg[0]
116+
} else {
117+
msg_str = kv.msg
118+
}
119+
trimmed = slice!(msg_str, find!(msg_str, "(") + 1, -2)
114120
parts = split!(trimmed, ":")
115121
r.attributes = push(r.attributes, {"key": "auditd.sequence", "value": {"stringValue": parts[1] }})
116122
}

test/framework/functional/factory.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func NewKubeAuditLog(eventTime time.Time) string {
2121

2222
func NewAuditHostLog(eventTime time.Time) string {
2323
now := fmt.Sprintf("%.3f", float64(eventTime.UnixNano())/float64(time.Second))
24-
return fmt.Sprintf(`type=DAEMON_START msg=audit(%s:2914): op=start ver=3.0 format=enriched kernel=4.18.0-240.15.1.el8_3.x86_64 auid=4294967295 pid=1396 uid=0 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=successAUID="unset" UID="root"`, now)
24+
return fmt.Sprintf(`type=DAEMON_START msg=audit(%s:2914): op=start ver=3.0 format=enriched kernel=4.18.0-240.15.1.el8_3.x86_64 auid=4294967295 pid=1396 uid=0 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=successAUID="unset" UID="root" msg="PAM:authentication"`, now)
2525
}
2626
func NewOVNAuditLog(eventTime time.Time) string {
2727
now := CRIOTime(eventTime)

0 commit comments

Comments
 (0)