automation-suite
2023.10
true
Automation Suite unter Linux – Installationsanleitung
Last updated 15. Okt. 2024

Ausführen des Diagnosetools

Das Automation Suite-Diagnosetool führt eine Reihe von Überprüfungen durch, um einen Bericht über den Zustand des Clusters zu erstellen, den Sie analysieren können, um Probleme und deren potenzielle Ursachen zu identifizieren. Das Tool hilft Ihnen bei der Suche nach häufigen Problemen, wie z. B. verlorene Datenbankkonnektivität oder ungültige bzw. abgelaufene Anmeldeinformationen.

Das Automation Suite-Diagnosetool ist sowohl in uipathctl als auch in uipathtools verfügbar, die sie auf Ihre Verwaltungsmaschine herunterladen können.
uipathtools ist ein CLI-Tool, das eine Teilmenge von uipathctl-Funktionen enthält, die für Integritätsbefehle spezifisch sind. Das Tool ist abwärtskompatibel und funktioniert mit allen unterstützten Versionen der Automation Suite. Wir empfehlen, uipathtools als ersten Schritt zu verwenden, wenn ein Problem auftritt.

Schnelle Validierung

Schnelle Validierung

Die Befehle check und test bieten schnelle Einblicke in den Status des Clusters, ohne eine eingehende Analyse durchzuführen.
  • check ist vom Integritäts- und Synchronisierungsstatus von ArgoCD abhängig und ändert keinen Status im Cluster
  • test sieht sich die Anwendungen, Bereitstellungen oder Pods an und ändert vorübergehend den Status des Clusters, um Ihnen diese Erkenntnisse zu liefern.

Zustandsprüfung

Um eine Zustandsprüfung durchzuführen, verwenden Sie einen der folgenden Befehle, je nachdem, welches CLI-Tool Sie verwenden:

  • Wenn Sie uipathctl verwenden, führen Sie Folgendes aus:
    ./uipathctl health check./uipathctl health check
  • Wenn Sie uipathtools verwenden, führen Sie Folgendes aus:
    ./uipathtools health check./uipathtools health check

Standardmäßig führt der Befehl uipathctl health check Zustandsprüfungen für alle Komponenten aus. Er ermöglicht Ihnen jedoch auch, genau die Komponenten zu überprüfen, an denen Sie interessiert sind:
  • Wenn Sie Komponenten von der Ausführung ausschließen möchten, verwenden Sie das Flag --excluded. Wenn Sie beispielsweise den Zustand von SQL nicht überprüfen möchten, führen Sie uipathctl health check --excluded SQL aus. Der Befehl überprüft den Zustand aller Komponenten mit Ausnahme von SQL.
  • Wenn Sie nur bestimme Komponenten in die Ausführung einschließen möchten, verwenden Sie das Flag --included. Wenn Sie beispielsweise nur das DNS und den Objektspeicher überprüfen möchten, führen Sie uipathctl health check --included DNS,OBJECTSTORAGE aus.

Analysieren der Protokolle

  1. Nach dem Ausführen einer Zustandsüberprüfung zeigen die Protokolle, dass die Zustandsprüfung für die Data Service-Anwendung fehlgeschlagen ist.
    [DATASERVICE][DATASERVICE_HEALTH] Application health check failed: health status is Progressing and sync status is Synced❌ [DATASERVICE]
        ❌ [DATASERVICE_HEALTH] Application health check failed: health status is Progressing and sync status is Synced
  2. Nach weiteren Untersuchungen wird klar, dass die Data Service-Anwendung fehlgeschlagen ist, da sich die Pods dataservice-runtime-8f5bb7d56-v5krg und dataservice-taskrunner-787df76c74-98h5l in einem fehlerhaften Zustand befinden. Bei einer weiteren Analyse stellen Sie fest, dass das fehlende dataservice-external-storage-secret fehlt.
    [POD][LIST_NAMESPACES] Retrieved 25 namespaces to check pod health
        ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-runtime-8f5bb7d56-v5krg cannot mount volume: MountVolume.SetUp failed for volume "external-storage-creds" : secret "dataservice-external-storage-secret" not found
        ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-runtime-8f5bb7d56-xs9t5 cannot mount volume: MountVolume.SetUp failed for volume "external-storage-creds" : secret "dataservice-external-storage-secret" not found
        ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-taskrunner-787df76c74-98h5l cannot mount volume: MountVolume.SetUp failed for volume "external-storage-creds" : secret "dataservice-external-storage-secret" not found❌ [POD]
        ✔ [LIST_NAMESPACES] Retrieved 25 namespaces to check pod health
        ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-runtime-8f5bb7d56-v5krg cannot mount volume: MountVolume.SetUp failed for volume "external-storage-creds" : secret "dataservice-external-storage-secret" not found
        ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-runtime-8f5bb7d56-xs9t5 cannot mount volume: MountVolume.SetUp failed for volume "external-storage-creds" : secret "dataservice-external-storage-secret" not found
        ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-taskrunner-787df76c74-98h5l cannot mount volume: MountVolume.SetUp failed for volume "external-storage-creds" : secret "dataservice-external-storage-secret" not found
  3. Um dieses Problem zu beheben, stellen Sie sicher, dass Sie die richtigen Anmeldeinformationen für den Objektspeicher in der cluster_config.json angegeben haben.

