我们在服务器上设置elasticsearch,kibana,logstash和filebeat来分析来自许多应用程序的日志文件。由于原因*每个应用程序日志文件最终都在ELK服务器上的单独目录中。我们有大约20个日志文件。
谢谢!
*有不同的供应商负责不同的应用程序,他们运行跨许多不同的操作系统,其中许多不会或不能安装任何文件。
我们不建议从网络卷读取日志文件。只要有可能,在主机上安装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"