我们正在服务器上设置elasticsearch,kibana,logstash和filebeat,以分析来自许多应用程序的日志文件。由于某些原因*,每个应用程序日志文件最终都位于ELK服务器上的单独目录中。我们大约有20个日志文件。
谢谢!
*有不同的供应商负责不同的应用程序,它们在许多不同的操作系统上运行,并且其中许多将不会或无法安装文件拍子。
答案 0 :(得分:0)
我们不建议从网络卷中读取日志文件。每当 可能的话,在主机上安装Filebeat并发送日志文件 直接从那里。从网络卷读取文件(尤其是在 Windows)可能会产生意想不到的副作用。例如,更改的文件 标识符可能导致Filebeat从头读取日志文件 再次。
我们始终建议在远程服务器上安装Filebeat。使用 不支持共享文件夹。典型的设置是您有一个 Logstash + Elasticsearch + Kibana放在一个中央位置(一个或多个) 服务器)和Filebeat安装在您的远程计算机上 正在收集数据。
对于一个正在运行的filebeat实例,您可以通过定义多个输入节来将不同的配置设置应用于不同的文件,如下例check here for more
filebeat.inputs:
- type: log
enabled: true
paths:
- 'C:\App01_Logs\log.txt'
tags: ["App01"]
fields:
app_name: App01
- type: log
enabled: true
paths:
- 'C:\App02_Logs\log.txt'
tags: ["App02"]
fields:
app_name: App02
- type: log
enabled: true
paths:
- 'C:\App03_Logs\log.txt'
tags: ["App03"]
fields:
app_name: App03
而且您可以在过滤器中使用if语句创建一个logstash管道
filter {
if [fields][app_name] == "App01" {
grok { }
} else if [fields][app_name] == "App02" {
grok { }
} else {
grok { }
}
}
当我们从filebeat发送时,条件也可以是if "App02" in [tags]
或if [source]=="C:\App01_Logs\log.txt"