Integritätstest

Um einen Integritätstest auszuführen, verwenden Sie je nach CLI-Tool einen der folgenden Befehle:

  • Wenn Sie uipathctl verwenden, führen Sie Folgendes aus:
    ./uipathctl health test./uipathctl health test
  • Wenn Sie uipathtools verwenden, führen Sie Folgendes aus:
    ./uipathtools health test./uipathtools health test

Standardmäßig führt der Befehl uipathctl health test Zustandsprüfungen für alle Komponenten aus. Er ermöglicht Ihnen jedoch auch, genau die Komponenten zu überprüfen, an denen Sie interessiert sind:
  • Wenn Sie Komponenten von der Ausführung ausschließen möchten, verwenden Sie das Flag --excluded. Wenn Sie beispielsweise den Zustand von SQL nicht überprüfen möchten, führen Sie uipathctl health test --excluded SQL aus. Der Befehl überprüft den Zustand aller Komponenten mit Ausnahme von SQL.
  • Wenn Sie nur bestimme Komponenten in die Ausführung einschließen möchten, verwenden Sie das Flag --included. Wenn Sie beispielsweise nur das DNS und den Objektspeicher überprüfen möchten, führen Sie uipathctl health test --included DNS,OBJECTSTORAGE aus.
Hinweis:
Wenn Sie die Ausgabe der Befehle check und test für die Data Service-Anwendung vergleichen, können Sie sehen, dass erstere den Zustand der Anwendung validiert, während letztere das Routing überprüft.

Bekanntes Problem

Möglicherweise erhalten Sie eine Fehlermeldung ähnlich dem folgenden Beispiel. Sie können dies ignorieren, da keine Actions erforderlich sind.

E0621 23:32:56.426321   24470 reflector.go:138] external/io_k8s_client_go/tools/cache/reflector.go:167: Failed to watch *v1.Pod: context deadline exceeded
E0621 23:32:56.426392   24470 reflector.go:138] external/io_k8s_client_go/tools/cache/reflector.go:167: Failed to watch *v1.Pod: context deadline exceeded
E0621 23:32:56.444420   24470 reflector.go:138] external/io_k8s_client_go/tools/cache/reflector.go:167: Failed to watch *v1.Pod: context deadline exceeded
E0621 23:32:56.446150   24470 reflector.go:138] external/io_k8s_client_go/tools/cache/reflector.go:167: Failed to watch *v1.Pod: context deadline exceeded
E0621 23:32:56.513357   24470 reflector.go:138] external/io_k8s_client_go/tools/cache/reflector.go:167: Failed to watch *v1.Pod: context deadline exceededE0621 23:32:56.426321   24470 reflector.go:138] external/io_k8s_client_go/tools/cache/reflector.go:167: Failed to watch *v1.Pod: context deadline exceeded
E0621 23:32:56.426392   24470 reflector.go:138] external/io_k8s_client_go/tools/cache/reflector.go:167: Failed to watch *v1.Pod: context deadline exceeded
E0621 23:32:56.444420   24470 reflector.go:138] external/io_k8s_client_go/tools/cache/reflector.go:167: Failed to watch *v1.Pod: context deadline exceeded
E0621 23:32:56.446150   24470 reflector.go:138] external/io_k8s_client_go/tools/cache/reflector.go:167: Failed to watch *v1.Pod: context deadline exceeded
E0621 23:32:56.513357   24470 reflector.go:138] external/io_k8s_client_go/tools/cache/reflector.go:167: Failed to watch *v1.Pod: context deadline exceeded

Umfassende Validierung

Umfassende Validierung

