Я хочу исключить некоторую строку из журналов, прочитанных filebeat, а также хочу добавить тег с помощью процессоров в filebeat, но он не работает

#filebeat

#filebeat

Вопрос:

Я хочу удалить строки журнала, содержащие слово «HealthChecker» в приведенном ниже журнале, а также добавить некоторые теги в полезную нагрузку для отправки в logstash.

Мои журналы:

 18.37.33.73 - - [18/Apr/2019:14:49:53  0530] "GET /products?sort=dateamp;direction=desc HTTP/1.1" 200 8543 "https://codingexplained.com/products/view/124" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1"
20.4.2.88 - - [18/Apr/2019:14:49:54  0530] "GET / HTTP/1.1" 200 100332 "-" "ELB-HealthChecker/2.0"
18.37.33.73 - - [18/Apr/2019:14:49:55  0530] "GET /products?sort=dateamp;direction=desc HTTP/1.1" 200 8543 "https://codingexplained.com/products/view/124" "Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1"
20.4.2.88 - - [18/Apr/2019:14:49:56  0530] "GET / HTTP/1.1" 200 100332 "-" "ELB-HealthChecker/2.0"
 

Я уже пытался задать эту конфигурацию внутри плагина processor внутри файла filebeat.yml, но он по-прежнему не работает.

Мой файл filebeat.yml:

 filebeat.modules:
- module: apache
  access:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/location/apache_access_2017-09-28.log"]

    # Input configuration (advanced). Any input configuration option
    # can be added under this section.
    processors:
    - add_tags:
        tags: [web, production]
        target: "environment"
    - drop_event:
      when:
       contains:
         message: "ELB-HealthChecker"

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: false

output.console:
  # Boolean flag to enable or disable the output module.
  enabled: true
  codec.json:
    pretty: true

 

Комментарии:

1. какую версию filebeat вы используете?

Ответ №1:

ЯМЛ виноват в вашем случае. «Процессор» — это элемент верхнего уровня, так что это сработает:

 filebeat.modules:
- module: apache
  access:
    enabled: true

    # Set custom paths for the log files. If left empty,
    # Filebeat will choose the paths depending on your OS.
    var.paths: ["/location/apache_access_2017-09-28.log"]

    # Input configuration (advanced). Any input configuration option
    # can be added under this section.

processors:
- add_tags:
    tags: [web, production]
    target: "environment"
- drop_event:
  when:
   contains:
     message: "ELB-HealthChecker"
 

Если вы сомневаетесь в отношении отступов, обратитесь к filebeat.full .файл yml.