多个文件拍到一个logstash。如何优化配置

问题描述 投票:0回答:1

我有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配置文件中对其进行优化?

[典型的设置外观如何。请帮助我。

elasticsearch logstash logstash-grok logstash-configuration filebeat
1个回答
0
投票

您可以使用tags来区分应用程序(日志模式)。由于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"]
© www.soinside.com 2019 - 2024. All rights reserved.