Der diagnose -Befehl bietet tiefe Einblicke in den Status des Clusters. Es hilft Ihnen, Probleme auf allen Ebenen zu identifizieren, z. B. SQL, Objektspeicher, Knoten, Geheimnis, Istio, Metworking usw.
  • Sie deckt sowohl die Befehle check als auch test ab.
  • Es führt die Voraussetzungsprüfungen durch, die vor der Installation der Automation Suite durchgeführt wurden, um Änderungen an der Umgebungskonfiguration zu validieren, die nach der Installation vorgenommen wurden und die eine potenzielle Ursache für das Problem sein können.
  • Es wird auf allen Knoten ausgeführt, um alle knotenspezifischen Probleme zu sammeln, z. B. die Nichtverfügbarkeit von Ressourcen, Netzwerkinterferenzen usw.

Um eine Diagnoseprüfung auszuführen, verwenden Sie je nach CLI-Tool einen der folgenden Befehle:

  • Wenn Sie uipathctl verwenden, führen Sie Folgendes aus:
    ./uipathctl health diagnose cluster_config.json --versions version.json./uipathctl health diagnose cluster_config.json --versions version.json
  • Wenn Sie uipathtools verwenden, führen Sie Folgendes aus:
    ./uipathtools health diagnose cluster_config.json --versions version.json./uipathtools health diagnose cluster_config.json --versions version.json
Hinweis:
Use the --namespace flag (optional) if you do not provide input.json . Yot need to use the flag only if the installation is not in the <uipath> namespace. Without the flag, diagnostics data will be fetched from all namespaces.

Hinweis:
Das oben genannte Beispiel wird gekürzt. Aktuelle Protokolle enthalten weitere Informationen. Wie Sie sehen, wird der Befehl diagnose auf mehreren Ebenen ausgeführt, z. B. Infrastruktur, Netzwerk, Speicher, Pods, DNS usw.

Analysieren der Protokolle

Es gibt zwei potenzielle Probleme, die in den vorherigen Protokollen zu erkennen sind:

  • Istio hat eine falsche Konfiguration, die Probleme beim Zugriff auf die Document Understanding-Plattform verursachen kann:
    [ISTIO][ISTIO_SYNC_STATUS] Istio sync is up-to-date
        ❌ [ISTIO_ENVOY_CONFIG_STATUS] Istio Envoy configs are not healthy: Error [IST0101] (VirtualService uipath/du-platform-vs) Referenced host:port not found: "aistorage:5000"❌ [ISTIO]
        ✔ [ISTIO_SYNC_STATUS] Istio sync is up-to-date
        ❌ [ISTIO_ENVOY_CONFIG_STATUS] Istio Envoy configs are not healthy: Error [IST0101] (VirtualService uipath/du-platform-vs) Referenced host:port not found: "aistorage:5000"
  • Data Service ist nicht verfügbar. Siehe Ceph im Codebeispiel.
    [DATASERVICE][DATASERVICE_HEALTH] Application health check failed: health status is Progressing and sync status is Synced
    ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-runtime-8f5bb7d56-v5krg cannot mount volume: (combined from similar events): Unable to attach or mount volumes: unmounted volumes=[external-storage-creds], unattached volumes=[workload-socket is-secrets openssl istio-podinfo temp-location cert-location istio-data external-storage-creds workload-certs istio-envoy java domain-cert-config edk2 credential-socket tmp additional-ca-cert-config pem istiod-ca-cert istio-token app-secrets ceph-storage-creds]: timed out waiting for the condition
        ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-runtime-8f5bb7d56-xs9t5 cannot mount volume: MountVolume.SetUp failed for volume "external-storage-creds" : secret "dataservice-external-storage-secret" not found
        ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-taskrunner-787df76c74-98h5l cannot mount volume: MountVolume.SetUp failed for volume "external-storage-creds" : secret "dataservice-external-storage-secret" not found❌ [DATASERVICE]
        ❌ [DATASERVICE_HEALTH] Application health check failed: health status is Progressing and sync status is Synced
    ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-runtime-8f5bb7d56-v5krg cannot mount volume: (combined from similar events): Unable to attach or mount volumes: unmounted volumes=[external-storage-creds], unattached volumes=[workload-socket is-secrets openssl istio-podinfo temp-location cert-location istio-data external-storage-creds workload-certs istio-envoy java domain-cert-config edk2 credential-socket tmp additional-ca-cert-config pem istiod-ca-cert istio-token app-secrets ceph-storage-creds]: timed out waiting for the condition
        ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-runtime-8f5bb7d56-xs9t5 cannot mount volume: MountVolume.SetUp failed for volume "external-storage-creds" : secret "dataservice-external-storage-secret" not found
        ❌ [CANNOT_MOUNT_VOLUME] Pod uipath/dataservice-taskrunner-787df76c74-98h5l cannot mount volume: MountVolume.SetUp failed for volume "external-storage-creds" : secret "dataservice-external-storage-secret" not found

