Exportateur d’observabilité Citrix ADC avec Zipkin comme point de terminaison

Citrix ADC Observability Exporter prend en charge OpenTracing (OpenTracing fait désormais partie d’OpenTelemetry) en utilisant Zipkin comme point de terminaison. Citrix ADC Observability Exporter transforme les données de suivi collectées à partir de Citrix ADC en formats pris en charge adaptés à OpenTracing et les exporte vers Zipkin. Zipkin est un système de suivi distribué qui permet de recueillir les données de synchronisation nécessaires pour résoudre les problèmes de latence dans les architectures de microservices. Elasticsearch est utilisé pour la conservation à long terme des données de trace et les traces peuvent être visualisées à l’aide de l’interface utilisateur Zipkin ou de Kibana.

Le schéma suivant illustre le fonctionnement de l’architecture Zipkin :

  1. Lorsque le suivi est activé, il ajoute initialement des en-têtes de suivi ouvert supplémentaires : x-trace-idx-span-id, et x-parent-span-id au paquet HTTP, avant de transférer le paquet à l’espace de microservice suivant.

  2. Les informations relatives à cette communication ou transaction sont transmises à Citrix ADC Observability Exporter. Les informations incluent les détails sur les en-têtes, l’horodatage (l’heure à laquelle cette demande est initiée et la durée totale du processus) et les annotations (les annotations incluent HTTP, SSL et TCP associés à cette demande).

  3. Ensuite, Citrix ADC Observability Exporter reçoit plusieurs messages de suivi de tous les Citrix ADC et les regroupe au format JSON compréhensible Zipkin, puis les transmet à Zipkin via l’API.

  4. De même, si les microservices sont activés avec le suivi, cette trace est envoyée à Zipkin via l’API.

  5. L’API Zipkin stocke les données de suivi dans la base de données Elasticsearch, puis assemble la trace complète à la requête HTTP donnée et la visualise dans l’outil de visualisation tel que Kibana. Vous pouvez consulter le temps passé par la demande sur chaque microservice.

Architecture Zipkin

Déployer l’exportateur d’observabilité Citrix ADC

En fonction de votre déploiement Citrix ADC, vous pouvez déployer Citrix ADC Observability Exporter soit à l’extérieur soit à l’intérieur des clusters Kubernetes. Vous pouvez déployer Citrix Observability Exporter en tant qu’espace à l’intérieur du cluster Kubernetes ou activer la configuration sur le facteur de forme Citrix ADC MPX ou VPX en dehors du cluster. Vous pouvez déployer l’exportateur d’observabilité Citrix ADC à l’aide du fichier YAML Kubernetes fourni par Citrix.

Le schéma suivant illustre Citrix ADC en tant que passerelle d’entrée avec le Citrix ingress controller en tant que sidecar. L’exportateur d’observabilité Citrix ADC envoie les données de suivi collectées à partir de Citrix ADC à l’API Zipkin. Les données de suivi sont ensuite téléchargées sur le serveur Elasticsearch. À partir d’Elasticsearch, les données sont envoyées vers l’interface utilisateur Zipkin ou l’interface utilisateur Kibana pour visualisation.

Déploiement de l'exportateur d'observabilité Citrix ADC

Conditions préalables

  • Vérifiez que vous disposez d’un cluster Kubernetes avec kube-dns ou module CoreDNS complémentaire activé.

Pour déployer l’exportateur d’observabilité Citrix ADC avec Zipkin, vous devez effectuer les tâches suivantes :

  1. Déployez l’application requise avec la prise en charge du suivi activée.

  2. Déployez Citrix ADC CPX activé avec la prise en charge de Citrix Observability Exporter.

  3. Déployez Zipkin, Elasticsearchet Kibana à l’aide des fichiers YAML.

  4. Déployez Citrix Observability Exporter à l’aide du fichier YAML.

Déployer une application avec le suivi activé

Voici un exemple de déploiement d’application avec le suivi activé.

Remarque :

Si vous disposez d’une application Web prédéployée, ignorez les étapes 1 et 2.

  1. Créez un fichier ingress.crt et une clé ingress.key secrets à l’aide de votre propre certificat et clé.

    Dans cet exemple, un secret, appelé ing dans l’espace de noms par défaut, est créé.

      kubectl create secret tls ing --cert=ingress.crt --key=ingress.key
    
  2. Accédez au fichier YAML à partir de watches-app-tracing.yaml pour déployer l’application.

      kubectl create -f watches-app-tracing.yaml
    
  3. Définissez les paramètres spécifiques que vous devez importer en les spécifiant dans les annotations d’entrée du fichier YAML de l’application, à l’aide des annotations intelligentes de l’entrée.

      ingress.citrix.com/analyticsprofile: '{"webinsight": {"httpurl":"ENABLED", "httpuseragent":"ENABLED", "httpHost":"ENABLED","httpMethod":"ENABLED","httpContentType":"ENABLED"}}'
    

    Remarque : Les paramètres sont prédéfinis dans le fichier watches-app-tracing.yaml.

    Pour plus d’informations sur les annotations, consultez la documentation relative aux annotations d’entrée.

Déployer Citrix ADC CPX avec la prise en charge de l’exportateur d’observabilité Citrix ADC

