我有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"]
任何人都可以给我一个
的示例典型设置如何显示。请帮助我。
答案 0 :(得分:1)
您可以使用标记来区分应用程序(日志模式)。
由于Filebeat提供元数据,因此 beat.name 字段将使您能够过滤所需的服务器。
log类型的多个输入,对于每个输入,一个不同的标记就足够了。
请参阅这些示例以帮助您。
Logstash
docker save -o dockdebian.tar.gz `sudo docker images | awk 'NR==2{ print $3 }'`
Filebeat
filter {
if "APP1" in [tags] {
grok {
...
}
}
if "APP2" in [tags] {
grok {
...
}
}
}