У меня есть 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"]
Может ли кто-нибудь дать мне пример
- Как мне преобразовать вышеприведенное, чтобы получать от нескольких приложений с нескольких серверов.
- Должен ли я настроить несколько портов? Как?
- Как мне использовать несколько Groks?
- Как я могу оптимизировать его в одном или минимальном файле конфигурации logstash?
Как будет выглядеть типичная настройка. Пожалуйста, помогите мне.