Skip to content

Commit 66d9d31

Browse files
authored
Filter NAP logs by Severity (#1169)
1 parent 6cc0bda commit 66d9d31

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

internal/collector/otel_collector_plugin.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,24 @@ func (oc *Collector) updateNginxAppProtectTcplogReceivers(nginxConfigContext *mo
554554
oc.config.Collector.Receivers.TcplogReceivers["nginx_app_protect"] = &config.TcplogReceiver{
555555
ListenAddress: nginxConfigContext.NAPSysLogServer,
556556
Operators: []config.Operator{
557+
// regex captures the priority number from the log line
558+
{
559+
Type: "regex_parser",
560+
Fields: map[string]string{
561+
"regex": "^<(?P<priority>\\d+)>",
562+
"parse_from": "body",
563+
"parse_to": "attributes",
564+
},
565+
},
566+
// filter drops all logs that have a severity above 4
567+
// https://docs.secureauth.com/0902/en/how-to-read-a-syslog-message.html#severity-code-table
568+
{
569+
Type: "filter",
570+
Fields: map[string]string{
571+
"expr": "'int(attributes.priority) % 8 > 4'",
572+
"drop_ratio": "1.0",
573+
},
574+
},
557575
{
558576
Type: "add",
559577
Fields: map[string]string{

internal/collector/otel_collector_plugin_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -749,7 +749,7 @@ func TestCollector_updateNginxAppProtectTcplogReceivers(t *testing.T) {
749749
assert.True(tt, tcplogReceiverAdded)
750750
assert.Len(tt, conf.Collector.Receivers.TcplogReceivers, 1)
751751
assert.Equal(tt, "localhost:151", conf.Collector.Receivers.TcplogReceivers["nginx_app_protect"].ListenAddress)
752-
assert.Len(tt, conf.Collector.Receivers.TcplogReceivers["nginx_app_protect"].Operators, 4)
752+
assert.Len(tt, conf.Collector.Receivers.TcplogReceivers["nginx_app_protect"].Operators, 6)
753753
})
754754

755755
// Calling updateNginxAppProtectTcplogReceivers shouldn't update the TcplogReceivers slice
@@ -759,7 +759,7 @@ func TestCollector_updateNginxAppProtectTcplogReceivers(t *testing.T) {
759759
assert.False(t, tcplogReceiverAdded)
760760
assert.Len(t, conf.Collector.Receivers.TcplogReceivers, 1)
761761
assert.Equal(t, "localhost:151", conf.Collector.Receivers.TcplogReceivers["nginx_app_protect"].ListenAddress)
762-
assert.Len(t, conf.Collector.Receivers.TcplogReceivers["nginx_app_protect"].Operators, 4)
762+
assert.Len(t, conf.Collector.Receivers.TcplogReceivers["nginx_app_protect"].Operators, 6)
763763
})
764764

765765
t.Run("Test 3: TcplogReceiver deleted", func(tt *testing.T) {
@@ -778,7 +778,7 @@ func TestCollector_updateNginxAppProtectTcplogReceivers(t *testing.T) {
778778
assert.True(t, tcplogReceiverDeleted)
779779
assert.Len(t, conf.Collector.Receivers.TcplogReceivers, 1)
780780
assert.Equal(t, "localhost:152", conf.Collector.Receivers.TcplogReceivers["nginx_app_protect"].ListenAddress)
781-
assert.Len(t, conf.Collector.Receivers.TcplogReceivers["nginx_app_protect"].Operators, 4)
781+
assert.Len(t, conf.Collector.Receivers.TcplogReceivers["nginx_app_protect"].Operators, 6)
782782
})
783783
}
784784

internal/collector/otelcol.tmpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,7 @@ service:
296296
receivers:
297297
{{- range $receiver := $pipeline.Receivers }}
298298
{{- if eq $receiver "tcplog/nginx_app_protect" }}
299-
- tcplog/nginx_app_protect:
299+
- tcplog/nginx_app_protect
300300
{{- else }}
301301
- {{ $receiver }}
302302
{{- end }}

0 commit comments

Comments
 (0)