Ich verwende nohup
zum Starten von Ansible-Playbooks im Master, die über boto3 von AWS Lambda erzeugt werden.
In diesem Playbook werden mehrere Worker erstellt, einige Aufgaben ausgeführt und beendet.
Deshalb möchte ich ein zuverlässiges Überwachungssystem dafür entwerfen / bauen. Im Moment schreibe ich die Protokolle nohup
in eine tasks.log
Datei im Master und schiebe sie in einen Speicher (vorerst S3), sobald die Ansible-Spiele abgeschlossen sind.
Aber ich wollte wissen, ob es eine viel elegantere (und / oder) bessere Methode gibt, um dasselbe zu tun? Und auch, ob es gute Werkzeuge gibt, die mir dabei helfen würden?
ansible
aws-lambda
monitoring
practices
Dawny33
quelle
quelle
nohup
wenn die Umleitung in eine Protokolldatei und die Ausführung im Hintergrund heutzutage in die Shell integriert sind.Antworten:
Ich bin mir nicht sicher, ob dies eine bewährte Methode ist, aber ich würde Filebeat verwenden , um das Protokoll nahezu in Echtzeit zu lesen und an ElasticSearch zu senden.
AWS bietet einen ElasticSearch-Service, mit dem Sie diesen Teil sparen können.
Der Nachteil der direkten Verwendung von Filebeat für Elasticsearch besteht darin, dass die Zeit der Ereignisse die Zeit ist, zu der der Prospektor sie gelesen hat. Wenn Ihre Protokolle einen Zeitstempel haben, können sie in einer anderen Reihenfolge "aufgenommen" werden als erstellt (von mehreren Mitarbeitern).
Sie können Logstash dazwischen hinzufügen und von Filebeat zu Logstash und dann zu Elasticsearch senden. Logstash kann Ihre Protokolle interpretieren und in Felder aufteilen, um sie erneut zu suchen. Auf die gleiche Weise können Sie Ihr Datum im Protokoll analysieren, sodass Ereignisse mit einem korrekten Zeitstempel gespeichert werden.
Sie können logstash direkt verwenden, um die Protokolle zu lesen, aber es ist ziemlich ressourcenintensiv, so dass ich es getrennt halten würde, ohne die Arbeiter zu beeinträchtigen.
Wenn Sie eine Lizenz von x-pack kaufen, können Sie Benachrichtigungen zu Nachrichten direkt von elasticsearch hinzufügen.
Wenn Sie sich die Last der Wartung von Logstash ersparen möchten, gibt es Dienste wie logmatic.io, die Ihnen den vollen Stapel bieten. Sie müssen nur Ihre Protokolle pushen und eine Reihe von Parsing-Vorgängen werden ab Lager durchgeführt.
quelle