Gibt es Best Practices und / oder Tools für die Überwachung von "nohup"?


7

Ich verwende nohupzum 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 nohupin eine tasks.logDatei 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?


Wäre etwas in der Nähe von ELK / Filebeat, um die Protokolle zu pushen, eine interessante Option?
Tensibai

@ Tensibai Ja, wir erforschen auch den ELK-Stack :). Aber im Moment reicht S3 aus.
Dawny33

Ich bin sehr unsicher zu verstehen, wonach Sie tatsächlich
suchen

Was willst du über sie wissen?
Xiong Chiamiov

Es scheint albern zu sein, nohupwenn die Umleitung in eine Protokolldatei und die Ausführung im Hintergrund heutzutage in die Shell integriert sind.
Küken

Antworten:


8

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.