Bekannte Probleme (Known Issues)

Möglicherweise erhalten Sie eine Fehlermeldung ähnlich dem folgenden Beispiel. Sie können dies ignorieren, da keine Actions erforderlich sind.

Zusätzliche Dienstprogramme

Zusätzliche Dienstprogramme

Alle Befehle des Automation Suite -Diagnosetools (check, testund diagnose) unterstützen zusätzliche Filter- und Ausgabeformate.

Filtern

Filter

Beschreibung

Verwendungen

--included

Kommagetrennte Liste der Dienste, die in die Validierung einbezogen werden sollen

/uipathctl health diagnose cluster_config.json --versions.json --included ISTIO,INSIGHTS

Dieser Befehl führt die Diagnose nur für Istio und Insights aus.

--excluded

Kommagetrennte Liste der Dienste, die von der Validierung ausgeschlossen werden sollen

/uipathctl health test --excluded ISTIO,INSIGHTS

Dieser Befehl führt den Test im gesamten Cluster mit Ausnahme von Istio und Insights aus.

Ausgabeformat

Das Automation Suite Diagnosetool kann Berichte in mehreren Formaten generieren: json, yaml, textund junit. Sie können diese Werte über das Flag --output an einen beliebigen Befehl übergeben. Diese Ausgabeformate sind praktisch, wenn Sie diese Tools nutzen möchten, um darauf aufbauend Ihr eigenes Framework zur Fehlerbehebung zu erstellen.

Verwendungsbeispiele

Nutzung

Beispielausgabe

./uipathctl health check --included DATASERVICE --output json
./uipathtools health check --included DATASERVICE --output json./uipathctl health check --included DATASERVICE --output json
./uipathtools health check --included DATASERVICE --output json
{ "cluster/": { "DATASERVICE": [ { "name": "DATASERVICE_HEALTH", "description": "Application health check failed: health status is Progressing and sync status is Synced", "status": "failed" } ] } }{ "cluster/": { "DATASERVICE": [ { "name": "DATASERVICE_HEALTH", "description": "Application health check failed: health status is Progressing and sync status is Synced", "status": "failed" } ] } }
./uipathctl health check --included DATASERVICE --output yaml
./uipathtools health check --included DATASERVICE --output yaml./uipathctl health check --included DATASERVICE --output yaml
./uipathtools health check --included DATASERVICE --output yaml
? locationType: cluster : DATASERVICE: - name: DATASERVICE_HEALTH description: 'Application health check failed: health status is Progressing and sync status is Synced' status: failed? locationType: cluster : DATASERVICE: - name: DATASERVICE_HEALTH description: 'Application health check failed: health status is Progressing and sync status is Synced' status: failed
./uipathctl health check --included DATASERVICE --output text
./uipathtools health check --included DATASERVICE --output text./uipathctl health check --included DATASERVICE --output text
./uipathtools health check --included DATASERVICE --output text
Checks run on cluster/[DATASERVICE][DATASERVICE_HEALTH] Application health check failed: health status is Progressing and sync status is SyncedChecks run on cluster/ ❌ [DATASERVICE] ❌ [DATASERVICE_HEALTH] Application health check failed: health status is Progressing and sync status is Synced
./uipathctl health check --included DATASERVICE --output junit
./uipathtools health check --included DATASERVICE --output junit./uipathctl health check --included DATASERVICE --output junit
./uipathtools health check --included DATASERVICE --output junit
<testsuite name="Health" tests="1" errors="0" failures="1" time="0" timestamp="2023-06-22T01:59:08.313362+05:30" hostname=""> <testcase name="DATASERVICE_HEALTH" classname="" time="0"> <failure message="Application health check failed: health status is Progressing and sync status is Synced" type=""> </failure> </testcase> </testsuite><testsuite name="Health" tests="1" errors="0" failures="1" time="0" timestamp="2023-06-22T01:59:08.313362+05:30" hostname=""> <testcase name="DATASERVICE_HEALTH" classname="" time="0"> <failure message="Application health check failed: health status is Progressing and sync status is Synced" type=""> </failure> </testcase> </testsuite>

Lesen von Diagnoseberichten

INFO-Protokolle

INFO-Protokolle in Grün zeigen, dass die erforderlichen Prüfungen bestanden wurden. Sie sollten jedoch die Festplatten-/Speichernutzung weiterhin gründlich kontrollieren, um verborgene Fehler zu vermeiden.

