diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index f849cb688466..0918ea65f701 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -48,6 +48,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha1...master[Check the HEAD d - Fix installation of haproxy dashboard. {issue}9307[9307] {pull}9313[9313] - Don't generate incomplete configurations when logs collection is disabled by hints. {pull}9305[9305] - Stop runners disabled by hints after previously being started. {pull}9305[9305] +- Use a separate field for source port on network inputs. {pull}9460[9460] *Heartbeat* diff --git a/dev-tools/ecs-migration.yml b/dev-tools/ecs-migration.yml index 40e33fc1ef8e..54ea2ffcf0e7 100644 --- a/dev-tools/ecs-migration.yml +++ b/dev-tools/ecs-migration.yml @@ -29,7 +29,7 @@ alias: true - from: source - to: ["log.file.path", "log.source.ip"] + to: ["log.file.path", "log.source.ip", "log.source.port"] alias: false - from: beat.name diff --git a/filebeat/_meta/fields.common.yml b/filebeat/_meta/fields.common.yml index 288e42531a0f..d975212da7ca 100644 --- a/filebeat/_meta/fields.common.yml +++ b/filebeat/_meta/fields.common.yml @@ -17,6 +17,12 @@ description: > Source IP from which the log event was read / sent from. + - name: log.source.port + type: long + required: false + description: > + Source port from which the log event was read / sent from. + - name: log.offset type: long required: false diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index c80741bcc34f..ee2c1165666e 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -4709,6 +4709,18 @@ required: False Source IP from which the log event was read / sent from. +-- + +*`log.source.port`*:: ++ +-- +type: long + +required: False + +Source port from which the log event was read / sent from. + + -- *`log.offset`*:: diff --git a/filebeat/include/fields.go b/filebeat/include/fields.go index 429c913091d5..083b52091b43 100644 --- a/filebeat/include/fields.go +++ b/filebeat/include/fields.go @@ -31,5 +31,5 @@ func init() { // Asset returns asset data func Asset() string { - return "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" + return "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" } diff --git a/filebeat/input/syslog/input.go b/filebeat/input/syslog/input.go index 4d348512cb39..54529c3c87c3 100644 --- a/filebeat/input/syslog/input.go +++ b/filebeat/input/syslog/input.go @@ -18,6 +18,7 @@ package syslog import ( + "net" "strings" "sync" "time" @@ -201,14 +202,18 @@ func (p *Input) Wait() { } func createEvent(ev *event, metadata inputsource.NetworkMetadata, timezone *time.Location, log *logp.Logger) *beat.Event { + remoteHost, remotePort, _ := net.SplitHostPort(metadata.RemoteAddr.String()) f := common.MapStr{ "message": strings.TrimRight(ev.Message(), "\n"), "log": common.MapStr{ "source": common.MapStr{ - "ip": metadata.RemoteAddr.String(), + "ip": remoteHost, }, }, } + if remotePort != "" { + f.Put("log.source.port", remotePort) + } syslog := common.MapStr{} event := common.MapStr{} diff --git a/filebeat/input/tcp/input.go b/filebeat/input/tcp/input.go index 38700961f1c3..1c47ed34a7a2 100644 --- a/filebeat/input/tcp/input.go +++ b/filebeat/input/tcp/input.go @@ -19,6 +19,7 @@ package tcp import ( "fmt" + "net" "sync" "time" @@ -126,6 +127,7 @@ func (p *Input) Wait() { } func createEvent(raw []byte, metadata inputsource.NetworkMetadata) *util.Data { + remoteHost, remotePort, _ := net.SplitHostPort(metadata.RemoteAddr.String()) data := util.NewData() data.Event = beat.Event{ Timestamp: time.Now(), @@ -133,10 +135,13 @@ func createEvent(raw []byte, metadata inputsource.NetworkMetadata) *util.Data { "message": string(raw), "log": common.MapStr{ "source": common.MapStr{ - "ip": metadata.RemoteAddr.String(), + "ip": remoteHost, }, }, }, } + if remotePort != "" { + data.Event.Fields.Put("log.source.port", remotePort) + } return data } diff --git a/filebeat/input/udp/input.go b/filebeat/input/udp/input.go index fb3735a849e0..2c9376bd3453 100644 --- a/filebeat/input/udp/input.go +++ b/filebeat/input/udp/input.go @@ -18,6 +18,7 @@ package udp import ( + "net" "sync" "time" @@ -66,6 +67,7 @@ func NewInput( forwarder := harvester.NewForwarder(out) callback := func(data []byte, metadata inputsource.NetworkMetadata) { + remoteHost, remotePort, _ := net.SplitHostPort(metadata.RemoteAddr.String()) e := util.NewData() e.Event = beat.Event{ Timestamp: time.Now(), @@ -76,11 +78,14 @@ func NewInput( "message": string(data), "log": common.MapStr{ "source": common.MapStr{ - "ip": metadata.RemoteAddr.String(), + "ip": remoteHost, }, }, }, } + if remotePort != "" { + e.Event.Fields.Put("log.source.port", remotePort) + } forwarder.Send(e) }