2

Gefunden die Lösung nach der Suche, aber lassen Sie dies hier, wenn jemand in ähnlicher Art von Verwirrung auftritt. Siehe Auflösung am Ende.Falsche Ereigniszeit in CloudWatch-Protokollereignissen

Ich versuche herauszufinden, warum der AWS CloudWatch-Protokolldienst den richtigen Zeitstempel für meine Protokollereignisse nicht versteht. Momentan werden alle meine Termine unter Zeit 2017-01-01 gespeichert, egal wie der aktuelle Zeitstempel im Ereignis ist.

ich das Protokoll von syslog Fütterung wo Docker die protokollierten Ereignisse speichert und ich konfiguriert Docker den Zeitstempel im Format zu setzen:

170105/103242 (%y%m%d/%H%M%S) 

konfiguriert I awslogs Dienst mit Parametern:

datetime_format = %y%m%d/%H%M%S 

Ich habe den Dienst neu gestartet und den Server gedrückt, aber immer noch, wenn ich zu CloudWatch gehe und die Protokolleinträge sehe, werden sogar Einträge, die tatsächlich mit dem Zeitstempel 170105/103242 starten, als Ereignisse gespeichert, die zum Datum 2017-01-01 gehören und alle Ereignisse enthalten zwischen 01-01 und 01-05

Als ich im awslogs.log aussehen kann ich sehen, folgende Zeilen:

2017-01-05 11:05:28,633 - cwlogs.push - INFO - 29223 - MainThread - Missing or invalid value for use_gzip_http_content_encoding config. Defaulting to using gzip encoding. 
2017-01-05 11:05:28,633 - cwlogs.push - INFO - 29223 - MainThread - Using default logging configuration. 

Das macht mich denken, dass die Konfiguration wahrscheinlich nicht wirklich liest/Verwendung der datetime_format aber ich verstehe nicht, warum es entscheidet sich am Ende mit der Standardeinstellung. Ich habe versucht,

unter allgemeinen Einstellungen setzen, aber es ändert sich nicht die Fehler.

Mir gehen die Ideen aus - hat es jemand geschafft, awslogger so zu konfigurieren, dass das datetime_format tatsächlich korrekt verwendet wird?

Edit:

Ich bin derzeit mehr Konsolenprotokolle zu den lokalen python2.7 push.py Hacking zu sehen, was :)


RESOLVED wird:

Ok Problem, war, dass ich in dieses Projekt kam, nachdem die anfängliche Einrichtung erstellt worden war und ich den Eindruck hatte, dass der Logger so konfiguriert war, dass er die .conf-Datei an einem Ort verwendete:

wurde dynamisch aufgefüllt.

Die Umgebung verfügte über ein Skript, das diese Position an awslogs-agent-setup.py gab, mit dem versucht wurde, dem Agenten zu verdeutlichen, dass die Konfiguration von hier gelesen werden sollte.

Allerdings hat dieses Skript nicht wirklich tun, was es tun sollte und wenn der Dienst gestartet wird, lesen Sie eigentlich die Config von

/var/awslogs/etc/awslogs.conf 

, die die Standardwerte enthalten.

Also die tatsächliche Auflösung war, den Parameter datetime_format in der Standardkonfiguration zu ändern und vergessen Sie die Konfiguration, die ich dachte, dass der Dienst verwendet wurde.

+0

Ich hatte eine EB-Umgebung, die /etc/awslogs/awslogs.conf verwendet, bis ich es neu aufgebaut habe, dann fing es an,/var ein stattdessen zu verwenden. Das ist komisch. Hast du jemals herausgefunden, warum es den falschen Weg benutzt hat? – Sean256

Antwort

0

Fügen Sie die Protokollierung zu /var/awslogs/lib/python2.7/site-packages/cwlogs/push.py hinzu und sehen Sie, wie die tatsächlichen Konfigurationsparameter interpretiert werden.

Sie werden wahrscheinlich feststellen, dass der Dienst tatsächlich Konfigurationsdatei an Standardverzeichnis verwendet: für sie

/var/awslogs/etc/awslogs.conf

und daher müssen Sie bearbeiten Konfigurationswerte dort tatsächlich gelesen werden.