Exclude file from being processed

Hello, I have /var/log/elasticsearch/gc.log.0.current currently flooding my logs. I would like to know the best way to exclude this? I am running Filebeats 6.4.2.

I have tried: exclude_files with the following:

['\.current$']

but they continue.

I would love to know how to properly submit the loglines as well as I've clearly missed something :frowning:

Could you please share your full config formatted using </>? The regex you've pasted here seems to be correct. So there must be other problems somewhere in your config.

Config included below:

#=========================== Filebeat inputs =============================

filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

- type: log

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
    - /var/log/*.log

  #exclude_lines: ['^DBG']
  include_lines: ['^ERR', '^WARN']
  exclude_files: ['\.current']

  ### Multiline options

  multiline.pattern: ^\[
  multiline.negate: false
  multiline.match: after


#============================= Filebeat modules ===============================

filebeat.config.modules:
  # Glob pattern for configuration loading
  path: ${path.config}/modules.d/*.yml

  # Set to true to enable config reloading
  reload.enabled: false

  # Period on which files under path should be checked for changes
  #reload.period: 10s

#==================== Elasticsearch template setting ==========================

setup.template.settings:
  index.number_of_shards: 3
  #index.codec: best_compression
  #_source.enabled: false

#================================ General =====================================

# The name of the shipper that publishes the network data. It can be used to group
# all the transactions sent by a single shipper in the web interface.
#name:

# The tags of the shipper are included in their own field with each
# transaction published.
#tags: ["service-X", "web-tier"]

# Optional fields that you can specify to add additional information to the
# output.
#fields:
#  env: staging


#============================== Dashboards =====================================
# These settings control loading the sample dashboards to the Kibana index. Loading
# the dashboards is disabled by default and can be enabled either by setting the
# options here, or by using the `-setup` CLI flag or the `setup` command.
# setup.dashboards.enabled: false

# The URL from where to download the dashboards archive. By default this URL
# has a value which is computed based on the Beat name and version. For released
# versions, this URL points to the dashboard archive on the artifacts.elastic.co
# website.
# setup.dashboards.url: http://kibana.apimsvc.xx.com

#============================== Kibana =====================================

# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API.
# This requires a Kibana endpoint configuration.
setup.kibana:

  # Kibana Host
  # Scheme and port can be left out and will be set to the default (http and 5601)
  # In case you specify and additional path, the scheme is required: http://localhost:5601/path
  # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601
  host: "kibana.apimsvc.xx.com:5601"

#============================= Elastic Cloud ==================================

# These settings simplify using filebeat with the Elastic Cloud (https://cloud.elastic.co/).

# The cloud.id setting overwrites the `output.elasticsearch.hosts` and
# `setup.kibana.host` options.
# You can find the `cloud.id` in the Elastic Cloud web UI.
#cloud.id:

# The cloud.auth setting overwrites the `output.elasticsearch.username` and
# `output.elasticsearch.password` settings. The format is `<user>:<pass>`.
#cloud.auth:

#================================ Outputs =====================================

# Configure what output to use when sending the data collected by the beat.

#-------------------------- Elasticsearch output ------------------------------
#output.elasticsearch:
  # Array of hosts to connect to.
  #hosts: ["kibana.apimsvc.xx.com:9200"]

  # Optional protocol and basic auth credentials.
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"

#----------------------------- Logstash output --------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["kibana.apimsvc.ca.com:5044"]

  # Optional SSL. By default is off.
  # List of root certificates for HTTPS server verifications
  ssl.certificate_authorities: ["/etc/pki/tls/certs/logstash-forwarder.crt"]

  # Certificate for SSL client authentication
  #ssl.certificate: "/etc/pki/client/cert.pem"

  # Client Certificate Key
  #ssl.key: "/etc/pki/client/cert.key"

#================================ Logging =====================================

# Sets log level. The default log level is info.
# Available log levels are: error, warning, info, debug
#logging.level: debug

# At debug level, you can selectively enable logging only for some components.
# To enable all selectors use ["*"]. Examples of other selectors are "beat",
# "publish", "service".
#logging.selectors: ["*"]

#============================== Xpack Monitoring ===============================
# filebeat can export internal metrics to a central Elasticsearch monitoring
# cluster.  This requires xpack monitoring to be enabled in Elasticsearch.  The
# reporting is disabled by default.

# Set to true to enable the monitoring reporter.
#xpack.monitoring.enabled: true

# Uncomment to send the metrics to Elasticsearch. Most settings from the
# Elasticsearch output are accepted here as well. Any setting that is not set is
# automatically inherited from the Elasticsearch output configuration, so if you
# have the Elasticsearch output configured, you can simply uncomment the
# following line.
#xpack.monitoring.elasticsearch:

So I turned on debug and it looks like it's still trying to exclude the default .gz instead of what I have:

|2018-10-03T16:19:40.970-0400|DEBUG|[input]|log/input.go:147|exclude_files: [(?-s:.)gz(?-m:$)]. Number of stats: 21|
|---|---|---|---|---|
|2018-10-03T16:19:40.977-0400|DEBUG|[input]|log/input.go:147|exclude_files: [(?-s:.)gz(?-m:$)]. Number of stats: 21|
|2018-10-03T16:19:40.983-0400|DEBUG|[input]|log/input.go:147|exclude_files: [(?-s:.)gz(?-m:$)]. Number of stats: 21|

Sorry for this I just wanted to add more information, I can see via debug now:

exclude_files: [(?-s:.)current(?-m:$)]. Number of stats: 21

This is after changing it to:

exclude_files: ['.*.current$']

However the logs still show up. Trying to exclude /var/log/elasticsearch/gc.log.0.current and all variations.

Could you provide more logs?
Are you sure this is the config which runs? According to the path configuration you provided:

paths:
  - /var/log/*.log

/var/log/elasticsearch/gc.log.0.current is not going to be opened, because it does not match the pattern.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.