[PYTHON] J'ai recherché le contenu de l'agent CloudWatch Logs

introduction

J'ai vérifié le contenu de l'agent CloudWatch Logs (à mi-chemin) Je l'ai cherché. Je vais continuer en partant du principe que j'ai lu le blog ci-dessus.

Conclusion

/var/awslogs/lib/python2.7/site-packages/cwlogs/push.py

Était le code qui lit les journaux surveillés et pousse l'événement vers le service CloudWatch Logs. Il s'agit d'environ 1800 lignes de code. C'est pénible à lire pour moi qui n'y suis pas habitué, mais le traitement principal est terminé dans ce code, vous pouvez donc comprendre l'opération en le lisant. FileEventsReader._run (self) est la partie qui lit réellement le journal

L'avenir est un aparté.

awscli ne contient pas de code de journaux

Parce qu'il est inclus dans aws cli,

/usr/lib/python2.7/dist-packages/awscli  (répertoire d'installation awscli)
https://github.com/aws/aws-cli  (référentiel awscli git)
https://github.com/boto/boto3/  (Bibliothèque utilisée par awscli)

J'ai cherché des subordonnés, mais il n'y avait rien.

Processus d'exécution de l'agent Cloudwatch Logs

Je me suis retourné et j'ai regardé les options d'exécution de l'agent de journaux cloudwatch. /var/awslogs/bin/awslogs-agent-launcher.sh En regardant, c'est comme suit.

/usr/bin/env -i \
HTTPS_PROXY=$HTTPS_PROXY \
HTTP_PROXY=$HTTP_PROXY \
NO_PROXY=$NO_PROXY \
AWS_CONFIG_FILE=/var/awslogs/etc/aws.conf \
HOME=/root \
/bin/nice -n 4 \
/var/awslogs/bin/aws logs push \
--config-file /var/awslogs/etc/awslogs.conf \
--additional-configs-dir /var/awslogs/etc/config \
>> /var/log/awslogs.log 2>&1

Lorsque j'ai exécuté cette commande en effaçant le paramètre, cela fonctionnait s'il y avait ce qui suit

AWS_CONFIG_FILE=/var/awslogs/etc/aws.conf \
/var/awslogs/bin/aws logs push \
--config-file /var/awslogs/etc/awslogs.conf

En regardant le contenu d'AWS_CONFIG_FILE, c'est comme suit.

$ cat /var/awslogs/etc/aws.conf
[plugins]
cwlogs = cwlogs
[default]
region = us-west-2

plug-in awscli

Oh. Brancher! Donc, si vous recherchez un package python /var/awslogs/lib/python2.7/site-packages/cwlogs Existe et contient les fichiers suivants

filter.py
__init__.py
kvstore.py
parser.py
pull.py
push.py
retry.py
threads.py
utils.py

Parmi celles-ci, «push.py» et «pull.py» étaient des commandes et le reste des classes utilitaires. Je n'ai pas étudié la fonction de traction parce que je n'ai pas de courage.

en conclusion

Pour la première fois, j'ai appris que l'AWS CLI peut ajouter des fonctionnalités avec des plugins. Je pense qu'il est possible de créer un plug-in en se référant aux cwlogs.

référence

J'ai vérifié le contenu de l'agent CloudWatch Logs (à mi-chemin) Résumé des recherches sur le comportement de l'agent CloudWatch Logs

Recommended Posts

J'ai recherché le contenu de l'agent CloudWatch Logs
J'ai vérifié le contenu du volume du docker
J'ai recherché Railway Kawayanagi à partir des données
[Python] J'ai cherché le plus long Pokémon Shiritori
Mongodb Introduction la plus courte (2) J'ai recherché des dizaines de milliers
Simulation du contenu du portefeuille
J'ai recherché des commandes de CD.
Modifier la période de conservation des journaux CloudWatch Logs dans Lambda
J'ai étudié le mécanisme de connexion flask!
Comprendre le contenu du pipeline sklearn
J'ai recherché une carte similaire de Hearthstone avec Deep Learning
Voir le contenu de Kumantic Segumantion
Premiers pas avec python3
J'ai essayé d'analyser les résultats du vote de la région métropolitaine d'Osaka pour chaque quartier
J'ai lu le dictionnaire de synonymes Sudachi avec Pandas et essayé de rechercher des synonymes
J'ai essayé le serveur asynchrone de Django 3.0
J'ai essayé tensorflow pour la première fois
J'ai vérifié les options de copyMakeBorder d'OpenCV
La structure des dossiers de Flask est résumée
Je ne connaissais pas les bases de Python
La troisième nuit de la boucle avec pour
Pandas du débutant, par le débutant, pour le débutant [Python]
Le modèle de projet Python auquel je pense.
Lire tout le contenu de proc / [pid]
J'ai cherché un nombre premier avec python
La deuxième nuit de la boucle avec pour
[Python] J'ai recherché différents types! (Dactylographie)
J'ai essayé de résumer les paramètres des différentes bases de données de Django (MySQL, PostgreSQL)
[Bash] Passez le contenu du fichier aux variables pour chaque colonne avec while read
Je veux ajouter du silence pendant 1 seconde au début d'un fichier wav
J'ai recherché les compétences nécessaires pour devenir ingénieur web avec Python
J'ai essayé d'automatiser le travail de masquage du visage de l'image de coordination pour l'usure
Récupérer le contenu de git diff depuis python
J'ai essayé la fonction de tableau croisé dynamique des pandas
J'ai recherché dans la bibliothèque l'utilisation de l'API Gracenote
J'ai essayé l'analyse par grappes de la carte météo
L'histoire selon laquelle le coût d'apprentissage de Python est faible
vprof - J'ai essayé d'utiliser le profileur pour Python
J'ai lu l'implémentation de range (Objects / rangeobject.c)
Le contenu du didacticiel Python (chapitre 5) est résumé dans une puce.
Le contenu du didacticiel Python (chapitre 4) est résumé dans une puce.
J'ai résolu le problème le plus profond d'Hiroshi Yuki.
Attention à la valeur de retour de __len__
J'ai vérifié la liste des touches de raccourci de Jupyter
J'ai joué avec Floydhub pour le moment
J'ai essayé la programmation python pour la première fois.
Le contenu du didacticiel Python (chapitre 10) est résumé dans une puce.
J'ai essayé de corriger la forme trapézoïdale de l'image
Essayez Progate Free Edition [Python I]
J'ai vérifié la période de rétention de session de django
J'ai vérifié la vitesse de traitement de la numpy unidimensionnelle
J'ai essayé Mind Meld pour la première fois
J'ai touché certaines des nouvelles fonctionnalités de Python 3.8 ①
Vider le contenu de la base de données redis avec lua
Code pour vérifier le fonctionnement de Python Matplot lib
Le contenu du didacticiel Python (chapitre 6) est résumé dans une puce.
J'ai lu et implémenté les variantes de UKR
Le contenu du didacticiel Python (chapitre 3) est résumé dans une puce.
Je souhaite personnaliser l'apparence de zabbix