diff --git a/docs/reference/auditbeat/add-nomad-metadata.md b/docs/reference/auditbeat/add-nomad-metadata.md index 97af88cc5e21..563d4a1c4b3c 100644 --- a/docs/reference/auditbeat/add-nomad-metadata.md +++ b/docs/reference/auditbeat/add-nomad-metadata.md @@ -85,7 +85,7 @@ Indexers and matchers are used to correlate fields in events with actual metadat Indexers use allocation metadata to create unique identifiers for each one of the pods. -Avaliable indexers are: +Available indexers are: `allocation_name` : Identifies allocations by its name and namespace (as `/`) diff --git a/docs/reference/auditbeat/configuration-ssl.md b/docs/reference/auditbeat/configuration-ssl.md index 81ee2a336364..9577d6911d40 100644 --- a/docs/reference/auditbeat/configuration-ssl.md +++ b/docs/reference/auditbeat/configuration-ssl.md @@ -266,7 +266,7 @@ Controls the verification of server certificates. Valid values are: ### `ca_trusted_fingerprint` [ca_trusted_fingerprint] -A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normaly. +A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normally. To get the fingerprint from a CA certificate on a Unix-like system, you can use the following command, where `ca.crt` is the certificate. diff --git a/docs/reference/filebeat/add-nomad-metadata.md b/docs/reference/filebeat/add-nomad-metadata.md index c77edee3b43c..2997e543ee3a 100644 --- a/docs/reference/filebeat/add-nomad-metadata.md +++ b/docs/reference/filebeat/add-nomad-metadata.md @@ -85,7 +85,7 @@ Indexers and matchers are used to correlate fields in events with actual metadat Indexers use allocation metadata to create unique identifiers for each one of the pods. -Avaliable indexers are: +Available indexers are: `allocation_name` : Identifies allocations by its name and namespace (as `/`) diff --git a/docs/reference/filebeat/configuration-ssl.md b/docs/reference/filebeat/configuration-ssl.md index 669be314cee7..9be334e98e6d 100644 --- a/docs/reference/filebeat/configuration-ssl.md +++ b/docs/reference/filebeat/configuration-ssl.md @@ -266,7 +266,7 @@ Controls the verification of server certificates. Valid values are: ### `ca_trusted_fingerprint` [ca_trusted_fingerprint] -A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normaly. +A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normally. To get the fingerprint from a CA certificate on a Unix-like system, you can use the following command, where `ca.crt` is the certificate. diff --git a/docs/reference/filebeat/filebeat-input-container.md b/docs/reference/filebeat/filebeat-input-container.md index bbc24ea58ca1..f51d4cc9b65c 100644 --- a/docs/reference/filebeat/filebeat-input-container.md +++ b/docs/reference/filebeat/filebeat-input-container.md @@ -120,7 +120,7 @@ Valid encodings: * `ebcdic-1040`: IBM CodePage 1140 * `ebcdic-1047`: IBM CodePage 1047 * `koi8r`: KOI8-R, Russian (Cyrillic) -* `koi8u`: KOI8-U, Ukranian (Cyrillic) +* `koi8u`: KOI8-U, Ukrainian (Cyrillic) * `macintosh`: Macintosh encoding * `macintosh-cyrillic`: Macintosh Cyrillic encoding * `windows1250`: Windows1250, Central and Eastern European diff --git a/docs/reference/filebeat/filebeat-input-filestream.md b/docs/reference/filebeat/filebeat-input-filestream.md index 5c09bbdf9ab8..d9366af941ae 100644 --- a/docs/reference/filebeat/filebeat-input-filestream.md +++ b/docs/reference/filebeat/filebeat-input-filestream.md @@ -950,7 +950,7 @@ Valid encodings: * `ebcdic-1040`: IBM CodePage 1140 * `ebcdic-1047`: IBM CodePage 1047 * `koi8r`: KOI8-R, Russian (Cyrillic) -* `koi8u`: KOI8-U, Ukranian (Cyrillic) +* `koi8u`: KOI8-U, Ukrainian (Cyrillic) * `macintosh`: Macintosh encoding * `macintosh-cyrillic`: Macintosh Cyrillic encoding * `windows1250`: Windows1250, Central and Eastern European diff --git a/docs/reference/filebeat/filebeat-input-log.md b/docs/reference/filebeat/filebeat-input-log.md index 245ec0e00e38..7f35e3d2281e 100644 --- a/docs/reference/filebeat/filebeat-input-log.md +++ b/docs/reference/filebeat/filebeat-input-log.md @@ -158,7 +158,7 @@ Valid encodings: * `ebcdic-1040`: IBM CodePage 1140 * `ebcdic-1047`: IBM CodePage 1047 * `koi8r`: KOI8-R, Russian (Cyrillic) -* `koi8u`: KOI8-U, Ukranian (Cyrillic) +* `koi8u`: KOI8-U, Ukrainian (Cyrillic) * `macintosh`: Macintosh encoding * `macintosh-cyrillic`: Macintosh Cyrillic encoding * `windows1250`: Windows1250, Central and Eastern European diff --git a/docs/reference/filebeat/filebeat-input-stdin.md b/docs/reference/filebeat/filebeat-input-stdin.md index 822da21e5a1f..f48c6ba44568 100644 --- a/docs/reference/filebeat/filebeat-input-stdin.md +++ b/docs/reference/filebeat/filebeat-input-stdin.md @@ -67,7 +67,7 @@ Valid encodings: * `ebcdic-1040`: IBM CodePage 1140 * `ebcdic-1047`: IBM CodePage 1047 * `koi8r`: KOI8-R, Russian (Cyrillic) -* `koi8u`: KOI8-U, Ukranian (Cyrillic) +* `koi8u`: KOI8-U, Ukrainian (Cyrillic) * `macintosh`: Macintosh encoding * `macintosh-cyrillic`: Macintosh Cyrillic encoding * `windows1250`: Windows1250, Central and Eastern European diff --git a/docs/reference/heartbeat/add-nomad-metadata.md b/docs/reference/heartbeat/add-nomad-metadata.md index 76f5c1951003..f114587e693d 100644 --- a/docs/reference/heartbeat/add-nomad-metadata.md +++ b/docs/reference/heartbeat/add-nomad-metadata.md @@ -85,7 +85,7 @@ Indexers and matchers are used to correlate fields in events with actual metadat Indexers use allocation metadata to create unique identifiers for each one of the pods. -Avaliable indexers are: +Available indexers are: `allocation_name` : Identifies allocations by its name and namespace (as `/`) diff --git a/docs/reference/heartbeat/configuration-ssl.md b/docs/reference/heartbeat/configuration-ssl.md index d09d44ec6f9f..94e19377a776 100644 --- a/docs/reference/heartbeat/configuration-ssl.md +++ b/docs/reference/heartbeat/configuration-ssl.md @@ -279,7 +279,7 @@ Controls the verification of server certificates. Valid values are: ### `ca_trusted_fingerprint` [ca_trusted_fingerprint] -A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normaly. +A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normally. To get the fingerprint from a CA certificate on a Unix-like system, you can use the following command, where `ca.crt` is the certificate. diff --git a/docs/reference/metricbeat/add-nomad-metadata.md b/docs/reference/metricbeat/add-nomad-metadata.md index 712fd982dd66..05dff9f90a83 100644 --- a/docs/reference/metricbeat/add-nomad-metadata.md +++ b/docs/reference/metricbeat/add-nomad-metadata.md @@ -85,7 +85,7 @@ Indexers and matchers are used to correlate fields in events with actual metadat Indexers use allocation metadata to create unique identifiers for each one of the pods. -Avaliable indexers are: +Available indexers are: `allocation_name` : Identifies allocations by its name and namespace (as `/`) diff --git a/docs/reference/metricbeat/configuration-ssl.md b/docs/reference/metricbeat/configuration-ssl.md index 9033d6c21b36..e6f63f25b0a5 100644 --- a/docs/reference/metricbeat/configuration-ssl.md +++ b/docs/reference/metricbeat/configuration-ssl.md @@ -281,7 +281,7 @@ Controls the verification of server certificates. Valid values are: ### `ca_trusted_fingerprint` [ca_trusted_fingerprint] -A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normaly. +A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normally. To get the fingerprint from a CA certificate on a Unix-like system, you can use the following command, where `ca.crt` is the certificate. diff --git a/docs/reference/metricbeat/exported-fields-system.md b/docs/reference/metricbeat/exported-fields-system.md index 583f2991ab42..554c120e4547 100644 --- a/docs/reference/metricbeat/exported-fields-system.md +++ b/docs/reference/metricbeat/exported-fields-system.md @@ -179,31 +179,31 @@ Process metrics. **`system.core.model_number`** -: CPU model number. Only availabe on Linux +: CPU model number. Only available on Linux type: keyword **`system.core.model_name`** -: CPU model name. Only availabe on Linux +: CPU model name. Only available on Linux type: keyword **`system.core.mhz`** -: CPU core current clock. Only availabe on Linux +: CPU core current clock. Only available on Linux type: float **`system.core.core_id`** -: CPU physical core ID. One core might might execute multiple threads, hence more than one `system.core.id` can share the same `system.core.core_id`. Only availabe on Linux +: CPU physical core ID. One core might execute multiple threads, hence more than one `system.core.id` can share the same `system.core.core_id`. Only available on Linux type: keyword **`system.core.physical_id`** -: CPU core physical ID. Only availabe on Linux +: CPU core physical ID. Only available on Linux type: keyword @@ -1569,7 +1569,7 @@ Memory limits and metrics. **`system.process.cgroup.memory.mem.low.bytes`** -: memory low threshhold +: memory low threshold type: long @@ -1577,7 +1577,7 @@ Memory limits and metrics. **`system.process.cgroup.memory.mem.high.bytes`** -: memory high threshhold +: memory high threshold type: long @@ -1585,7 +1585,7 @@ Memory limits and metrics. **`system.process.cgroup.memory.mem.max.bytes`** -: memory max threshhold +: memory max threshold type: long @@ -1657,7 +1657,7 @@ number of times the controller tripped a given usage level **`system.process.cgroup.memory.memsw.low.bytes`** -: memory low threshhold +: memory low threshold type: long @@ -1665,7 +1665,7 @@ number of times the controller tripped a given usage level **`system.process.cgroup.memory.memsw.high.bytes`** -: memory high threshhold +: memory high threshold type: long @@ -1673,7 +1673,7 @@ number of times the controller tripped a given usage level **`system.process.cgroup.memory.memsw.max.bytes`** -: memory max threshhold +: memory max threshold type: long diff --git a/docs/reference/packetbeat/add-nomad-metadata.md b/docs/reference/packetbeat/add-nomad-metadata.md index f2678c994447..b3aa477ce78a 100644 --- a/docs/reference/packetbeat/add-nomad-metadata.md +++ b/docs/reference/packetbeat/add-nomad-metadata.md @@ -85,7 +85,7 @@ Indexers and matchers are used to correlate fields in events with actual metadat Indexers use allocation metadata to create unique identifiers for each one of the pods. -Avaliable indexers are: +Available indexers are: `allocation_name` : Identifies allocations by its name and namespace (as `/`) diff --git a/docs/reference/packetbeat/configuration-ssl.md b/docs/reference/packetbeat/configuration-ssl.md index f005aa7b8779..3b74ff48d6c7 100644 --- a/docs/reference/packetbeat/configuration-ssl.md +++ b/docs/reference/packetbeat/configuration-ssl.md @@ -266,7 +266,7 @@ Controls the verification of server certificates. Valid values are: ### `ca_trusted_fingerprint` [ca_trusted_fingerprint] -A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normaly. +A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normally. To get the fingerprint from a CA certificate on a Unix-like system, you can use the following command, where `ca.crt` is the certificate. diff --git a/docs/reference/winlogbeat/add-nomad-metadata.md b/docs/reference/winlogbeat/add-nomad-metadata.md index 34ce7a124c20..65ba2a59685a 100644 --- a/docs/reference/winlogbeat/add-nomad-metadata.md +++ b/docs/reference/winlogbeat/add-nomad-metadata.md @@ -85,7 +85,7 @@ Indexers and matchers are used to correlate fields in events with actual metadat Indexers use allocation metadata to create unique identifiers for each one of the pods. -Avaliable indexers are: +Available indexers are: `allocation_name` : Identifies allocations by its name and namespace (as `/`) diff --git a/docs/reference/winlogbeat/configuration-ssl.md b/docs/reference/winlogbeat/configuration-ssl.md index bcbfb6c72ce1..f60e05c3527c 100644 --- a/docs/reference/winlogbeat/configuration-ssl.md +++ b/docs/reference/winlogbeat/configuration-ssl.md @@ -266,7 +266,7 @@ Controls the verification of server certificates. Valid values are: ### `ca_trusted_fingerprint` [ca_trusted_fingerprint] -A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normaly. +A HEX encoded SHA-256 of a CA certificate. If this certificate is present in the chain during the handshake, it will be added to the `certificate_authorities` list and the handshake will continue normally. To get the fingerprint from a CA certificate on a Unix-like system, you can use the following command, where `ca.crt` is the certificate. diff --git a/filebeat/processor/add_kubernetes_metadata/matchers.go b/filebeat/processor/add_kubernetes_metadata/matchers.go index 222fd46897f2..ab2c0ced5fd3 100644 --- a/filebeat/processor/add_kubernetes_metadata/matchers.go +++ b/filebeat/processor/add_kubernetes_metadata/matchers.go @@ -88,7 +88,11 @@ func (f *LogPathMatcher) MetadataIndex(event mapstr.M) string { return "" } - source := value.(string) + source, ok := value.(string) + if !ok { + f.logger.Debugf("log.file.path is not a string: %T", value) + return "" + } f.logger.Debugf("Incoming log.file.path value: %s", source) if !strings.Contains(source, f.LogsPath) { @@ -128,7 +132,7 @@ func (f *LogPathMatcher) MetadataIndex(event mapstr.M) string { } } - f.logger.Error("Error extracting pod uid - source value does not contains matcher's logs_path") + f.logger.Error("Error extracting pod UID - source value does not contain matcher's logs_path") return "" } } else { diff --git a/filebeat/processor/add_kubernetes_metadata/matchers_test.go b/filebeat/processor/add_kubernetes_metadata/matchers_test.go index e1b816fca970..f44df6c64d56 100644 --- a/filebeat/processor/add_kubernetes_metadata/matchers_test.go +++ b/filebeat/processor/add_kubernetes_metadata/matchers_test.go @@ -24,6 +24,7 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" conf "github.com/elastic/elastic-agent-libs/config" "github.com/elastic/elastic-agent-libs/logp/logptest" @@ -126,6 +127,26 @@ func TestLogsPathMatcher_InvalidSource4(t *testing.T) { executeTestWithResourceType(t, cfgLogsPath, cfgResourceType, source, expectedResult) } +func TestLogsPathMatcher_NonStringLogPath(t *testing.T) { + testConfig := conf.NewConfig() + + logger, observedLogs := logptest.NewTestingLoggerWithObserver(t, "") + logMatcher, err := newLogsPathMatcher(*testConfig, logger) + assert.NoError(t, err) + + input := mapstr.M{ + "log": mapstr.M{ + "file": mapstr.M{ + "path": 42, + }, + }, + } + output := logMatcher.MetadataIndex(input) + + assert.Empty(t, output) + assert.Len(t, observedLogs.FilterMessageSnippet("log.file.path is not a string: int").TakeAll(), 1) +} + func TestLogsPathMatcher_InvalidVarLogPodSource(t *testing.T) { cfgLogsPath := "/var/log/pods/" cfgResourceType := "pod" @@ -164,6 +185,32 @@ func TestLogsPathMatcher_InvalidVarLogPodIDFormat(t *testing.T) { executeTestWithResourceType(t, cfgLogsPath, cfgResourceType, source, expectedResult) } +func TestLogsPathMatcher_InvalidVarLogPodIDFormat_LogsPodUIDError(t *testing.T) { + cfgLogsPath := "/var/log/pods/" + cfgResourceType := "pod" + source := fmt.Sprintf("/var/log/pods/%s/container/0.log", puid) + + testConfig := conf.NewConfig() + require.NoError(t, testConfig.SetString("logs_path", -1, cfgLogsPath)) + require.NoError(t, testConfig.SetString("resource_type", -1, cfgResourceType)) + + logger, observedLogs := logptest.NewTestingLoggerWithObserver(t, "") + logMatcher, err := newLogsPathMatcher(*testConfig, logger) + assert.NoError(t, err) + + input := mapstr.M{ + "log": mapstr.M{ + "file": mapstr.M{ + "path": source, + }, + }, + } + output := logMatcher.MetadataIndex(input) + + assert.Empty(t, output) + assert.Len(t, observedLogs.FilterMessageSnippet("Error extracting pod UID - source value does not contain matcher's logs_path").TakeAll(), 1) +} + func TestLogsPathMatcher_ValidVarLogPod(t *testing.T) { cfgLogsPath := "/var/log/pods/" cfgResourceType := "pod" @@ -185,11 +232,11 @@ func executeTest(t *testing.T, cfgLogsPath string, source string, expectedResult func executeTestWithResourceType(t *testing.T, cfgLogsPath string, cfgResourceType string, source string, expectedResult string) { testConfig := conf.NewConfig() if cfgLogsPath != "" { - testConfig.SetString("logs_path", -1, cfgLogsPath) + require.NoError(t, testConfig.SetString("logs_path", -1, cfgLogsPath)) } if cfgResourceType != "" { - testConfig.SetString("resource_type", -1, cfgResourceType) + require.NoError(t, testConfig.SetString("resource_type", -1, cfgResourceType)) } logMatcher, err := newLogsPathMatcher(*testConfig, logptest.NewTestingLogger(t, "")) diff --git a/metricbeat/module/system/core/_meta/fields.yml b/metricbeat/module/system/core/_meta/fields.yml index eb94c8add414..f6fbd44dbbe9 100644 --- a/metricbeat/module/system/core/_meta/fields.yml +++ b/metricbeat/module/system/core/_meta/fields.yml @@ -111,25 +111,25 @@ - name: model_number type: keyword description: > - CPU model number. Only availabe on Linux + CPU model number. Only available on Linux - name: model_name type: keyword description: > - CPU model name. Only availabe on Linux + CPU model name. Only available on Linux - name: mhz type: float description: > - CPU core current clock. Only availabe on Linux + CPU core current clock. Only available on Linux - name: core_id type: keyword description: > - CPU physical core ID. One core might might execute multiple threads, hence more than - one `system.core.id` can share the same `system.core.core_id`. Only availabe on Linux + CPU physical core ID. One core might execute multiple threads, hence more than + one `system.core.id` can share the same `system.core.core_id`. Only available on Linux - name: physical_id type: keyword description: > - CPU core physical ID. Only availabe on Linux + CPU core physical ID. Only available on Linux diff --git a/metricbeat/module/system/fields.go b/metricbeat/module/system/fields.go index 58fe5543be58..b7291e371355 100644 --- a/metricbeat/module/system/fields.go +++ b/metricbeat/module/system/fields.go @@ -32,5 +32,5 @@ func init() { // AssetSystem returns asset data. // This is the base64 encoded zlib format compressed contents of module/system. func AssetSystem() string { - return "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" + return "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" } diff --git a/metricbeat/module/system/process/_meta/fields.yml b/metricbeat/module/system/process/_meta/fields.yml index ec3121b305f6..8b80af9d4947 100644 --- a/metricbeat/module/system/process/_meta/fields.yml +++ b/metricbeat/module/system/process/_meta/fields.yml @@ -454,15 +454,15 @@ - name: mem.low.bytes type: long format: bytes - description: memory low threshhold + description: memory low threshold - name: mem.high.bytes type: long format: bytes - description: memory high threshhold + description: memory high threshold - name: mem.max.bytes type: long format: bytes - description: memory max threshhold + description: memory max threshold - name: mem.events type: group @@ -512,15 +512,15 @@ - name: memsw.low.bytes type: long format: bytes - description: memory low threshhold + description: memory low threshold - name: memsw.high.bytes type: long format: bytes - description: memory high threshhold + description: memory high threshold - name: memsw.max.bytes type: long format: bytes - description: memory max threshhold + description: memory max threshold - name: memsw.failures type: long diff --git a/x-pack/libbeat/processors/add_nomad_metadata/docs/add_nomad_metadata.asciidoc b/x-pack/libbeat/processors/add_nomad_metadata/docs/add_nomad_metadata.asciidoc index b9c471628e13..931fe9de3141 100644 --- a/x-pack/libbeat/processors/add_nomad_metadata/docs/add_nomad_metadata.asciidoc +++ b/x-pack/libbeat/processors/add_nomad_metadata/docs/add_nomad_metadata.asciidoc @@ -86,7 +86,7 @@ in each event. Indexers use allocation metadata to create unique identifiers for each one of the pods. -Avaliable indexers are: +Available indexers are: `allocation_name`:: Identifies allocations by its name and namespace (as `/`) `allocation_uuid`:: Identifies allocations by its unique identifier.