SnowCD (Connectivity Diagnostic Tool)

SnowCD (Snowflake Connectivity Diagnostic Tool) unterstützt Benutzer bei der Diagnose und Problembehandlung ihrer Netzwerkverbindung zu Snowflake.

Unter diesem Thema:

Übersicht

SnowCD nutzt die von der Funktion SYSTEM$ALLOWLIST() oder SYSTEM$ALLOWLIST_PRIVATELINK() aufgelisteten IP-Adressen und Ports des Snowflake-Hostnamens, um eine Reihe von Verbindungsprüfungen durchzuführen und so die Netzwerkverbindung zu Snowflake zu bewerten und Fehler zu beheben.

Wichtig

Wenn Ihr Snowflake-Konto für die Verbindung zum Snowflake-Dienst private Konnektivität verwendet, führen Sie die Funktion SYSTEM$ALLOWLIST_PRIVATELINK aus, um die IP-Adresse und die Ports des Snowflake-Hostnamens abzurufen und Netzwerkverbindungen zu Snowflake zu bewerten und Fehler zu beheben.

Weitere Informationen dazu finden Sie unter:

SnowCD liefert eines der folgenden Ergebnisse:

  1. All checks passed, um auf eine funktionierende Netzwerkverbindung hinzuweisen.

  2. Eine Meldung mit dem Hinweis, dass eine oder mehrere Prüfungen fehlgeschlagen sind, mit einem Vorschlag zur Fehlerbehebung.

Mit SnowCD können Benutzer die Netzwerkverbindung zu Snowflake jederzeit überprüfen, um sicherzustellen, dass die erforderlichen Konfigurationseinstellungen korrekt sind. Beispielsweise können Benutzer SnowCD in folgende Anwendungsfälle integrieren:

  1. Automatisierte Bereitstellungsskripte.

  2. Eine Voraussetzungsprüfung vor der Bereitstellung eines Services, der eine Verbindung zu Snowflake herstellt.

  3. Umgebungsprüfungen beim Starten eines neuen Computers.

  4. Regelmäßige Überprüfungen auf ausführenden Computern.

SnowCD funktioniert entweder mit direkten Verbindungen oder Verbindungen über Proxyserver.

SnowCD überprüft den Zugriff auf die Snowflake-Datenbank und auf Stagingbereiche, in denen Daten temporär (z. B. zum Laden) gespeichert werden.

SnowCD überprüft, ob eine HTTP-Antwort vom HTTP-Host zurückgegeben wurde. Dadurch können Probleme wie die folgenden erkannt werden:

  • An der angegebenen IP-Adresse und dem angegebenen Port wird kein HTTP-Server ausgeführt.

  • Bei der Suche nach einem DNS (Domain Name System) ist ein Fehler aufgetreten.

  • Ein Man-in-the-Middle-Angriff hat stattgefunden, bei dem ein ungültiges Zertifikat verwendet wurde, um die Identität des gewünschten Services anzunehmen.

  • Bestimmte Arten anderer Netzwerkfehler unterhalb der HTTP-Ebene.

SnowCD erkennt nicht alle möglichen Probleme. Folgende bekannte Einschränkungen bestehen:

  • Stagingbereiche erfordern zusätzliche Authentifizierungsinformationen, über die SnowCD nicht verfügt. Obwohl SnowCD den Basiszugriff auf eine Stagingbereiche überprüft, führt SnowCD keine strenge Überprüfung des HTTP-Antwortcodes für den Stagingbereich durch. Daher erkennt SnowCD keine Probleme wie:

    • Verweigerung des Zugriffs auf Richtlinien für Amazon S3-Bucket, Azure Blob-Speicher oder Google Cloud Storage für Stagingbereiche.

    • Beim Herstellen der Verbindung zum Proxyserver des Kunden ist ein Problem aufgetreten. Der Proxyserver gibt beispielsweise einen HTTP 403-Fehler zurück.

