Wir verwenden ELK zum Steuern unserer Programmprotokolle. In unserer FileBeat-Konfiguration ernten wir 30 verschiedene Pfade, die Dateien enthalten, die jede Sekunde aktualisiert werden (es wird jede Sekunde nur in den Prod-Maschinen aktualisiert - in den anderen Dev-Maschinen haben wir wesentlich weniger Protokolle). Unsere Protokolldateien werden erst gelöscht, wenn sie alt werden und wir verwenden sie nicht mehr (wir ändern auch ihre Namen nicht). In letzter Zeit haben wir herausgefunden, dass die Protokolle von den letzten Pfaden in der Konfigurationsdatei (.yml) von den Prod-Maschinen niemals in der Kibana erscheinen.FileBeat Ernte Probleme
Nach einer Untersuchung stellten wir fest, dass FileBeat, das auf den Dateien steckte, der Pfad des ersten Pfades ist und nie den letzten zu erreichen scheint. Wenn ich die Position der letzten beiden Pfade an den Anfang ersetze, begann FileBeat, alle Protokolle dort zu registrieren und sie später zu ernten.
Ich schaute in der Dokumentation auf der FileBeat-Konfiguration nach und ich sah die nahe * Optionen close_option_config, die wie eine gute Idee scheinen. Aber ich habe es noch nicht richtig gemacht und ich bin mir nicht sicher, was ist die empfohlene Zeit für die Option scan_frequency (das ist jetzt Standard von 10s) und was würde mir am besten dienen.
Ich versuchte, die close_timeout zu 15s zu ändern und die scan_frequency bis 2m
close_timeout: 15s
scan_frequency: 2m
würde Ich mag einige Meinung nach hier, was kann ich tun, um dieses Problem zu umgehen, lösen? Ich habe die Konfiguration hier eingefügt, um einen Bezug zu haben und um zu sehen, ob ich etwas anderes verpasst habe.
meine filebeat.yml: (vor Änderungen)
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
..... gleichen wie oben
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"