Wo speichert Juju ein Protokoll aller ausgeführten Befehle und deren Ausgabe für jede Einheit?

8

Manchmal tritt beim Bereitstellen eines Dienstes (und insbesondere einer neuen Einheit) für einen Juju-Charme ein Fehler auf, und es scheint keine Möglichkeit zu geben, genau herauszufinden, was es war.

Gibt es eine Art Ausgabeprotokoll aller Befehle, die das Gerät ausgeführt hat?

Nathan Osman
quelle

Antworten:

6

Es scheint, dass jede Einheit ein Protokoll der ausgeführten Befehle speichert . Sie können darauf zugreifen, indem Sie Jujus Befehl wie folgt nutzen:/var/log/juju/unit/unit-service_name-service_number.logssh

juju ssh service_name/service_number

Dadurch werden Sie in eine Shell für diese Einheit versetzt. Sie können dann einen Texteditor verwenden oder einfach nur cat | lessdas Protokoll lesen.

Nathan Osman
quelle
3

Sie können juju debug-logein verteiltes Protokoll aller Vorgänge aller Agenten abrufen. Es ermöglicht das Unterdrücken von Dingen nach Protokollstufe, also juju debug-log -hlesen Sie. Es fehlen zwar ein paar Dinge, aber zum größten Teil sollte es Ihnen das geben, wonach Sie suchen.

Der folgende Befehl zeigt alle Protokolle vom Beginn der Zeit an. Es werden also auch die Protokolle von vor dem Start angezeigtjuju debug-log

juju debug-log --replay
SpamapS
quelle
Aber beantwortet dies die Frage? Ich brauche die Ausgabe der Befehle, nachdem sie ausgeführt wurden.
Nathan Osman
Genau das bietet das Debug-Protokoll. Ausgabe aller Befehle, die von allen Agenten ausgeführt werden (Hooks, API-Aufrufe, alles). Charms können auch mithilfe von 'juju-log' steuern, auf welcher Protokollstufe ihre Ausgabe erzeugt wird.
SpamapS
Aber gibt dies die Ausgabe von Befehlen zurück, die ausgeführt wurden, bevor ich aufrufe juju debug-log?
Nathan Osman
Nein, das Debug-Protokoll informiert die Agenten darüber, dass sie mit dem Senden ihrer Protokolle beginnen müssen. Wenn Sie die Protokolle vergangener Agentenaktivitäten
anzeigen
Ja, das war die Frage, die ich gestellt habe, und die Antwort unten enthält diese Informationen.
Nathan Osman
1

Sie finden das vollständige Protokoll innerhalb des data-dirSets in Ihrer environments.yamlDatei.

Öffnen Sie es mit gksudo <path_to_data-dir>, navigieren Sie durch die Ordner zu Ihrem unitsOrdner, öffnen Sie den Dienstordner, den Sie anzeigen möchten, und sehen Sie sich die unit.logDatei an.

Bruno Pereira
quelle