2

Vous avez trouvé la solution après avoir effectué une recherche, mais en la laissant ici si quelqu'un se retrouve dans une confusion similaire. Voir la résolution à la fin.Heure de l'événement incorrect dans les événements du journal CloudWatch

J'essaie de comprendre pourquoi le service de journal AWS CloudWatch ne parvient pas à comprendre le bon horodatage pour mes événements de journal. Actuellement, tous mes événements sont enregistrés sous Time 2017-01-01, quel que soit l'horodatage réel de l'événement.

Je nourrir le journal de syslog où docker sauve les événements journalisés et je configuré docker pour mettre l'horodatage au format:

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

Je configuré avec les paramètres awslogs Service:

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

J'ai redémarré le service et frappé le serveur, mais quand je vais à CloudWatch et voir les entrées du journal, même les entrées qui commencent effectivement par l'horodatage 170105/103242 sont réellement enregistrées comme des événements qui appartiennent à la date 2017-01-01 contenant tous les événements entre 01-01 et 01-05

Quand je regarde le awslogs.log je peux voir les lignes suivantes:

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. 

Cela me fait penser que la configuration est probablement pas en fait la lecture/en utilisant la DATETIME_FORMAT mais je ne comprends pas pourquoi il décide de finir par utiliser par défaut. J'ai essayé de mettre

use_gzip_http_content_encoding = true 

sous les paramètres généraux, mais il ne change pas les erreurs.

Je manque d'idées - quelqu'un a-t-il réussi à configurer awslogger d'une manière où le format datetime_format est réellement utilisé correctement?

Edit:

Je suis actuellement piratage plus journaux de la console à push.py de python2.7 local pour voir ce qui se passe :)


RÉSOLU:

Ok, problème était que je suis venu dans ce projet après que la configuration initiale a été créée et j'ai eu l'impression que l'enregistreur a été configuré pour utiliser le fichier .conf à l'emplacement:

/etc/awslogs/awslogs.conf 

qui a été rempli dynamiquement.

L'environnement avait un script qui donnait cet emplacement à awslogs-agent-setup.py qui essayait de faire comprendre à l'agent que la configuration devait être lue à partir d'ici.

Cependant ce script ne réalisons pas ce qu'il était censé faire et quand le service a commencé, il fait lire la config de

/var/awslogs/etc/awslogs.conf 

qui contient les valeurs par défaut. Donc, la résolution réelle était de changer le paramètre datetime_format dans la configuration par défaut et d'oublier la configuration que je pensais que le service utilisait.

+0

J'avais un environnement EB qui utilisait /etc/awslogs/awslogs.conf jusqu'à ce que je le reconstruise, puis il a commencé à utiliser/var one à la place. C'est étrange. Avez-vous déjà compris pourquoi il utilisait le mauvais chemin? – Sean256

Répondre

0

Ajoutez la journalisation à /var/awslogs/lib/python2.7/site-packages/cwlogs/push.py et observez comment les paramètres de configuration réels sont interprétés.

Vous constaterez probablement que le service utilise effectivement le fichier de configuration à l'emplacement par défaut:

/var/awslogs/etc/awslogs.conf

et par conséquent vous devez modifier les valeurs de configuration il leur être réellement lu.