elasticsearch 文件采伐问题
我们使用ELK来控制我们的程序日志。 在我们的FileBeat配置中,我们从30个不同的路径中获取文件,这些路径包含每秒更新的文件,它仅在prod的机器中每秒更新一次—在其他开发机器中,我们的日志明显较少。 我们的日志文件不会被删除,直到它们变旧,我们停止使用它们,我们也不会修改它们的名称。 最近,我们发现prod机器的配置文件.yml中最后一个路径的日志从未出现在Kibana中 经过调查,我们意识到文件上粘贴的FileBeat是第一个路径的,似乎永远不会到达最后一个路径。当我将最后两条路径的位置替换到开头时,FileBeat开始在那里注册所有日志,然后再捕获它们 我查阅了有关FileBeat配置的文档,看到了close*选项,这似乎是个好主意。但是我还没有把它弄对,我不确定现在默认为10秒的扫描频率选项的建议时间是多少,以及什么对我最有利 我试图将关闭超时改为15秒,扫描频率改为2米 我想在此提出一些意见,我能做些什么来解决这个问题?我把配置放在这里是为了有一些参考,看看是否遗漏了其他内容 我的filebeat.yml:在更改之前
elasticsearch 文件采伐问题,
elasticsearch,yaml,elastic-stack,filebeat,
elasticsearch,Yaml,Elastic Stack,Filebeat,我们使用ELK来控制我们的程序日志。 在我们的FileBeat配置中,我们从30个不同的路径中获取文件,这些路径包含每秒更新的文件,它仅在prod的机器中每秒更新一次—在其他开发机器中,我们的日志明显较少。 我们的日志文件不会被删除,直到它们变旧,我们停止使用它们,我们也不会修改它们的名称。 最近,我们发现prod机器的配置文件.yml中最后一个路径的日志从未出现在Kibana中 经过调查,我们意识到文件上粘贴的FileBeat是第一个路径的,似乎永远不会到达最后一个路径。当我将最后两条路径的位
filebeat:
# List of prospectors to fetch data.
prospectors:
# Each - is a prospector. Below are the prospector specific configurations
-
paths:
- D:\logs\*\path1\a_*_Pri_app.log.txt
input_type: log
document_type: type1
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
-
paths:
- D:\logs\*\path2\b_*_Paths_app.log.txt
input_type: log
document_type: type2
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
-
paths:
- D:\logs\*\path3\c_*_R_app.log.txt
input_type: log
document_type: path3
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
-
paths:
- D:\logs\*\path4\d_*_d_app.log.txt
- C:\logs\*\path4\d_*_d_app.log.txt
input_type: log
document_type: path4
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
……同上
paths:
- D:\logs\*\path27\S.Coordinator_Z.*.log*
- C:\logs\*\path27\S.Coordinator_Z*.log*
input_type: log
document_type: path27
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
-
paths:
- D:\logs\*\path28\d_*_Tr_app.log.txt
- C:\logs\*\path28\d_*_Tr_app.log.txt
input_type: log
document_type: path28
multiline.pattern: '^[0-9]{4}-[0-9]{2}-[0-9]{2}'
multiline.negate: true
multiline.match: after
-
paths:
- D:\logs\*\R1_Output\R*\pid_*_rr_*
input_type: log
document_type: path29
multiline.pattern: '<\?xml version="1\.0" encoding="UTF-8"\?>'
multiline.negate: true
multiline.match: after
-
paths:
- D:\logs\*\R2_Output\R*\pid_*_rr_*
input_type: log
document_type: path30
multiline.pattern: '<\?xml version="1\.0" encoding="UTF-8"\?>'
multiline.negate: true
multiline.match: after
registry_file: "C:/ProgramData/filebeat/registry"
经过长时间的调查,当我试图找到一个类似的问题,我有一个解决方案,并在迪库斯弹性论坛尝试我的运气。 我设法解决了这个问题 因为我在网上没有看到这个选项,所以我把它放在这里 Filebeat收获系统在同时处理大量打开的文件时显然有其局限性。一个已知的问题和弹性团队还提供了一系列配置选项来帮助解决这个问题,并根据您的需要来装扮麋鹿,例如。 我成功地解决了我的问题,打开了另外两个Filebeat服务,我用以下方式配置了它们的浏览者,一个相同的示例转到B:
paths:
- D:\logs\*\pid_*_rr_*
input_type: log
document_type: A
multiline.pattern: '<\?xml version="1\.0" encoding="UTF-8"\?>'
multiline.negate: true
multiline.match: after
close_eof: true
这样,因为服务相互依赖地工作,Filebeat会不断尝试操作它们,而不会停留在第一个浏览者身上
我用这种方法使我的收获能力加倍
在Elastic网站上进行讨论:
paths:
- D:\logs\*\pid_*_rr_*
input_type: log
document_type: A
multiline.pattern: '<\?xml version="1\.0" encoding="UTF-8"\?>'
multiline.negate: true
multiline.match: after
close_eof: true