Vous pouvez déployer Citrix ADC CPX activé avec la prise en charge de l’exportateur d’observabilité Citrix ADC.

Lors du déploiement de Citrix ADC CPX, vous pouvez modifier le fichier YAML de déploiement cpx-ingress-tracing.yaml pour inclure les informations de configuration requises pour la prise en charge de l’exportateur d’observabilité Citrix ADC.

Effectuez les étapes suivantes pour déployer une instance Citrix ADC CPX avec la prise en charge de l’exportateur d’observabilité Citrix ADC :

  1. Téléchargez le fichier cic-configmap.yaml et cpx-ingress-tracing.yaml .

  2. Créez un ConfigMap avec les paires clé-valeur requises et déployez le ConfigMap. Vous pouvez utiliser le fichier cic-configmap.yaml disponible, pour le point de terminaison spécifique, dans le répertoire.

  3. Modifiez les paramètres relatifs à Citrix ADC CPX, selon vos besoins. Par exemple, ajoutez des lignes sous args dans le fichier cpx-ingress-tracing.yaml comme suit :

      args:
        - --configmap
          default/cic-configmap
    
  4. Modifiez le fichier cic-configmap.yaml pour spécifier les variables suivantes pour Citrix ADC Observability Exporter dans la configuration du point de terminaison NS_ANALYTICS_CONFIG.

      server: 'coe-zipkin.default.svc.cluster.local' # COE service FQDN
    
  5. Déployez Citrix ADC CPX avec la prise en charge de l’exportateur d’observabilité Citrix ADC à l’aide des commandes suivantes :

      kubectl create -f cpx-ingress-tracing.yaml
      kubectl create -f cic-configmap.yaml
    

Remarque :

Si vous avez utilisé un espace de noms autre que celui par défaut, coe-zipkin.default.svc.cluster.local remplacez-le par coe-zipkin.<desired-namespace>.svc.cluster.local. Si ADC se trouve en dehors du cluster Kubernetes, vous devez spécifier l’adresse IP et l’adresse Nodport de l’exportateur d’observabilité Citrix ADC.

Déployer Zipkin, Elasticsearch et Kibana à l’aide de fichiers YAML

Pour déployer Zipkin, Elasticsearch et Kibana à l’aide de YAML, effectuez les opérations suivantes :

  1. Téléchargez les fichiers YAML suivants :

  2. Modifiez la définition de l’espace de noms si vous souhaitez utiliser un espace de noms personnalisé autre que celui par défaut.

  3. Exécutez les commandes suivantes pour déployer Zipkin, Elasticsearch et Kibana :

      kubectl create -f zipkin.yaml
      kubectl create -f elasticsearch.yaml
      kubectl create -f kibana.yaml
    

Remarque :

Zipkin, Elasticsearch et Kibana sont déployés dans l’espace de noms par défaut du même cluster Kubernetes.

Déployer l’exportateur d’observabilité Citrix ADC à l’aide du fichier YAML

Vous pouvez déployer l’exportateur d’observabilité Citrix ADC à l’aide du fichier YAML. Téléchargez le fichier coe-zipkin.yaml .

Pour déployer l’exportateur d’observabilité Citrix ADC à l’aide du YAML Kubernetes, exécutez la commande suivante dans le point de terminaison Elasticsearch :

  kubectl create -f coe-zipkin.yaml

Remarque :

Modifiez le fichier YAML pour Citrix ADC Observability Exporter si vous disposez d’un espace de noms personnalisé autre que celui par défaut.

Vérifiez le déploiement de l’exportateur d’observabilité Citrix ADC

Pour vérifier le déploiement de l’exportateur d’observabilité Citrix ADC, effectuez les opérations suivantes :

  1. Vérifiez le déploiement en envoyant une demande à l’application à l’aide de la commande suivante.

      kubectl run -i --tty busybox --image=busybox --restart=Never --rm -- wget --no-check-certificate "https://cpx-ingress-zipkin.default.svc.cluster.local/serial/view/watches"
    
  2. Ouvrez l’interface utilisateur Zipkin à l’aide de l’adresse IP et du port du nœud Kubernetes.

      http://*k8-node-ip-address*:*node-port*/
    

    Dans l’image suivante, vous pouvez visualiser les traces de l’application Watches . L’application Watches dispose de plusieurs microservices pour chaque type de montre, communiquant entre eux pour servir les données d’application. Les données de trace montrent que l’application FASTTRACK a pris plus de temps à servir que d’autres microservices. Vous pouvez ainsi identifier les charges de travail lentes et les résoudre.

    Données de trace

    Vous pouvez également consulter les données brutes sur votre tableau de bord Kibana. Ouvrez Kibana à l’aide du http://<node-ip>:<node-port> bouton et commencez par définir un modèle d’index Zipkin .

    Utilisez le champ timestamp_millis comme champ d’horodatage. Après avoir créé le modèle d’index, cliquez sur l’onglet Découvrir et vous pouvez afficher les informations de trace collectées par Zipkin.

    Traces Zipkin

    Pour plus d’informations sur le dépannage lié à Citrix ADC Observability Exporter, consultez la section Dépannage Citrix ADC CPX.