2017-01-17 5 views
0

J'ai cette ligne de fonction lambda journal dans CloudWatch que je reçois par mail:Parse journaux CloudWatch en utilisant des motifs de filtre

/aws/lambda/sns-function | 2017/01/10/[$LATEST]425d9138c8d54ab57l0766ba74fdfd4p | 2017-01-10T00:04:30.734Z | 2017-01-10 00:04:30,734 :: ERROR :: error creating /tmp/tmpkRWp3S_20170110/file20170115.tar.gz: Command `['/bin/tar', '--create', '-z', '--file', u'/tmp/tmpkRWp3S_20170110/file20170115.tar.gz', '--', './']' returned non-zero exit status 1 

Comme expliqué dans ce doc Je veux mettre les modèles de filtres pour obtenir que les données importantes. Pour moi, je veux la date qu'une seule fois parce que dans la ligne ci-dessus, j'ai deux fois ces informations: 2017-01-10T00:04:30.734Z J'ai essayé d'utiliser un modèle comme celui-ci:

[...,timestamp,level,message=*ERROR*,...] 

mais j'eu cette erreur:

2017-01-17 10:45:58,091 :: ERROR :: logGroup: '/aws/lambda/sns-function' - logStream: 'None' 
2017-01-17 10:45:58,091 :: ERROR :: An error occurred (InvalidParameterException) when calling the FilterLogEvents operation: Duplicate field '...' 

Comment puis-je analyser le journal pour obtenir la date une fois?

Répondre

1

Les filtres d'indicateurs vous aident à rechercher et à rechercher des termes, des expressions ou des valeurs dans vos événements de journal. Ils ne suppriment pas les valeurs de l'événement de journal (l'horodatage dans votre cas). Vous pouvez modifier votre script pour exclure l'horodatage de la sortie (puisqu'il est déjà inclus).

De plus, vous utilisez un filtre de métrique pour les événements de journal délimités par des espaces. Votre délimiteur semble être ::, ce qui ne fonctionnerait pas dans ce cas. Le filtre de métrique interprétera cela comme un seul champ. Si vous souhaitez utiliser ce filtre de métrique, vous pouvez placer chaque champ entre crochets [] ou deux guillemets "".

Par exemple, vous pouvez utiliser ce modèle [timestamp, result=ERROR, message, exit_status=*1*] pour l'événement journal suivant:

[2017-01-10 00:04:30,734] [ERROR] "error creating /tmp/tmpkRWp3S_20170110/file20170115.tar.gz: Command `['/bin/tar', '--create', '-z', '--file', u'/tmp/tmpkRWp3S_20170110/file20170115.tar.gz', '--', './']' returned non-zero" "exit status 1" 

NOTE: La raison de l'erreur est que ellipsis devrait se produire qu'une seule fois dans le modèle.

+0

merci, comment puis-je afficher chaque champ dans le 'événement ['message']' en python délimité par "|" ? – JavaQueen

+0

Il est préférable de poster une nouvelle question pour cela (y compris votre extrait de code), et le marquer pour python :) –

+0

Très bien. Ici: http://stackoverflow.com/questions/41697901/format-the-message-of-cloudwatch-logs – JavaQueen