SnowCD (Connectivity Diagnostic Tool)

SnowCD (c.-à-d. Snowflake Connectivity Diagnostic Tool) aide les utilisateurs à diagnostiquer et à dépanner leur connexion réseau à Snowflake.

Dans ce chapitre :

Vue d’ensemble

SnowCD exploite les adresses IP et les ports du nom d’hôte Snowflake affichés par les fonctions SYSTEM$ALLOWLIST() ou SYSTEM$ALLOWLIST_PRIVATELINK() pour exécuter une série de vérifications de connexion, afin d’évaluer et de résoudre les problèmes de connexion réseau à Snowflake.

Important

Si votre compte Snowflake utilise une connectivité privée au service Snowflake, exécutez la fonction SYSTEM$ALLOWLIST_PRIVATELINK pour obtenir l’adresse IP et les ports du nom d’hôte Snowflake afin d’évaluer et de résoudre les problèmes de connexion réseau à Snowflake.

Pour plus d’informations, voir :

SnowCD renvoie l’un des résultats suivants :

  1. All checks passed pour indiquer une connexion réseau saine.

  2. Un message indiquant qu’une ou plusieurs vérifications ont échoué avec une suggestion de dépannage.

Les utilisateurs peuvent utiliser SnowCD afin d’évaluer la connexion réseau à Snowflake à tout moment pour vérifier que les paramètres de configuration requis sont corrects. Par exemple, les utilisateurs peuvent intégrer SnowCD à ces cas d’utilisation :

  1. Scripts de déploiement automatisés.

  2. Vérification des conditions préalables avant de déployer un service qui se connecte à Snowflake.

  3. Contrôles d’environnement lors du démarrage d’une nouvelle machine.

  4. Contrôles périodiques sur les machines en marche.

SnowCD fonctionne avec des connexions directes ou via des serveurs proxy.

SnowCD vérifie l’accès à la base de données Snowflake et aux zones de préparation utilisées pour stocker temporairement les données (par exemple, pour le chargement).

SnowCD vérifie qu’une réponse HTTP a été renvoyée par l’hôte HTTP. Cela peut détecter des problèmes tels que les suivants :

  • Aucun serveur HTTP n’est en cours d’exécution à l’adresse et au port IP spécifiés.

  • Échec de la recherche DNS (système de noms de domaine).

  • Une attaque Man-In-The-Middle s’est produite et a utilisé un certificat non valide pour emprunter l’identité du service souhaité.

  • Certains types d’autres pannes de réseau inférieures au niveau HTTP.

SnowCD ne détecte pas tous les problèmes possibles. Les limitations connues incluent :

  • Les zones de préparation nécessitent des informations d’authentification supplémentaires que SnowCD ne possède pas. Bien que SnowCD vérifie l’accès de base à une zone de préparation, SnowCD n’effectue pas une vérification stricte du code de réponse HTTP depuis la zone de préparation. Par conséquent, SnowCD ne détecte pas les problèmes tels que :

    • Refus de stratégie d’accès pour le compartiment Amazon S3, le stockage Azure Blob ou Google Cloud Storage pour les zones de préparation.

    • Il y a un problème de connexion au serveur proxy du client, par exemple le serveur proxy renvoie une erreur HTTP 403.

Parce que SnowCD ne détecte pas tous les problèmes possibles, Snowflake recommande qu’après avoir vérifié avec succès l’accès à une zone de préparation via SnowCD, vous effectuez un suivi en exécutant une commande PUT pour charger un fichier sur la zone de préparation. La manière la plus simple d’exécuter une commande PUT est généralement via SnowSQL.

Attention

La résolution des problèmes de connexion réseau est compliquée. Selon l’environnement, il peut être nécessaire d’utiliser SnowCD avec d’autres méthodes de dépannage. Par exemple, si SnowCD renvoie des informations sur un problème OCSP, consultez les sections OCSP de cette page.

Utilisation de SnowCD

Étape 2 : téléchargement et installation de SnowCD

Linux

Pour télécharger et installer SnowCD sous Linux, procédez comme suit :

  1. Téléchargez la dernière version de SnowCD à partir de la page Télécharger SnowCD.

  2. Ouvrez le terminal Linux et naviguez jusqu’au répertoire où vous avez téléchargé le fichier.

  3. Vérifiez que la somme de contrôle SHA256 correspond.

    $ sha256sum <filename>
    
    Copy
  4. Extrayez le fichier.

    $ gunzip <filename>
    
    Copy
  5. Rendez le fichier exécutable.

    $ chmod +x <filename>
    
    Copy
  6. Renommez l’exécutable en snowcd.

    $ mv <filename> snowcd
    
    Copy