Da SnowCD nicht alle möglichen Probleme erkennt, empfiehlt Snowflake, dass Sie nach dem erfolgreichen Überprüfen des Zugriffs auf einen Stagingbereich über SnowCD einen PUT-Befehl ausführen, um eine Datei in den Stagingbereich zu laden. Die einfachste Methode zum Ausführen eines PUT-Befehls ist normalerweise SnowSQL.

Achtung

Die Problembehandlung bei Netzwerkverbindungsproblemen ist eine Herausforderung. Abhängig von der Umgebung kann es erforderlich sein, SnowCD bei anderen Lösungsansätzen zur Problembehandlung zu verwenden. Wenn SnowCD beispielsweise Informationen zu einem OCSP-Problem zurückgibt, lesen Sie die OCSP-Abschnitte auf dieser Seite.

Verwenden von SnowCD

Schritt 2: SnowCD herunterladen und installieren

Linux

Führen Sie die folgenden Schritte aus, um SnowCD unter Linux herunterzuladen und zu installieren:

  1. Laden Sie die aktuelle SnowCD-Version von der Seite SnowCD-Download herunter.

  2. Öffnen Sie die Linux-Konsole, und navigieren Sie zu dem Verzeichnis, in das Sie die Datei heruntergeladen haben.

  3. Überprüfen Sie die SHA256-Prüfsummenübereinstimmungen.

    $ sha256sum <filename>
    
    Copy
  4. Extrahieren Sie die Datei.

    $ gunzip <filename>
    
    Copy
  5. Machen Sie die Datei ausführbar.

    $ chmod +x <filename>
    
    Copy
  6. Benennen Sie die ausführbare Datei in snowcd um.

    $ mv <filename> snowcd
    
    Copy

Bemerkung

Linux-Benutzer, die RHEL oder CentOS ausführen, können SnowCD mit yum installieren, während Debian-Benutzer mit apt installieren können.

macOS

Führen Sie die folgenden Schritte aus, um SnowCD unter macOS herunterzuladen und zu installieren:

  1. Laden Sie die aktuelle Version der beglaubigten SnowCD-pkg-Datei von der Seite SnowCD-Download herunter.

    Die pkg-Dateien verwenden die folgende Namenskonvention:

    snowcd-<Versionsnummer>-darwin_x86_64.pkg

    Beispiel:

    snowcd-1.0.5-darwin_x86_64.pkg

  2. Öffnen Sie die Terminalanwendung, und navigieren Sie zu dem Verzeichnis, in das Sie die Datei heruntergeladen haben.

  3. Überprüfen Sie die SHA256-Prüfsummenübereinstimmungen.

    Zum Abrufen der Prüfsumme der Datei führen Sie folgenden Befehl aus:

    $ shasum -a 256 <filename>
    
    Copy

    Vergleichen Sie die Prüfsumme der Datei mit der auf der Download-Seite angezeigten Prüfsumme.

  4. Öffnen Sie die Finder-Anwendung, und navigieren Sie zu dem Verzeichnis, in das Sie die pkg-Datei heruntergeladen haben.

  5. Doppelklicken Sie auf die pkg-Datei, um SnowCD zu entpacken und zu installieren.

Die Dateien, einschließlich der ausführbaren Datei „snowcd“, werden im Verzeichnis „/opt/snowflake/snowcd“ installiert.

Windows

Führen Sie die folgenden Schritte aus, um SnowCD unter Windows herunterzuladen und zu installieren:

  1. Laden Sie die aktuelle SnowCD-Version von der Seite SnowCD-Download herunter.

  2. Führen Sie die MSI-Datei mit dem Windows Installer aus.

Schritt 3: SnowCD ausführen

Bevor Sie SnowCD unter macOS und Linux ausführen, können Sie das zugehörige Verzeichnis zu $PATH hinzufügen. In Windows-Umgebungen können Sie SnowCD zu den Umgebungsvariablen hinzufügen.

  1. In macOS- oder Linux-Umgebungen können Sie die ausführbare „snowcd“-Datei über die Befehlszeile starten, indem Sie snowcd <path_to_allowlist.json> [flags] ausführen.

  2. Führen Sie in Windows-Umgebungen snowcd.exe <path_to_allowlist.json> [flags] aus.

