Wir haben drei Server, auf denen Python-Programme ausgeführt werden, auf denen Datenanalyseaufgaben innerhalb einer tmux
Sitzung ausgeführt werden. Die Methode, die wir im Moment verwenden, besteht darin, die tmux
Sitzung zu verbinden und die Ausgabe in der Befehlszeile zu überwachen .
Diese Methode ist langwierig. Daher suchen wir nach einer Lösung, die die Überwachung des Programmfortschritts (Ausgabe auf CLI) für mehrere Server gleichzeitig automatisiert. Idealerweise möchten wir eine Web-UI-Lösung, aber auch eine CLI wäre perfekt geeignet.
Danke fürs Lesen.
monitoring
Guano
quelle
quelle
Antworten:
Jedes Mal, wenn Sie Ad-hoc-Befehle mit langer Laufzeit ausführen, sollten Sie einen Schritt zurücktreten und Ihren Prozess überdenken, da dies automatisiert werden sollte, einschließlich der Fehlerbehandlung.
Anstatt eine Verbindung zu den Servern herzustellen, um den Status anzuzeigen, besteht ein besserer Ansatz darin, diese Informationen zu veröffentlichen. Sie können eine Vielzahl von Dingen ausführen, wenn Sie eine Reihe von benutzerdefiniertem Code schreiben möchten. Am einfachsten ist es jedoch, die Ausgabe über Syslog an ein zentrales Protokollierungssystem (Syslog selbst oder ELK oder was auch immer) zu senden. Auf diese Weise können Sie alles von einem zentralen Ort aus überwachen.
Wenn dies keine einmalige Aufgabe ist, sollte die Überwachung automatisiert werden. Das heißt, Sie sollten niemals nur Protokolle ansehen müssen, um zu sehen, ob die Dinge so laufen, wie sie sollen. Stattdessen sollten Sie davon ausgehen, dass dies der Fall ist (und mit anderen Arbeiten fortfahren), bis Ihre Warnung ausgelöst wird . Dies ist eine Investition von Zeit, um zuverlässige und umfassende Warnmeldungen zu erhalten. Mit zunehmender Komplexität Ihrer Systeme zahlt sich dies jedoch aus, da Sie nicht jedes Mal alles überwachen müssen, wenn Sie Änderungen vornehmen .
quelle
Graylog
Da Ihnen bereits zwei Personen geraten haben, Ihren aktuellen Prozess zu überdenken (was ich zweitens befürworte, da dies irgendwann zu schlaflosen Nächten führen wird;)), werde ich einen anderen Weg gehen und eine bestimmte Software empfehlen, die meiner Meinung nach am besten passt Ihre Bedürfnisse: Graylog .
Ich habe einige ELK-Stapel sowohl für die Protokollaggregation als auch für Business Intelligence implementiert und verwendet und Graylog seit ungefähr zwei Jahren bei meinem derzeitigen Arbeitgeber ausgeführt / gewartet. Ich empfehle Graylog, da es die folgenden Funktionen enthält und meiner Meinung nach etwas einfacher einzurichten und zu warten ist:
Soweit ich Ihr Szenario verstehe, sieht es so aus, als müssten Sie auf bestimmte Ereignisse reagieren oder benachrichtigt werden, die in Ihrem Strom von Protokollnachrichten angezeigt werden. Wenn wir uns die Graylog-Funktionen ansehen :
Um Graylog auszuprobieren, würde ich die folgenden zwei Schritte empfehlen:
Hinweis: Diese beiden Schritte können Seiten und Seiten mit Best Practices füllen und sollten mindestens ein paar Gedanken enthalten. Ganz zu schweigen davon, dass Graylog keine Überwachungslösung ist und Graylog selbst von einem geeigneten Überwachungstool überwacht werden sollte (wie z. B. Icinga, Prometheus, Nagios, um nur einige zu nennen).
quelle
Ich stimme @Xiong Chiamiov zu und möchte eine klarere Option geben. Wenn Sie möchten, dass jede Zeile in der CLI überwacht wird, würde ich vorschlagen, die gesamte Ausgabe in eine bestimmte Datei und den Fehler in eine andere Datei umzuleiten. Verwenden Sie dann logstash oder filebeat , um diese beiden Dateien an Elasticsearch zu senden , und konfigurieren Sie Logtril mit Mit Kibana können Sie Ereignisse von mehreren Hosts in Echtzeit mit einer devops-freundlichen Oberfläche anzeigen, analysieren, suchen und protokollieren
quelle
zentralisiert
tmux
Während die anderen Antworten auf lange Sicht klüger und klüger sind, denke ich, dass die schnelle hackige CLI-Lösung erwähnenswert ist. Führen Sie es
tmux
auf einem Server aus, der alle anderen erreichen kann. Ein guter Ort dafür wäre eine Sprungbox oder ein anderer Ort, an dem die Leute normalerweise sowieso angemeldet sind. Innerhalb dieser "zentralen"tmux
SSH zu jeder Box in einem anderen Bereich und Ende alle Protokolldateien erforderlich. Sie können ctrl- verwenden b ", um mehr Fenster in einer Registerkarte innerhalb zu erhaltentmux
. Jetzt muss nur noch jemand an die "zentrale"tmux
Sitzung anhängen, um die Dinge zu überprüfen, und er kann den gesamten Cluster auf einen Blick sehen.Ich habe viel Zeit damit verbracht, die Web-UI-Lösungen zu entwickeln, auf die Sie hinarbeiten, aber wenn Sie sie heute brauchen, kann das Hacken von etwas
tmux
den Tag retten.quelle