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$WHITELIST() oder SYSTEM$WHITELIST_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 AWS PrivateLink oder Azure Private Link verwendet, führen Sie die Funktion SYSTEM$WHITELIST_PRIVATELINK aus, um die IP-Adresse und die Ports des Snowflake-Hostnamens abzurufen und so die Netzwerkverbindungen zu Snowflake zu bewerten und Fehler zu beheben.

Weitere Informationen dazu finden Sie unter AWS PrivateLink & Snowflake und Azure Private Link und Snowflake.

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 neueste Version von SnowCD (d. h. snowcd) für Ihr Linux-Betriebssystem 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>
    
  4. Extrahieren Sie die Datei.

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

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

    $ mv <filename> snowcd
    

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 neueste Version der beglaubigten SnowCD-pkg-Datei für Ihr Apple-Betriebssystem (d. h. Mac64) herunter.

  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.

    $ shasum -a 256 <filename>
    
  4. Extrahieren Sie die Datei.

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

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

    mv <filename> snowcd
    

Windows

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

  1. Laden Sie die neueste Version von SnowCD (d. h. snowcd) für Ihr Windows-Betriebssystem (d. h. win64) 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. Führen Sie über die Befehlszeile der macOS- oder Linux-Umgebung ./snowcd <path_to_whitelist.json> [flags] aus.

  2. Führen Sie in Windows-Umgebungen snowcd.exe <path_to_whitelist.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

Wenn Sie versuchen, SnowCD auszuführen, ohne die JSON-Whitelist-Informationen von SELECT SYSTEM$WHITELIST() 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$WHITELIST()
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

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

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-Whitelist 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 whitelist.json \
  --proxyHost <hostname> \
  --proxyPort <port_number> \
  --proxyUser <username> \
  --proxyPassword <password>

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 whitelist.json \
  --proxyHost <hostname> \
  --proxyPort <port_number> \
  --proxyUser <username> \
  --proxyPassword <password> \
  --logLevel trace \
  --logPath test.log

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