2017-05-10 2 views
0

Ich habe eine VM auf Google Cloud ausgeführt, und Logging über google-fluentd darauf installiert, nach den Anweisungen unter https://cloud.google.com/logging/docs/agent/installation. Ich habe eine benutzerdefinierte Konfiguration für eine Anwendung eingerichtet, die die Protokolle an /var/log/myapp.log ausgibt.google-fluentd und Stackdriver ein Eintrag hinter benutzerdefinierte Konfiguration

habe ich eine Konfiguration (als root, praktisch eine Kopie tomcat.conf) /etc/google-fluentd/config.d/myapp.conf aufgerufen, die Folgendes:

<source> 
    @type tail 
    format multiline 
    # Match the date at the beginning of each entry 
    format_firstline /^(\d+\/\d+\/\d+\s\d+:\d+:\d+\s)/ 
    format1 /(?<message>.*)/ 
    path /var/log/myapp.log 
    pos_file /var/lib/google-fluentd/pos/myapp-multiline.pos 
    read_from_head true 
    tag myapp 
</source> 

Einträge zeigen in Stackdriver, aber es wird immer in Stackdriver erst nach dem nächsten Eintrag in die .log-Datei einfügen und zur falschen Zeit angezeigt werden (dh Zeile-1 erhält den Zeitstempel von Zeile-2).

Gibt es etwas, das ich in der .conf-Datei vermisse, die das verursachen könnte?

Antwort

1

Vom documentation der in_tail Plugin:

Mit format_firstline, in_tail Verzögerungen Aufzeichnung bis zum nächsten format_firstline emittieren abgestimmt, weil in_tail nicht mehrzeiligen Protokolle oder nicht ohne format_firstline Trigger sind beendet beurteilen. Wenn Ihre Regexps das Protokollmuster korrekt darstellen, wie oben im Beispiel zu Rails, entfernen Sie möglicherweise format_firstline, um Datensätze sofort auszugeben.

Verwandte Themen