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 fonctions SYSTEM$WHITELIST() ou SYSTEM$WHITELIST_PRIVATELINK() pour exécuter une série de vérifications de connexion, afin d’évaluer et de dépanner la connexion réseau à Snowflake.

Important

Si votre compte Snowflake utilise AWS PrivateLink ou Azure Private Link, exécutez la fonction SYSTEM$WHITELIST_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 AWS PrivateLink et Snowflake et Azure Private Link et Snowflake.

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 (c.-à-d. snowcd) pour votre système d’exploitation Linux.

  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>
    
  4. Extrayez le fichier.

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

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

    $ mv <filename> snowcd
    

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 pour votre système d’exploitation Apple (c.-à-d. mac64).

  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.

    $ shasum -a 256 <filename>
    
  4. Extrayez le fichier.

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

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

    mv <filename> 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 (c.-à-d. snowcd) pour votre système d’exploitation Windows (c.-à-d. win64).

  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. À partir de la ligne de commande dans les environnements macOS ou Linux, exécutez ./snowcd <path_to_whitelist.json> [flags].

  2. Dans les environnements Windows, exécutez snowcd.exe <path_to_whitelist.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

Si vous essayez d’exécuter SnowCD sans transmettre les informations de la liste blanche JSON depuis SELECT SYSTEM$WHITELIST(), 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$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

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

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

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

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