diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 1fa40b8efca..532b694dab8 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -494,6 +494,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add dashboard for pubsub metricset in googlecloud module. {pull}21326[21326] {issue}17137[17137] - Enrich events of `state_service` metricset with kubernetes services' metadata. {pull}23730[23730] - Check fields are documented in aws metricsets. {pull}23887[23887] +- Enable `journald` input type in Filebeat. {issue}7955[7955] {pull}27351[27351] - Move openmetrics module to oss. {pull}26561[26561] - Fix release state of kubernetes metricsets. {pull}26864[26864] - Add `gke` metricset collection to `gcp` module {pull}26824[26824] diff --git a/NOTICE.txt b/NOTICE.txt index f24dcaead4c..acec5b3c5e2 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -4440,12 +4440,12 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- -Dependency : github.com/dgraph-io/badger/v2 -Version: v2.2007.3-0.20201012072640-f5a7e0a1c83b +Dependency : github.com/dgraph-io/badger/v3 +Version: v3.2103.1 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/dgraph-io/badger/v2@v2.2007.3-0.20201012072640-f5a7e0a1c83b/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/dgraph-io/badger/v3@v3.2103.1/LICENSE: Apache License Version 2.0, January 2004 @@ -9792,11 +9792,11 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/gogo/protobuf -Version: v1.3.1 +Version: v1.3.2 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/gogo/protobuf@v1.3.1/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/gogo/protobuf@v1.3.2/LICENSE: Copyright (c) 2013, The GoGo Authors. All rights reserved. @@ -10311,11 +10311,11 @@ Contents of probable licence file $GOMODCACHE/github.com/gomodule/redigo@v1.8.3/ -------------------------------------------------------------------------------- Dependency : github.com/google/flatbuffers -Version: v1.7.2-0.20170925184458-7a6b2bf521e9 +Version: v1.12.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/google/flatbuffers@v1.7.2-0.20170925184458-7a6b2bf521e9/LICENSE.txt: +Contents of probable licence file $GOMODCACHE/github.com/google/flatbuffers@v1.12.0/LICENSE.txt: Apache License @@ -10506,7 +10506,7 @@ Contents of probable licence file $GOMODCACHE/github.com/google/flatbuffers@v1.7 same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright 2014 Google Inc. + Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -21798,43 +21798,6 @@ Contents of probable licence file $GOMODCACHE/github.com/!burnt!sushi/xgb@v0.0.0 // such litigation is filed. --------------------------------------------------------------------------------- -Dependency : github.com/DataDog/zstd -Version: v1.4.1 -Licence type (autodetected): BSD-3-Clause --------------------------------------------------------------------------------- - -Contents of probable licence file $GOMODCACHE/github.com/!data!dog/zstd@v1.4.1/LICENSE: - -Simplified BSD License - -Copyright (c) 2016, Datadog -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - * Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - -------------------------------------------------------------------------------- Dependency : github.com/Microsoft/hcsshim Version: v0.8.7 @@ -26435,11 +26398,11 @@ SOFTWARE. -------------------------------------------------------------------------------- Dependency : github.com/dgraph-io/ristretto -Version: v0.0.3-0.20200630154024-f66de99634de +Version: v0.1.0 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/dgraph-io/ristretto@v0.0.3-0.20200630154024-f66de99634de/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/dgraph-io/ristretto@v0.1.0/LICENSE: Apache License Version 2.0, January 2004 @@ -29856,12 +29819,12 @@ Contents of probable licence file $GOMODCACHE/github.com/golang-sql/civil@v0.0.0 limitations under the License. -------------------------------------------------------------------------------- -Dependency : github.com/golang/glog -Version: v0.0.0-20160126235308-23def4e6c14b +Dependency : github.com/elastic/glog +Version: v1.0.1-0.20210831205241-7d8b5c89dfc4 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/golang/glog@v0.0.0-20160126235308-23def4e6c14b/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/elastic/glog@v1.0.1-0.20210831205241-7d8b5c89dfc4/LICENSE: Apache License Version 2.0, January 2004 @@ -35929,11 +35892,11 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- Dependency : github.com/kisielk/errcheck -Version: v1.2.0 +Version: v1.5.0 Licence type (autodetected): MIT -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/kisielk/errcheck@v1.2.0/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/kisielk/errcheck@v1.5.0/LICENSE: Copyright (c) 2013 Kamil Kisiel @@ -36003,11 +35966,11 @@ match.go, match_test.go: -------------------------------------------------------------------------------- Dependency : github.com/klauspost/compress -Version: v1.12.2 +Version: v1.12.3 Licence type (autodetected): BSD-3-Clause -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/github.com/klauspost/compress@v1.12.2/LICENSE: +Contents of probable licence file $GOMODCACHE/github.com/klauspost/compress@v1.12.3/LICENSE: Copyright (c) 2012 The Go Authors. All rights reserved. Copyright (c) 2019 Klaus Post. All rights reserved. @@ -41653,11 +41616,11 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI -------------------------------------------------------------------------------- Dependency : go.opencensus.io -Version: v0.22.2 +Version: v0.22.5 Licence type (autodetected): Apache-2.0 -------------------------------------------------------------------------------- -Contents of probable licence file $GOMODCACHE/go.opencensus.io@v0.22.2/LICENSE: +Contents of probable licence file $GOMODCACHE/go.opencensus.io@v0.22.5/LICENSE: Apache License diff --git a/dev-tools/mage/common.go b/dev-tools/mage/common.go index 208ae02d974..f61dd43e03e 100644 --- a/dev-tools/mage/common.go +++ b/dev-tools/mage/common.go @@ -26,6 +26,7 @@ import ( "context" "crypto/sha256" "crypto/sha512" + "debug/elf" "encoding/hex" "encoding/json" "fmt" @@ -38,6 +39,7 @@ import ( "path/filepath" "regexp" "runtime" + "sort" "strconv" "strings" "sync" @@ -913,3 +915,48 @@ func IntegrationTestEnvVars() []string { } return vars } + +// ReadGLIBCRequirement returns the required glibc version for a dynamically +// linked ELF binary. The target machine must have a version equal to or +// greater than (newer) the returned value. +func ReadGLIBCRequirement(elfFile string) (*SemanticVersion, error) { + e, err := elf.Open(elfFile) + if err != nil { + return nil, err + } + + symbols, err := e.DynamicSymbols() + if err != nil { + return nil, err + } + + versionSet := map[SemanticVersion]struct{}{} + for _, sym := range symbols { + if strings.HasPrefix(sym.Version, "GLIBC_") { + semver, err := NewSemanticVersion(strings.TrimPrefix(sym.Version, "GLIBC_")) + if err != nil { + continue + } + + versionSet[*semver] = struct{}{} + } + } + + if len(versionSet) == 0 { + return nil, errors.New("no GLIBC symbols found in binary (is this a static binary?)") + } + + var versions []SemanticVersion + for ver := range versionSet { + versions = append(versions, ver) + } + + sort.Slice(versions, func(i, j int) bool { + a := versions[i] + b := versions[j] + return a.LessThan(&b) + }) + + max := versions[len(versions)-1] + return &max, nil +} diff --git a/dev-tools/mage/crossbuild.go b/dev-tools/mage/crossbuild.go index 10d73c3876c..c2f87784063 100644 --- a/dev-tools/mage/crossbuild.go +++ b/dev-tools/mage/crossbuild.go @@ -129,7 +129,7 @@ type crossBuildParams struct { // CrossBuild executes a given build target once for each target platform. func CrossBuild(options ...CrossBuildOption) error { - params := crossBuildParams{Platforms: Platforms, Target: defaultCrossBuildTarget, ImageSelector: crossBuildImage} + params := crossBuildParams{Platforms: Platforms, Target: defaultCrossBuildTarget, ImageSelector: CrossBuildImage} for _, opt := range options { opt(¶ms) } @@ -193,7 +193,7 @@ func buildMage() error { "-compile", CreateDir(filepath.Join("build", "mage-linux-"+arch))) } -func crossBuildImage(platform string) (string, error) { +func CrossBuildImage(platform string) (string, error) { tagSuffix := "main" switch { diff --git a/dev-tools/mage/pkg.go b/dev-tools/mage/pkg.go index 2341724b350..f4381291cfe 100644 --- a/dev-tools/mage/pkg.go +++ b/dev-tools/mage/pkg.go @@ -21,6 +21,7 @@ import ( "fmt" "log" "os" + "path/filepath" "runtime" "strconv" @@ -242,3 +243,38 @@ func TestPackages(options ...TestPackagesOption) error { return nil } + +// TestLinuxForCentosGLIBC checks the GLIBC requirements of linux/amd64 and +// linux/386 binaries to ensure they meet the requirements for RHEL 6 which has +// glibc 2.12. +func TestLinuxForCentosGLIBC() error { + switch Platform.Name { + case "linux/amd64", "linux/386": + return TestBinaryGLIBCVersion(filepath.Join("build/golang-crossbuild", BeatName+"-linux-"+Platform.GOARCH), "2.12") + default: + return nil + } +} + +func TestBinaryGLIBCVersion(elfPath, maxGlibcVersion string) error { + requiredGlibc, err := ReadGLIBCRequirement(elfPath) + if err != nil { + if errors.Is(err, os.ErrNotExist) { + return nil + } + return err + } + + upperBound, err := NewSemanticVersion(maxGlibcVersion) + if err != nil { + return err + } + + if !requiredGlibc.LessThanOrEqual(upperBound) { + return fmt.Errorf("dynamically linked binary %q requires glibc "+ + "%v, but maximum allowed glibc is %v", + elfPath, requiredGlibc, upperBound) + } + fmt.Printf(">> testBinaryGLIBCVersion: %q requires glibc %v or greater\n", elfPath, requiredGlibc) + return nil +} diff --git a/dev-tools/mage/semver.go b/dev-tools/mage/semver.go new file mode 100644 index 00000000000..22801f5b2af --- /dev/null +++ b/dev-tools/mage/semver.go @@ -0,0 +1,67 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package mage + +import ( + "fmt" + "regexp" + "strconv" +) + +var SemanticVersionRegex = regexp.MustCompile(`(?m)^(\d+)\.(\d+)(?:\.(\d+))?`) + +type SemanticVersion struct { + Major, Minor, Patch int +} + +// NewSemanticVersion return a new SemanticVersion parsed from string in the +// format of 'x.y' or 'x.y.z'. +func NewSemanticVersion(s string) (*SemanticVersion, error) { + matches := SemanticVersionRegex.FindStringSubmatch(s) + if len(matches) < 4 { + return nil, fmt.Errorf("invalid version format %q", s) + } + + major, _ := strconv.Atoi(matches[1]) + Minor, _ := strconv.Atoi(matches[2]) + Patch, _ := strconv.Atoi(matches[3]) + return &SemanticVersion{major, Minor, Patch}, nil +} + +// LessThan return true iff s is less than x. +func (s *SemanticVersion) LessThan(x *SemanticVersion) bool { + if s.Major != x.Major { + return s.Major < x.Major + } + if s.Minor != x.Minor { + return s.Minor < x.Minor + } + return s.Patch < x.Patch +} + +// LessThanOrEqual return true iff s is less than or equal to x. +func (s *SemanticVersion) LessThanOrEqual(x *SemanticVersion) bool { + if s.LessThan(x) { + return true + } + return !x.LessThan(s) +} + +func (s SemanticVersion) String() string { + return fmt.Sprintf("%d.%d.%d", s.Major, s.Minor, s.Patch) +} diff --git a/filebeat/docs/filebeat-options.asciidoc b/filebeat/docs/filebeat-options.asciidoc index 2e609307e67..ec8d8ef2faf 100644 --- a/filebeat/docs/filebeat-options.asciidoc +++ b/filebeat/docs/filebeat-options.asciidoc @@ -72,6 +72,7 @@ You can configure {beatname_uc} to use the following inputs: * <<{beatname_lc}-input-gcp-pubsub>> * <<{beatname_lc}-input-http_endpoint>> * <<{beatname_lc}-input-httpjson>> +* <<{beatname_lc}-input-journald>> * <<{beatname_lc}-input-kafka>> * <<{beatname_lc}-input-log>> * <<{beatname_lc}-input-mqtt>> @@ -106,6 +107,8 @@ include::../../x-pack/filebeat/docs/inputs/input-http-endpoint.asciidoc[] include::../../x-pack/filebeat/docs/inputs/input-httpjson.asciidoc[] +include::inputs/input-journald.asciidoc[] + include::inputs/input-kafka.asciidoc[] include::inputs/input-log.asciidoc[] diff --git a/filebeat/docs/inputs/input-journald.asciidoc b/filebeat/docs/inputs/input-journald.asciidoc new file mode 100644 index 00000000000..0279f768d65 --- /dev/null +++ b/filebeat/docs/inputs/input-journald.asciidoc @@ -0,0 +1,223 @@ +:type: journald + +[id="{beatname_lc}-input-{type}"] +=== Journald input + +++++ +journald +++++ + +https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html[`journald`] +is a system service that collects and stores logging data. The `journald` input +reads this log data and the metadata associated with it. + +The simplest configuration example is one that reads all logs from the default +journal. + +["source","yaml",subs="attributes"] +---- +{beatname_lc}.inputs: +- type: journald + id: everything +---- + +You may wish to have separate inputs for each service. You can use +`include_matches` to specify a list of filter expressions that are applied as a +logical OR. A good way to list the journald fields that are available for +filtering messages is to run `journalctl -o json` to output logs and metadata as +JSON. This example collects logs from the `vault.service` systemd unit. + +["source","yaml",subs="attributes"] +---- +{beatname_lc}.inputs: +- type: journald + id: service-vault + include_matches: + - _SYSTEMD_UNIT=vault.service +---- + +This example collects kernel logs where the message begins with `iptables`. +Note that `include_matches` is more efficient than Beat processors because that +are applied before the data is passed to the {beatname_uc} so prefer them where +possible. + +["source","yaml",subs="attributes"] +---- +{beatname_lc}.inputs: +- type: journald + id: iptables + include_matches: + - _TRANSPORT=kernel + processors: + - drop_event: + when.not.regex.message: '^iptables' +---- + +Each example adds the `id` for the input to ensure the cursor is persisted to +the registry with a unique ID. The ID should be unique among journald inputs. +If you don't specify and `id` then one is created for you by hashing +the configuration. So when you modify the config this will result in a new ID +and a fresh cursor. + +[id="{beatname_lc}-input-{type}-options"] +==== Configuration options + +The `journald` input supports the following configuration options plus the +<<{beatname_lc}-input-{type}-common-options>> described later. + +[float] +[id="{beatname_lc}-input-{type}-id"] +==== `id` + +An optional unique identifier for the input. By providing a unique `id` you can +operate multiple inputs on the same journal. This allows each input's cursor to +be persisted independently in the registry file. + +["source","yaml",subs="attributes"] +---- +{beatname_lc}.inputs: +- type: journald + id: consul.service + include_matches: + - _SYSTEMD_UNIT=consul.service + +- type: journald + id: vault.service + include_matches: + - _SYSTEMD_UNIT=vault.service +---- + +[float] +[id="{beatname_lc}-input-{type}-paths"] +==== `paths` + +A list of paths that will be crawled and fetched. Each path can be a directory +path (to collect events from all journals in a directory), or a file path. If +you specify a directory, {beatname_uc} merges all journals under the directory +into a single journal and reads them. + +If no paths are specified, {beatname_uc} reads from the default journal. + +[float] +[id="{beatname_lc}-input-{type}-backoff"] +==== `backoff` + +The number of seconds to wait before trying to read again from journals. The +default is 1s. + +[float] +[id="{beatname_lc}-input-{type}-max-backoff"] +==== `max_backoff` + +The maximum number of seconds to wait before attempting to read again from +journals. The default is 60s. + +[float] +[id="{beatname_lc}-input-{type}-seek"] +==== `seek` + +The position to start reading the journal from. Valid settings are: + +* `head`: Starts reading at the beginning of the journal. After a restart, +{beatname_uc} resends all log messages in the journal. +* `tail`: Starts reading at the end of the journal. After a restart, +{beatname_uc} resends the last message, which might result in duplicates. If +multiple log messages are written to a journal while {beatname_uc} is down, +only the last log message is sent on restart. +* `cursor`: On first read, starts reading at the beginning of the journal. After +a reload or restart, continues reading at the last known position. + +If you have old log files and want to skip lines, start {beatname_uc} with +`seek: tail` specified. Then stop {beatname_uc}, set `seek: cursor`, and restart +{beatname_uc}. + +[float] +[id="{beatname_lc}-input-{type}-include-matches"] +==== `include_matches` + +A list of filter expressions used to match fields. The format of the expression +is `field=value`. {beatname_uc} fetches all events that exactly match the +expressions. Pattern matching is not supported. + +To reference fields, use one of the following: + +* The field name used by the systemd journal. For example, +`CONTAINER_TAG=redis`. +* The <<{beatname_lc}-input-{type}-translated-fields,translated field name>> +used by {beatname_uc}. For example, `container.image.tag=redis`. {beatname_uc} +does not translate all fields from the journal. For custom fields, use the name +specified in the systemd journal. + +[float] +[id="{beatname_lc}-input-{type}-translated-fields"] +=== Translated field names + +You can use the following translated names in filter expressions to reference +journald fields: + +[horizontal] +*Journald field name*:: *Translated name* +`COREDUMP_UNIT`:: `journald.coredump.unit` +`COREDUMP_USER_UNIT`:: `journald.coredump.user_unit` +`OBJECT_AUDIT_LOGINUID`:: `journald.object.audit.login_uid` +`OBJECT_AUDIT_SESSION`:: `journald.object.audit.session` +`OBJECT_CMDLINE`:: `journald.object.cmd` +`OBJECT_COMM`:: `journald.object.name` +`OBJECT_EXE`:: `journald.object.executable` +`OBJECT_GID`:: `journald.object.gid` +`OBJECT_PID`:: `journald.object.pid` +`OBJECT_SYSTEMD_OWNER_UID`:: `journald.object.systemd.owner_uid` +`OBJECT_SYSTEMD_SESSION`:: `journald.object.systemd.session` +`OBJECT_SYSTEMD_UNIT`:: `journald.object.systemd.unit` +`OBJECT_SYSTEMD_USER_UNIT`:: `journald.object.systemd.user_unit` +`OBJECT_UID`:: `journald.object.uid` +`_AUDIT_LOGINUID`:: `process.audit.login_uid` +`_AUDIT_SESSION`:: `process.audit.session` +`_BOOT_ID`:: `host.boot_id` +`_CAP_EFFECTIVE`:: `process.capabilites` +`_CMDLINE`:: `process.cmd` +`_CODE_FILE`:: `journald.code.file` +`_CODE_FUNC`:: `journald.code.func` +`_CODE_LINE`:: `journald.code.line` +`_COMM`:: `process.name` +`_EXE`:: `process.executable` +`_GID`:: `process.uid` +`_HOSTNAME`:: `host.name` +`_KERNEL_DEVICE`:: `journald.kernel.device` +`_KERNEL_SUBSYSTEM`:: `journald.kernel.subsystem` +`_MACHINE_ID`:: `host.id` +`_MESSAGE`:: `message` +`_PID`:: `process.pid` +`_PRIORITY`:: `syslog.priority` +`_SYSLOG_FACILITY`:: `syslog.facility` +`_SYSLOG_IDENTIFIER`:: `syslog.identifier` +`_SYSLOG_PID`:: `syslog.pid` +`_SYSTEMD_CGROUP`:: `systemd.cgroup` +`_SYSTEMD_INVOCATION_ID`:: `systemd.invocation_id` +`_SYSTEMD_OWNER_UID`:: `systemd.owner_uid` +`_SYSTEMD_SESSION`:: `systemd.session` +`_SYSTEMD_SLICE`:: `systemd.slice` +`_SYSTEMD_UNIT`:: `systemd.unit` +`_SYSTEMD_USER_SLICE`:: `systemd.user_slice` +`_SYSTEMD_USER_UNIT`:: `systemd.user_unit` +`_TRANSPORT`:: `systemd.transport` +`_UDEV_DEVLINK`:: `journald.kernel.device_symlinks` +`_UDEV_DEVNODE`:: `journald.kernel.device_node_path` +`_UDEV_SYSNAME`:: `journald.kernel.device_name` +`_UID`:: `process.uid` + +The following translated fields for +https://docs.docker.com/config/containers/logging/journald/[Docker] are also +available: + +[horizontal] +`CONTAINER_ID`:: `container.id_truncated` +`CONTAINER_ID_FULL`:: `container.id` +`CONTAINER_NAME`:: `container.name` +`CONTAINER_PARTIAL_MESSAGE`:: `container.partial` +`CONTAINER_TAG`:: `container.image.tag` + +[id="{beatname_lc}-input-{type}-common-options"] +include::../inputs/input-common-options.asciidoc[] + +:type!: diff --git a/filebeat/input/default-inputs/inputs_linux.go b/filebeat/input/default-inputs/inputs_linux.go index c2ec4960e92..deaa915b918 100644 --- a/filebeat/input/default-inputs/inputs_linux.go +++ b/filebeat/input/default-inputs/inputs_linux.go @@ -18,6 +18,7 @@ package inputs import ( + "github.com/elastic/beats/v7/filebeat/input/journald" v2 "github.com/elastic/beats/v7/filebeat/input/v2" cursor "github.com/elastic/beats/v7/filebeat/input/v2/input-cursor" "github.com/elastic/beats/v7/libbeat/beat" @@ -31,8 +32,12 @@ type osComponents interface { } func osInputs(info beat.Info, log *logp.Logger, components osComponents) []v2.Plugin { - return []v2.Plugin{ - // XXX: journald is currently disable. - // journald.Plugin(log, components), + var plugins []v2.Plugin + + zeroPlugin := v2.Plugin{} + if journald := journald.Plugin(log, components); journald != zeroPlugin { + plugins = append(plugins, journald) } + + return plugins } diff --git a/filebeat/input/journald/input_stub.go b/filebeat/input/journald/input_stub.go new file mode 100644 index 00000000000..4eada4569c5 --- /dev/null +++ b/filebeat/input/journald/input_stub.go @@ -0,0 +1,30 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// +build !linux !cgo !withjournald + +package journald + +import ( + v2 "github.com/elastic/beats/v7/filebeat/input/v2" + cursor "github.com/elastic/beats/v7/filebeat/input/v2/input-cursor" + "github.com/elastic/beats/v7/libbeat/logp" +) + +func Plugin(log *logp.Logger, store cursor.StateStore) v2.Plugin { + return v2.Plugin{} +} diff --git a/filebeat/input/v2/simplemanager.go b/filebeat/input/v2/simplemanager.go index 76ade85c9f5..5024fcfa3d1 100644 --- a/filebeat/input/v2/simplemanager.go +++ b/filebeat/input/v2/simplemanager.go @@ -33,12 +33,12 @@ func ConfigureWith(fn func(*common.Config) (Input, error)) InputManager { return &simpleInputManager{configure: fn} } -// Init is required to fullfil the input.InputManager interface. +// Init is required to fulfil the input.InputManager interface. // For the kafka input no special initialization is required. func (*simpleInputManager) Init(grp unison.Group, m Mode) error { return nil } -// Creates builds a new Input instance from the given configuation, or returns -// an error if the configuation is invalid. +// Create builds a new Input instance from the given configuration, or returns +// an error if the configuration is invalid. func (manager *simpleInputManager) Create(cfg *common.Config) (Input, error) { return manager.configure(cfg) } diff --git a/filebeat/magefile.go b/filebeat/magefile.go index 9b90cc68d9b..725fcf09718 100644 --- a/filebeat/magefile.go +++ b/filebeat/magefile.go @@ -39,21 +39,6 @@ import ( "github.com/elastic/beats/v7/dev-tools/mage/target/test" ) -// declare journald dependencies for cross build target -var ( - journaldPlatforms = []devtools.PlatformDescription{ - devtools.Linux386, devtools.LinuxAMD64, - devtools.LinuxARM64, devtools.LinuxARM5, devtools.LinuxARM6, devtools.LinuxARM7, - devtools.LinuxMIPS, devtools.LinuxMIPSLE, devtools.LinuxMIPS64LE, - devtools.LinuxPPC64LE, - devtools.LinuxS390x, - } - - journaldDeps = devtools.NewPackageInstaller(). - AddEach(journaldPlatforms, "libsystemd-dev"). - Add(devtools.Linux386, "libsystemd0", "libgcrypt20") -) - func init() { common.RegisterCheckDeps(Update) test.RegisterDeps(IntegTest) @@ -66,13 +51,10 @@ func Build() error { return devtools.Build(devtools.DefaultBuildArgs()) } -// GolangCrossBuild build the Beat binary inside of the golang-builder. +// GolangCrossBuild builds the Beat binary inside the golang-builder. // Do not use directly, use crossBuild instead. func GolangCrossBuild() error { - // XXX: enable once we have systemd available in the cross build image - // mg.Deps(journaldDeps.Installer(devtools.Platform.Name)) - - return devtools.GolangCrossBuild(devtools.DefaultGolangCrossBuildArgs()) + return filebeat.GolangCrossBuild() } // BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon). @@ -82,7 +64,7 @@ func BuildGoDaemon() error { // CrossBuild cross-builds the beat for all target platforms. func CrossBuild() error { - return devtools.CrossBuild() + return filebeat.CrossBuild() } // CrossBuildGoDaemon cross-builds the go-daemon binary using Docker. diff --git a/filebeat/scripts/mage/build.go b/filebeat/scripts/mage/build.go new file mode 100644 index 00000000000..b7786d947c5 --- /dev/null +++ b/filebeat/scripts/mage/build.go @@ -0,0 +1,85 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package mage + +import ( + "strings" + + "github.com/magefile/mage/mg" + "go.uber.org/multierr" + + devtools "github.com/elastic/beats/v7/dev-tools/mage" +) + +// declare journald dependencies for cross build target +var ( + journaldPlatforms = []devtools.PlatformDescription{ + devtools.Linux386, devtools.LinuxAMD64, + devtools.LinuxARM64, devtools.LinuxARM5, devtools.LinuxARM6, devtools.LinuxARM7, + devtools.LinuxMIPS, devtools.LinuxMIPSLE, devtools.LinuxMIPS64LE, + devtools.LinuxPPC64LE, + devtools.LinuxS390x, + } + + journaldDeps = devtools.NewPackageInstaller(). + AddEach(journaldPlatforms, "libsystemd-dev"). + Add(devtools.Linux386, "libsystemd0", "libgcrypt20") +) + +// GolangCrossBuild builds the Beat binary inside the golang-builder and then +// checks the binaries GLIBC requirements for RHEL compatability. +// Do not use directly, use crossBuild instead. +func GolangCrossBuild() error { + return multierr.Combine( + golangCrossBuild(), + // Test the linked glibc version requirement of the binary. + devtools.TestLinuxForCentosGLIBC(), + ) +} + +// golangCrossBuild builds the Beat binary inside the golang-builder. +// Do not use directly, use crossBuild instead. +func golangCrossBuild() error { + conf := devtools.DefaultGolangCrossBuildArgs() + if devtools.Platform.GOOS == "linux" { + mg.Deps(journaldDeps.Installer(devtools.Platform.Name)) + conf.ExtraFlags = append(conf.ExtraFlags, "-tags=withjournald") + } + return devtools.GolangCrossBuild(conf) +} + +// CrossBuild cross-builds the beat for all target platforms. +func CrossBuild() error { + return devtools.CrossBuild(devtools.ImageSelector(func(platform string) (string, error) { + image, err := devtools.CrossBuildImage(platform) + if err != nil { + return "", err + } + // Normally linux/amd64 and linux/386 binaries are build using debian7 + // because it has an older glibc version that makes the binaries work on + // RHEL 6, but debian7 does not have the systemd libraries needed for + // the journald input. + // + // So use the debian8 image, but test the binary to ensure that the + // linked glibc version requirement is still compatible with RHEL6. + if platform == "linux/amd64" || platform == "linux/386" { + image = strings.ReplaceAll(image, "main-debian7", "main-debian8") + } + return image, nil + })) +} diff --git a/go.mod b/go.mod index 565d2e880e3..10efe2a1b9c 100644 --- a/go.mod +++ b/go.mod @@ -45,7 +45,7 @@ require ( github.com/davecgh/go-xdr v0.0.0-20161123171359-e6a2ba005892 // indirect github.com/denisenkom/go-mssqldb v0.0.0-20200206145737-bbfc9a55622e github.com/devigned/tab v0.1.2-0.20190607222403-0c15cf42f9a2 // indirect - github.com/dgraph-io/badger/v2 v2.2007.3-0.20201012072640-f5a7e0a1c83b + github.com/dgraph-io/badger/v3 v3.2103.1 github.com/digitalocean/go-libvirt v0.0.0-20180301200012-6075ea3c39a1 github.com/dlclark/regexp2 v1.1.7-0.20171009020623-7632a260cbaf // indirect github.com/docker/docker v1.4.2-0.20170802015333-8af4db6f002a @@ -86,12 +86,12 @@ require ( github.com/godror/godror v0.10.4 github.com/gofrs/flock v0.7.2-0.20190320160742-5135e617513b github.com/gofrs/uuid v3.3.0+incompatible - github.com/gogo/protobuf v1.3.1 + github.com/gogo/protobuf v1.3.2 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.4.3 github.com/golang/snappy v0.0.3 github.com/gomodule/redigo v1.8.3 - github.com/google/flatbuffers v1.7.2-0.20170925184458-7a6b2bf521e9 + github.com/google/flatbuffers v1.12.0 github.com/google/go-cmp v0.5.4 github.com/google/gopacket v1.1.18-0.20191009163724-0ad7f2610e34 github.com/google/uuid v1.1.2 @@ -204,6 +204,7 @@ replace ( github.com/dop251/goja_nodejs => github.com/dop251/goja_nodejs v0.0.0-20171011081505-adff31b136e6 github.com/fsnotify/fsevents => github.com/elastic/fsevents v0.0.0-20181029231046-e1d381a4d270 github.com/fsnotify/fsnotify => github.com/adriansr/fsnotify v0.0.0-20180417234312-c9bbe1f46f1d + github.com/golang/glog => github.com/elastic/glog v1.0.1-0.20210831205241-7d8b5c89dfc4 github.com/google/gopacket => github.com/adriansr/gopacket v1.1.18-0.20200327165309-dd62abfa8a41 github.com/insomniacslk/dhcp => github.com/elastic/dhcp v0.0.0-20200227161230-57ec251c7eb3 // indirect github.com/tonistiigi/fifo => github.com/containerd/fifo v0.0.0-20190816180239-bda0ff6ed73c diff --git a/go.sum b/go.sum index 7ca9cd4592a..e1245a5ecb8 100644 --- a/go.sum +++ b/go.sum @@ -80,8 +80,6 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBp github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/DataDog/zstd v1.4.1 h1:3oxKN3wbHibqx897utPC2LTQU4J+IHWWJO+glkAkpFM= -github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/Masterminds/semver v1.4.2 h1:WBLTQ37jOCzSLtXNdoo8bNM8876KhNqOKvrlGITgsTc= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Microsoft/hcsshim v0.8.7 h1:ptnOoufxGSzauVTsdE+wMYnCWA301PdoN4xg5oRdZpg= @@ -202,10 +200,10 @@ github.com/denisenkom/go-mssqldb v0.0.0-20200206145737-bbfc9a55622e/go.mod h1:xb github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= github.com/devigned/tab v0.1.2-0.20190607222403-0c15cf42f9a2 h1:6+hM8KeYKV0Z9EIINNqIEDyyIRAcNc2FW+/TUYNmWyw= github.com/devigned/tab v0.1.2-0.20190607222403-0c15cf42f9a2/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY= -github.com/dgraph-io/badger/v2 v2.2007.3-0.20201012072640-f5a7e0a1c83b h1:mUDs72Rlzv6A4YN8w3Ra3hU9x/plOQPcQjZYL/1f5SM= -github.com/dgraph-io/badger/v2 v2.2007.3-0.20201012072640-f5a7e0a1c83b/go.mod h1:26P/7fbL4kUZVEVKLAKXkBXKOydDmM2p1e+NhhnBCAE= -github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de h1:t0UHb5vdojIDUqktM6+xJAfScFBsVpXZmqC9dsgJmeA= -github.com/dgraph-io/ristretto v0.0.3-0.20200630154024-f66de99634de/go.mod h1:KPxhHT9ZxKefz+PCeOGsrHpl1qZ7i70dGTu2u+Ahh6E= +github.com/dgraph-io/badger/v3 v3.2103.1 h1:zaX53IRg7ycxVlkd5pYdCeFp1FynD6qBGQoQql3R3Hk= +github.com/dgraph-io/badger/v3 v3.2103.1/go.mod h1:dULbq6ehJ5K0cGW/1TQ9iSfUk0gbSiToDWmWmTsJ53E= +github.com/dgraph-io/ristretto v0.1.0 h1:Jv3CGQHp9OjuMBSne1485aDpUkTKEcUqF+jm/LuerPI= +github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2 h1:tdlZCpZ/P9DhczCTSixgIKmwPv6+wP5DGjqLYw5SUiA= github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= @@ -252,6 +250,8 @@ github.com/elastic/elastic-agent-client/v7 v7.0.0-20210727140539-f0905d9377f6 h1 github.com/elastic/elastic-agent-client/v7 v7.0.0-20210727140539-f0905d9377f6/go.mod h1:uh/Gj9a0XEbYoM4NYz4LvaBVARz3QXLmlNjsrKY9fTc= github.com/elastic/fsevents v0.0.0-20181029231046-e1d381a4d270 h1:cWPqxlPtir4RoQVCpGSRXmLqjEHpJKbR60rxh1nQZY4= github.com/elastic/fsevents v0.0.0-20181029231046-e1d381a4d270/go.mod h1:Msl1pdboCbArMF/nSCDUXgQuWTeoMmE/z8607X+k7ng= +github.com/elastic/glog v1.0.1-0.20210831205241-7d8b5c89dfc4 h1:ViJxdtOsHeO+SWVekzM82fYHH1xnvZ8CvGPXZj+G4YI= +github.com/elastic/glog v1.0.1-0.20210831205241-7d8b5c89dfc4/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/elastic/go-concert v0.2.0 h1:GAQrhRVXprnNjtvTP9pWJ1d4ToEA4cU5ci7TwTa20xg= github.com/elastic/go-concert v0.2.0/go.mod h1:HWjpO3IAEJUxOeaJOWXWEp7imKd27foxz9V5vegC/38= github.com/elastic/go-libaudit/v2 v2.2.0 h1:TY3FDpG4Zr9Qnv6KYW6olYr/U+nfu0rD2QAbv75VxMQ= @@ -345,13 +345,13 @@ github.com/gofrs/uuid v3.3.0+incompatible h1:8K4tyRfvU1CYPgJsveYFQMhpFd/wXNM7iK6 github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.0.0 h1:RAqyYixv1p7uEnocuy8P1nru5wprCh/MH2BIlW5z5/o= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7 h1:5ZkaAPbicIKTF2I64qf5Fh8Aa83Q/dnOafMYV0OMwjA= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -373,15 +373,14 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3 h1:fHPg5GQYlCeLIPB9BZqMVR5nR9A+IM5zcgeTdjMYmLA= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v1.8.3 h1:HR0kYDX2RJZvAup8CsiJwxB4dTCSC0AaUq6S4SiLwUc= github.com/gomodule/redigo v1.8.3/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/flatbuffers v1.7.2-0.20170925184458-7a6b2bf521e9 h1:b4EyQBj8pgtcWOr7YCSxK6NUQzJr0n4hxJ3mc+dtKk4= -github.com/google/flatbuffers v1.7.2-0.20170925184458-7a6b2bf521e9/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/flatbuffers v1.12.0 h1:/PtAHvnBY4Kqnx/xCQ3OIV9uYcSFGScBsWI3Oogeh6w= +github.com/google/flatbuffers v1.12.0/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -508,9 +507,11 @@ github.com/karrick/godirwalk v1.15.6 h1:Yf2mmR8TJy+8Fa0SuQVto5SYap6IF7lNVX4Jdl8G github.com/karrick/godirwalk v1.15.6/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.12.2 h1:2KCfW3I9M7nSc5wOqXAlW2v2U6v+w6cbjvbfp+OykW8= github.com/klauspost/compress v1.12.2/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.12.3 h1:G5AfA94pHPysR56qqrkO2pxEexdDzrpFJ6yt/VqWxVU= +github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= @@ -773,8 +774,9 @@ go.etcd.io/bbolt v1.3.4 h1:hi1bXHMVrlQh6WwxAy+qZCV/SYIlqo+Ushwdpa4tAKg= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2 h1:75k/FF0Q2YM8QYo07VPddOLBslDt1MZOdEslOHvmzAs= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5 h1:dntmOdLpSpHlVqbW5Eay97DelsZHe+55D+xC6i0dDS0= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.uber.org/atomic v1.5.0 h1:OI5t8sDa1Or+q8AeE+yKeB/SDYioSHAgcVljj9JIETY= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/goleak v1.0.0 h1:qsup4IcBdlmsnGfqyLl4Ntn3C2XCCuKAE7DwHpScyUo= @@ -849,6 +851,7 @@ golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210614182718-04defd469f4e h1:XpT3nA5TvE525Ne3hInMh6+GETgn27Zfm9dxsThnX2Q= golang.org/x/net v0.0.0-20210614182718-04defd469f4e/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -885,7 +888,6 @@ golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190813064441-fde4db37ae7a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -904,9 +906,11 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201015000850-e3ed0017c211/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/x-pack/elastic-agent/pkg/agent/program/supported.go b/x-pack/elastic-agent/pkg/agent/program/supported.go index ddcb4900d7a..b9dae90e58b 100644 --- a/x-pack/elastic-agent/pkg/agent/program/supported.go +++ b/x-pack/elastic-agent/pkg/agent/program/supported.go @@ -25,7 +25,7 @@ func init() { // spec/metricbeat.yml // spec/osquerybeat.yml // spec/packetbeat.yml - unpacked := packer.MustUnpack("eJzMWll3q7iWfu+fUa+3B4bjVNFr3QdDiskOKeMTSegNSbaxLbArxgP06v/eS2IwYCc5yalatx/OyrEQ0tbWHr79bf7nl8N+Qf8r3qf/cVi8nhav/1mk/Jf//oWkdo6/71YzYAZTEHCaYU5X+w2BswfPsc9krpYY+RpG3iRCvhJDnET63WcZLXcreN6tPMvLw7l38Cw/j+AowRrIMRwp0xQcI+gfMJwZzPVVPPcO1nq88taq7a3PKy/trXnEjq1EwCiZ6/MIquXH77MN0k1O04CTbGb4bm6+/K5+D4EPQ+AvQ8VwZ+Xu8vRoGt5qz6wUfKOOUTAHbJGmcub6+0h/evDsw8SzxusImfkU1TpZeweLKxOagQNGTw9i3+nc3BDdHCE9PCHtsqf6TI571njlOVzBUHnwHHzAECjtuBuentfmnmSmytyniRyzxiuijZaRZhxxetlX+h2diD4Wz3PPURP6uGvnUsdW4sfdCqcXjtHsOt6RrRmbzs0CQ/XEUrCMNTB6Xu3aZ9U/8xWjrbjPTaSBkqpGQh0u535pHdfnlU75EZ+7c5QVTUFOdMyRlvPF9+t5mn9y3bUp7OXIxjv5Dk75N6QHCk1BQr7vVgtdqXWC98QNOeWGFsGL2ju3G3DigA1zjOKerut9lAUy+fUdnBAXcFr25Mqlnc9aWQ7MAcX17GaJ4YVHenii2Y3eb/at1jNU5ppqdb6rbjp3mXsOP8Yp2DDb2GFobzHyy+e1+etyttdjBxyf1+YBw1HGnNXOd/N6n8CYzMf/8B7HqwiOtp6TJFTJ+WK+2i60ek9XOXgW48SxS+bwDdVAQtNg5xfnla/7HDu89IuzkCGLNTuNtd+zqTXOiGNkVA8Tqq2yyWz3z1/+vQomi4ztd+ssH4SSEI621DH2JJutXjSwYcjfM3c7iTR1+7w2OUnDM9H4kVlqiWGg0pQri9k+oVm4x6m9YcK0r2vk2AGalUk33Efay4P3GOnPj6tJBAMlhsYRafxIXaAgPRxRB5TPq13uOeCIXfMUw5FipZcTVo1zhMJddb3mNkK+HsNvD57lnb47fE1Tu1jMDbtRzVS5vj/VAyVCIZ9qlxMujI78yp9TsXbhiTUPMRypi8fdylsbJ+rOTiG8JFQP91Fh2Nd3jJI5toLnxoFo9NQ952Q9EmNrYUZM40fsGLoIqd726QHZlxlNjYymdu79jvfEASWyL6288v/NHvaFiutiDqDIEWe/0Lv7pMEOw+BV6k8PE+KcH6y1ssIo4ZFqpDG88MbUm5DjpR29oIBHOihiFI68el6dBiaNWXsidKY8Xcy969hayYVJNe9M5+M11UNh5kUzxhyeY2iowhaeyvGEOkbJbCF/oETwcqjv+BuGwVK4JW7CiWsmzFk9eJZ/384aORy7wHrrsrln+e3aXbmmc7W9k3peyZyQ08zrjHn5FIEz1v0EOy+DcZ9TzVBFSqJFRwdv6LE/f/QQo3G9nqnEUOVEB8rzeqw9PY4n1PU50sExhiNhUwfyuJtM5yZfOGCDNGEjL/X5TGn7z+vxumsH9OqbzR4JTVnZCe3ivCpJW/tYX0Pc7T3e188duds0dT+81+My1CJ9EJbfC+2OTCsr5vIzntV2lNoHBkF7JqGf1i7GUl/CzhWM/OVwLtXAAcNAIbr3IEKyiDG0Tml1CuEktdfEAdv6rMNUlHtuWDD4Is9EoH0e+lMvhbu+SpyerG+n3PqsVAMFS0FhSX+oU+LmVlddn+zDBmUVw9GZobBsZR6kKCkHwnuq8RNZ7SZMSzjZ7FZExFg93E2s8NdqzXCQgi6cpEyJLZGCav3pyt57/LZ6ssyEpLNV7NjlXAMjsYawETFnOT+vfA0cIiTie1BiaBeRTD37DdFGAg4mwm9EbPTdvGBwJG1smop5ieFZvxuexRKaKlpg0UmTrpZrviCL+CZdifABfR6hWZOiZOiLUpCw8b5yibVJekgzCzhzwXma8gOZj1oz+AMKcw24t5ZZdD19eVlPrfGaakBhaHxkDsipc0mY83LEcJREQm2PahrBS3mLZtWEpHaGhftks+58hWbgZg/hilikjWJ0wAhz8qhuMfRVXHyIkp35y8WebYEJbMP9rrDH583v5ydXWQvE20f9Qk9hOZXhBawxtBUr87lEB1m4FCi2uUakBbsIjjIsXdJX8WxfMHiRrizdDiVLqocFhnZeoZtdF/nsSRryRYN6XZHaXx48kc70J+lOMRz9KdyzDR/AONPU2GAUlMJla5c8EW4Is0mJwyW0EOESI19Bmp2KENOEKYEGBbIiGisrd+qg7iatDMLAAHHnnhOcqMuXIo3crQpkavvtwXNrmVEXHd7KSlLjRLtI0QHfIg2cxTNY+G1lVN0r31Z/2yqpsj3XP0lkrxkFLXw2lJU5xpI4vGSPXeRr7oWtPq/Njk798qvnuOrc5zg1CjyTNlAImyawTVMpTY38Jqz3KqagPbNVQwARDiI9rM5gG1Lua7oY3Js+kLep0obnGFRpb4Xvfug0W/tuQquQjWTBQcDHXvhu5Krsuqu7PELmGSOvZzMCXhKNVZBM2ijtV08O0GSFXad96SfnfoUmY0I2OwmoJaGvGyjY4cfBPpylQMBUJdLHQr5Nz/466zAYnp/Xpord8UAWCZO3RAtexTk8JzxFWs7poGIU8WpaVx1IDw5EZ+JcsoIUY7fnpyeq81K897w2ywUKOnp4r7psKlNQYmCcGArPrJP+PnzPEVDabmPVNbX7nEBDw8CQ87ry1vBgG6EwaePTfHSMoMqpbiaR9vLl/aep/F2KFP43Q6WE6U95pF3EXesRCjfxuP+Mlk/tOSK0V2n6klf2Ee4YvMLdeo2U6AL2+qNuDCJZKNJ5ax/TudnYzhWyaMF5ikw1ygI1us7bMTc8I61T6rXrJgpzzT+pZhyvY3mC0zy5/r76yHRu5hSFnfdHnDn4QPSrfZHySQugrWKHK10b6NhqPvAp8XtEtd4+wq+u8QGG5+tccIzR6vpM40dh61eZqrKvin8/D5NbPDF+8/4lzqjibJuXK3ZG5md8qvP2pGHCmndx5p8EnB/ER4WUOylzg7e6Z7iF3X5Xlg4ma8dufFn4HdXDE01f+hhBS3gERVny9OC5uWGt7jIp1z2s0b+MVVnyxSK/T9KGFXJfvTSoPw1yfK0i8rYaSKvq1rMPooKtrsxSc6KF3LuBdBVB2RKdq303jUmzW9gNCavU6usTYjfm90H1dA3J/fQ3NMFBxZJ3qp2/Zn+nhUofylBB2Fonb4X+2rUaCNzI2ciCRNXp/HaXqJTkeWGmxAGcWaOWBG/WmqY3FdEKzdrz1BX+1SVqgrohKJciPJK7+pHkImntIGsI79GZaJd9pG+PMZzd26sJK8cnq53b7Lsncp1wiR2QRggcmHufoL0lXG/k2BE9UAbk6o2eJOl8n1Q9NnYzzYKSjN89R9vQqM+RR2jckbuBk0NSv1+5X/cfEsbjD4njzhk7RPjwubKKHaNk4927DYJBZf+mnD9IzKtUA21597Umw10o9VNrTFNRQoCSOvYGz750riFMk79Fyf61Bsi1lKhtqGaYvE/Z/yebCR80Dv6VrM01tSWL+DW/Q8HMHZDQLKzohDqnxb2xTj4bUCoxvOTdxiBO7QPVqjmfpV8+07jszBWlWRbDUTZNL6J8OvwBQx5lILvNtQ19knAxXlNMBUaBEsny2DiiBlbYxiZ27CPWXh4aFnHQfLxHodzPi6qhxyjcIQFHNPCtGyvuN8N8UWYuqC7yVcIlrCl+O07Odxpfm36ceY9Rfe+996DpHWa1D1GbnJPuZa6LIBMliMh5qYCcN03DzRt5cBAXb+S7Czvb8oIvkFyHWxnbYVFi/8W+JGAjTcE2Rk/ZVOqGvUYQv0ZzKiCopK5EaRhbdG+t/tn6XbrIX9f0juN9h0ChKd/Uhlh3/etOuFZzovc7+yVGoUoFTnaUj7nMhi/NQk6QKfmQu047/pmvBy4nrLE9SemRSD7kbGAHrBmkw3WzSDXOGPkbse4f8/DX7y/g5WXLHz/Hgfb1RFMglF8w2zgR3vAM4TLSkoSkTDhUZayZeaIVIGvbNnUSl8ml187qtd7UE3ZlADhiyyiFsWGoHBdQPVxbMKYIJBlGswehP6KFMuFP05nkTkQAnGY8J9ZoG6OgujPL+7Al03WuGI62GK0eBrxpjlFYCGMd1IsNX7fs8pCNo91+9cArsCbqzCxsOQHJUwhgXdsrPf9V/OE7HO+QK7xtz1Rff2j2gdiGQlTjEKNA6fN8cu/rnp1A8s4XH81d8oUTcOrOZOJrAj0tpA3vsSX/tr2Hys/MgmgBp3oggOW6Ae3vfqkikgAKubjrHld8/uo52jtcY4jbWhyjRKGpLWxC6glpXMFQLd/iVNvzNi23RsbBuOShrwXe3ZYe0tmeOcmSpiDDKGl53NvkZxbCztD62+v0+kVQ0967n7y6rbebr1HeS3hvFKE3X6Jci89+QXJTwLxlp0LvR6oJ4AOWTONKbBsFhowv3HHPDpo76PKCXUAweTRmf1RF+z+m68P+Vkd1ES32eNyt/F6BLwG55ED7rUxcEE25x4VLvohAY8vghV95MDWJNbCMkF9EQ961tpE2TgxAfGUrjcwiJz19goftvDf+8RbtEMz80Du9L9+Uv4Qr/voatwXWj5yBoYC3YLZqtb8L0ESMiDTj3MrU2MWAvOndoXblEYe21XCQpItxWl6vlxvaPPmZNnpv3R/kJHt51AEJdoAkfuT574LG3jmPjS/8FIisgGOBYbinhQSOPwQid4c/j4vX4h6K1IMLg6BY9LvoJ6rbKkb+aNhJ/0QX/fMIstsRh/ZRWhoER2Z11keynOrPfbN77rNPdLh7H7HJc7tPJzLUz7sfrhklRYDTbDuxsjaS36dheww3P2IHfHseIibHyOqs2Fpe49lI76CFxtodIVdwIik+xDBQquxSUXkRxErblbnTkf8bO1GtLf1gN2JAudyl2/JhZOl6799Vwn3uIxZaPj9GWdcL9zHdLu5xKC+OvYk1oPRKOddMIi3nzBmUcgXNw8rdPyjjxJybuQK2nYn8ivHWaWXbo1Bt+Vd7/xOW/tw3y7cMveFYtH/mr/MoP8lX9OHSm1zFOYLBK75y8x+kw69wh8M+R52q2n7E/4sPiCe//O+//V8AAAD//0oTUkc=") + unpacked := packer.MustUnpack("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") SupportedMap = make(map[string]Spec) for f, v := range unpacked { diff --git a/x-pack/elastic-agent/spec/filebeat.yml b/x-pack/elastic-agent/spec/filebeat.yml index 6f47c1ebdee..af9fdf89e75 100644 --- a/x-pack/elastic-agent/spec/filebeat.yml +++ b/x-pack/elastic-agent/spec/filebeat.yml @@ -75,6 +75,7 @@ rules: - gcp-pubsub - http_endpoint - httpjson + - journald - kafka - log - mqtt diff --git a/x-pack/filebeat/magefile.go b/x-pack/filebeat/magefile.go index 456bd382e1c..e109a23d808 100644 --- a/x-pack/filebeat/magefile.go +++ b/x-pack/filebeat/magefile.go @@ -44,12 +44,12 @@ func Build() error { // GolangCrossBuild builds the Beat binary inside of the golang-builder. // Do not use directly, use crossBuild instead. func GolangCrossBuild() error { - return devtools.GolangCrossBuild(devtools.DefaultGolangCrossBuildArgs()) + return filebeat.GolangCrossBuild() } // CrossBuild cross-builds the beat for all target platforms. func CrossBuild() error { - return devtools.CrossBuild() + return filebeat.CrossBuild() } // BuildGoDaemon builds the go-daemon binary (use crossBuildGoDaemon). diff --git a/x-pack/libbeat/persistentcache/store.go b/x-pack/libbeat/persistentcache/store.go index e14b90fedda..a114a51cc3f 100644 --- a/x-pack/libbeat/persistentcache/store.go +++ b/x-pack/libbeat/persistentcache/store.go @@ -10,7 +10,7 @@ import ( "path/filepath" "time" - badger "github.com/dgraph-io/badger/v2" + badger "github.com/dgraph-io/badger/v3" "github.com/elastic/beats/v7/libbeat/logp" )