Несколько ударов в один logstash. Как оптимизировать конфигурацию - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть 10 серверов, на которых установлен Filebeat. Каждый сервер контролирует 2 приложения, всего 20 приложений.

У меня есть один сервер Logstash, который собирает все перечисленные выше журналы и передает их в Elasticsearch после фильтрациииз этих журналов.

Чтобы прочитать один файл с одного сервера , я использую следующую конфигурацию Logstash:

input {
  beats {
    port => 5044
  }
}
filter {
    grok {
match => {"message" =>"\[%{TIMESTAMP_ISO8601:timestamp}\]%{SPACE}\[%{DATA:Severity}\]%{SPACE}\[%{DATA:Plugin}\]%{SPACE}\[%{DATA:Servername}\](?<short_message>(.|\r|\n)*)"}
    }
} 
output {
  elasticsearch {
    hosts => ["<ESserverip>:9200"]
    index => "groklogs"
}
          stdout { codec => rubydebug }
}

И это конфигурация filebeat:

paths:
    - D:\ELK 7.1.0\elasticsearch-7.1.0-windows-x86_64\elasticsearch-7.1.0\logs\*.log

output.logstash:
  hosts: ["<logstaship>:5044"]

Может ли кто-нибудь дать мне пример

  1. Как мне преобразовать вышеприведенное, чтобы получать от нескольких приложений с нескольких серверов.
  2. Должен ли я настроить несколько портов? Как?
  3. Как мне использовать несколько Groks?
  4. Как я могу оптимизировать его в одном или минимальном файле конфигурации logstash?

Как будет выглядеть типичная настройка. Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 08 ноября 2019

Вы можете использовать теги , чтобы различать приложения (шаблоны журналов). Поскольку Filebeat предоставляет метаданные, поле beat.name даст вам возможность фильтровать серверы, которые вы хотите.

Несколько входов типа log, и для каждого из них должен быть свой тегбыть достаточным. Смотрите эти примеры, чтобы помочь вам.

Logstash

filter {
    if "APP1" in [tags] {
        grok {
             ...
        }
    }
    if "APP2" in [tags] {
        grok {
             ...
        }
    }
}

Filebeat

filebeat.inputs:
- type: log 
  paths:
    - /var/log/system.log
    - /var/log/wifi.log
  tags: ["APP1"]
- type: log 
  paths:
    - "/var/log/apache2/*"
  tags: ["APP2"]
...