WARN-Meldungen

Obwohl diese Meldungen kein hohes Risiko bedeuten, müssen Sie die Fehler möglicherweise korrigieren, da sie sich in bestimmten Fällen auf einige Dienste auswirken könnten.

Fehlermeldungen

Sie müssen die von diesen Nachrichten beschriebenen Probleme beheben, da sie sich auf einen Dienst im Cluster auswirken.

Rke2-Server oder Rke2-Agent-Dienst ausgefallen

Wenn diese Dienste ausgefallen sind, bedeutet dies, dass der Knoten ausgefallen ist. Versuchen Sie, den Dienst mithilfe des systemctl-Neustarts <service-name> neu zu starten. Dadurch sollte das Problem behoben werden.

Bereitgestellte Verzeichnisgröße unter /var/lib

Der Bericht zeigt die Größe des Verzeichnisses an, das unter /var/lib bereitgestellt wird, da Kubernetes es zum Speichern ihrer Daten verwendet. Wenn das Verzeichnis voll ist, können verschiedene Probleme auftreten. Um diese Probleme zu vermeiden, vergrößern Sie es entsprechend.

Rke2-Version

Der Bericht zeigt die Version rke2 an.

Festplattendruck oder Speicherdruck

Bei allen Knoten geben wir an, ob Festplattendruck oder Speicherdruck vorliegt. Ist das der Fall, können bei Workloads auf diesen Knoten Probleme auftreten. Überprüfen Sie, ob auf diesen Knoten andere Prozesse ausgeführt werden, die Ressourcen verbrauchen, und entfernen Sie sie gegebenenfalls.

Status der Ceph-Dienste

Wir verwenden Ceph als S3-Objektspeicher zum Speichern von Protokollen und Dateien aus verschiedenen Anwendungen. Sie können den Status der Dienste sehen. Falls sie ausgefallen sind, müssen Sie sie möglicherweise neu starten. Überprüfen Sie auch, ob die Festplattennutzung durch Ceph ausgereizt ist.

Ports 443 und 31443

Wir erwarten, dass Ports 443 und 31443 mit dem angegebenen Hostnamen offen sind. Der Bericht zeigt an, wenn sie nicht zugänglich sind. Stellen Sie sicher, dass Sie die entsprechenden Ports öffnen, falls dieser Hinweis kommt.

Gültigkeit des Zertifikats

Das Tool prüft, ob das hochgeladene Zertifikat für den angegebenen Hostnamen gültig ist und ob es noch nicht abgelaufen ist. Wenn das Zertifikat diese Kriterien nicht erfüllt, treten Fehler auf. Um dies zu verhindern, überprüfen Sie Ihr hochgeladenes Zertifikat und ändern Sie es bei Bedarf.

GPU

Da für einige Dienste erforderlich ist, dass auf einigen Knoten im Cluster eine GPU vorhanden ist, prüft das Automation Suite-Diagnosetool, ob GPU-Knoten vorhanden sind, und gibt die Anzahl dieser Knoten aus. Wenn Sie wissen, dass GPU-Knoten vorhanden sind, diese aber hier nicht angezeigt werden, bedeutet das, dass bei der GPU-Einrichtung ein Fehler aufgetreten ist.

RabbitMQ und DockerRegistry

RabbitMQ und DockerRegistry sind zwei wichtige Komponenten, die von einigen Diensten genutzt werden. Ist einer von ihnen ausgefallen, müssen Sie das Problem untersuchen und einen Neustart durchführen.

ArgoCD ausgefallen

Die ArgoCD ist unser Tool für das Application Lifecycle Management (ALM). Wenn einer seiner Dienste ausgefallen ist, kann das daran liegen, dass andere Anwendungen veraltet sind oder andere Probleme haben. Die Wiederherstellung dieser Dienste ist wichtig und erfordert möglicherweise weitere Fehlerbehebungen.

Fehlende oder mangelhafte ArgoCD-Anwendungen

Das Automation Suite-Diagnosetool zeigt an, ob ArgoCD-Anwendungen fehlen und beeinträchtigt sind.

  • Wenn Anwendungen fehlen, wechseln Sie zur ArgoCD-Benutzeroberfläche und synchronisieren Sie sie.
  • Wenn Anwendungen mangelhaft laufen, sind zusätzliche Fehlerbehebungen erforderlich, um die von der ArgoCD ausgelösten Fehler zu untersuchen.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
Uipath Logo White
Vertrauen und Sicherheit
© 2005–2024 UiPath. Alle Rechte vorbehalten