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.
/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é.
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.
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
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.
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.
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