Note

Les utilisateurs Linux exécutant RHEL ou CentOS peuvent installer SnowCD à l’aide de yum alors que les utilisateurs de Debian peuvent l’installer à l’aide d’apt.

macOS

Pour télécharger et installer SnowCD sous macOS, procédez comme suit :

  1. Téléchargez la dernière version du fichier pkg SnowCD notarié à partir de la page Télécharger SnowCD.

    Les fichiers pkg utilisent la convention d’appellation suivante :

    snowcd-<numéro_version>-darwin_x86_64.pkg

    Par exemple :

    snowcd-1.0.5-darwin_x86_64.pkg

  2. Ouvrez le terminal et naviguez jusqu’au répertoire où vous avez téléchargé le fichier.

  3. Vérifiez que la somme de contrôle SHA256 correspond.

    Pour obtenir la somme de contrôle du fichier, exécutez la commande suivante :

    $ shasum -a 256 <filename>
    
    Copy

    Comparez la somme de contrôle du fichier à la somme de contrôle indiquée sur le site de téléchargement.

  4. Ouvrez le Finder et naviguez jusqu’au répertoire où vous avez téléchargé le fichier pkg.

  5. Extrayez et installez SnowCD en double-cliquant sur le fichier pkg.

Les fichiers, y compris l’exécutable snowcd, sont installés dans le répertoire /opt/snowflake/snowcd.

Windows

Pour télécharger et installer SnowCD sous Windows, procédez comme suit :

  1. Téléchargez la dernière version de SnowCD à partir de la page Télécharger SnowCD.

  2. Exécutez le fichier MSI à l’aide de Windows Installer.

Étape 3 : exécution de SnowCD

Avant d’exécuter SnowCD dans des environnements macOS et Linux, vous pouvez ajouter son répertoire à votre $PATH. Dans les environnements Windows, vous pouvez ajouter SnowCD à vos variables d’environnement.

  1. Dans les environnements macOS ou Linux, vous pouvez lancer l’exécutable snowcd à partir de la ligne de commande en exécutant snowcd <path_to_allowlist.json> [flags].

  2. Dans les environnements Windows, exécutez snowcd.exe <path_to_allowlist.json> [flags].

Astuce

Pour une description complète des indicateurs pris en charge par snowcd , exécutez snowcd -h.

Si toutes les vérifications sont valides, SnowCD renvoie le nombre de vérifications sur le nombre d’hôtes avec le message All checks passed comme suit.

Performing 30 checks on 12 hosts
All checks passed
Copy

Si vous essayez d’exécuter SnowCD sans transmettre les informations de la liste autorisée JSON depuis SELECT SYSTEM$ALLOWLIST(), le message d’erreur suivant s’affiche pour rappeler d’inclure le fichier, avec la liste des indicateurs actuellement pris en charge, leur type de données, le cas échéant, et une brève description de l’indicateur.

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

Si SnowCD détecte un paramètre incorrect ou une configuration incorrecte, des informations sur les vérifications ayant échoué s’affichent avec une suggestion de dépannage. Par exemple, la réponse ci-dessous indique un nom d’hôte non valide.

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

Utilisation de SnowCD avec un proxy HTTP

SnowCD peut être exécuté sur un proxy HTTP pour déterminer son statut de connectivité.

Important

Actuellement, Snowflake ne prend pas en charge les serveurs proxy avec terminaison SSL.

Lors de la configuration de votre liste d’autorisation de pare-feu et de proxy, utilisez le relais SSL (c.-à-d. le contournement du déchiffrement SSL).

En utilisant Linux comme exemple représentatif, exécutez la commande suivante pour exécuter SnowCD sur un proxy, en remplaçant les valeurs d’indicateur si nécessaire.

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

La journalisation est facultative et vous pouvez ajouter les deux indicateurs de journalisation à la commande proxy. Il est important d’inclure un chemin d’accès au fichier journal pour vous assurer que la journalisation a lieu lors de l’exécution de la commande.

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

Après avoir exécuté cette commande, vous pouvez afficher la trace dans le fichier test.log.