Tipp

Für eine vollständige Beschreibung der von snowcd unterstützten Flags führen Sie snowcd -h aus.

Wenn alle Prüfungen gültig sind, gibt SnowCD die Anzahl der Prüfungen für die Anzahl der Hosts mit der Meldung All checks passed wie folgt zurück.

Performing 30 checks on 12 hosts
All checks passed
Copy

Wenn Sie versuchen, SnowCD auszuführen, ohne die Informationen von SELECT SYSTEM$ALLOWLIST() an die JSON-Zulassungsliste zu übergeben, wird die folgende Fehlermeldung angezeigt, um Sie daran zu erinnern, die Datei mit der Liste der derzeit unterstützten Flags, ggf. deren Datentyp sowie eine kurze Beschreibung der Flags einzuschließen.

Error: please provide whitelist generated by SYSTEM$ALLOWLIST()
Usage:
./snowcd <path to input json file> [flags]

Examples:
./snowcd test.json

Flags:
  -h, --help                   help for ./snowcd
  --logLevel string            log level (panic, fatal[default], error, warning, info, debug, trace) (default "fatal")
  --logPath string             Output directory for log. When not specified, no log is generated
  --proxyHost string           host for http proxy. (When not specified, does not use proxy at all)
  --proxyIsHTTPS               Is connection to proxy secure, i.e. https. (default false)
  --proxyPassword string       password for http proxy.(default empty)
  --proxyPort int              port for http proxy.(default 8080) (default 8080)
  --proxyUser string           user name for http proxy.(default empty)
  -t, --timeout int            timeout for each hostname's checks in seconds (default 5) (default 5)
  --version                    version for ./snowcd
Copy

Wenn SnowCD eine falsche Einstellung oder Konfiguration feststellt, werden Informationen zu den fehlgeschlagenen Prüfungen mit einem Vorschlag zur Problembehandlung angezeigt. Die folgende Antwort zeigt beispielsweise einen ungültigen Hostnamen an.

Check for 1 hosts failed, display as follow:
==============================================
Host: www.google1.com
Port: 443
Type: SNOWFLAKE_DEPLOYMENT
Failed Check: DNS Check
Error: lookup www.google1.com: no such host
Suggestion: Check your configuration on DNS server
Copy

Verwenden von SnowCD mit einem HTTP-Proxy

SnowCD kann über einen HTTP-Proxy ausgeführt werden, um dessen Konnektivitätsstatus zu ermitteln.

Wichtig

Derzeit unterstützt Snowflake keine SSL-terminierenden Proxyserver.

Verwenden Sie bei der Konfiguration Ihrer Firewall- und Proxy-Zulassungsliste SSL-Passthrough (d. h. Umgehung der SSL-Entschlüsselung).

Verwenden Sie Linux als repräsentatives Beispiel, und führen Sie den folgenden Befehl aus, um SnowCD für einen Proxy auszuführen. Ersetzen Sie dabei die Flagwerte, falls erforderlich.

snowcd allowlist.json \
  --proxyHost <hostname> \
  --proxyPort <port_number> \
  --proxyUser <username> \
  --proxyPassword <password>
Copy

Die Protokollierung ist optional. Sie können die beiden Protokollierungsflags zum Proxybefehl hinzufügen. Es ist wichtig, einen Pfad zur Protokolldatei anzugeben, um sicherzustellen, dass beim Ausführen des Befehls die Protokollierung erfolgt.

snowcd allowlist.json \
  --proxyHost <hostname> \
  --proxyPort <port_number> \
  --proxyUser <username> \
  --proxyPassword <password> \
  --logLevel trace \
  --logPath test.log
Copy

Nachdem Sie diesen Befehl ausgeführt haben, können Sie die Ablaufverfolgung in der Datei test.log anzeigen.