Ich habe den Inhalt des CloudWatch Logs-Agenten überprüft (auf halbem Weg) Ich habe es nachgeschlagen. Ich gehe davon aus, dass ich den obigen Blog gelesen habe.
/var/awslogs/lib/python2.7/site-packages/cwlogs/push.py
War der Code, der die überwachten Protokolle liest und das Ereignis an den CloudWatch-Protokolldienst weiterleitet. Es sind ungefähr 1800 Codezeilen. Es ist ein Schmerz für mich selbst zu lesen, der nicht daran gewöhnt ist, aber die Hauptverarbeitung ist in diesem Code abgeschlossen, sodass Sie den Vorgang verstehen können, indem Sie ihn lesen. "FileEventsReader._run (self)" ist der Teil, der das Protokoll tatsächlich liest
Die Zukunft ist eine Seite.
Weil es in aws cli enthalten ist,
/usr/lib/python2.7/dist-packages/awscli (awscli Installationsverzeichnis)
https://github.com/aws/aws-cli (awscli git repository)
https://github.com/boto/boto3/ (Bibliothek von awscli verwendet)
Ich suchte nach Untergebenen, aber es gab nichts.
Ich drehte mich um und sah mir die Laufzeitoptionen des Cloudwatch-Protokollagenten an.
/var/awslogs/bin/awslogs-agent-launcher.sh
Betrachtet man es so.
/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
Als ich diesen Befehl beim Löschen der Einstellung tatsächlich ausführte, funktionierte er, wenn Folgendes der Fall war
AWS_CONFIG_FILE=/var/awslogs/etc/aws.conf \
/var/awslogs/bin/aws logs push \
--config-file /var/awslogs/etc/awslogs.conf
Der Inhalt von AWS_CONFIG_FILE sieht folgendermaßen aus.
$ cat /var/awslogs/etc/aws.conf
[plugins]
cwlogs = cwlogs
[default]
region = us-west-2
Oh. Plugin! Also, wenn Sie nach einem Python-Paket suchen
/var/awslogs/lib/python2.7/site-packages/cwlogs
Existiert und hat die folgenden Dateien
filter.py
__init__.py
kvstore.py
parser.py
pull.py
push.py
retry.py
threads.py
utils.py
Von diesen waren "push.py" und "pull.py" Befehle und der Rest waren Dienstprogrammklassen. Ich habe die Funktion des Ziehens nicht untersucht, weil ich keinen Mut habe.
Zum ersten Mal habe ich erfahren, dass AWS CLI Funktionen mit Plugins hinzufügen kann. Ich denke, es ist möglich, ein Plug-In zu erstellen, indem auf cwlogs verwiesen wird.
Ich habe den Inhalt des CloudWatch Logs-Agenten überprüft (auf halbem Weg) Zusammenfassung der Untersuchungen zum Verhalten des CloudWatch Logs Agent
Recommended Posts