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

L’exportateur d’observabilité Citrix ADC est un conteneur qui collecte des mesures et des transactions auprès de Citrix ADC. Il transforme les données dans le format pris en charge (tel que JSON) et exporte les données vers Elasticsearch en tant que point de terminaison. Elasticsearch est un moteur de recherche basé sur la bibliothèque Lucene. Il fournit un moteur de recherche en texte intégral distribué, multilocataire et doté d’une interface Web HTTP et de documents JSON sans schéma.

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

Vous pouvez déployer l’exportateur d’observabilité Citrix ADC à l’aide du fichier YAML. 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 l’exportateur d’observabilité Citrix ADC en tant qu’espace à l’intérieur du cluster Kubernetes ou sur l’appliance Citrix ADC MPX ou VPX en dehors du cluster.

Le schéma suivant illustre un Citrix ADC en tant que passerelle d’entrée avec le Citrix ingress controller et l’exportateur d’observabilité Citrix ADC en tant que side-cars. L’exportateur d’observabilité Citrix ADC envoie les métriques d’application Citrix ADC et les données de transaction à Elasticsearch, et les mêmes données sont exportées vers Kibana. Kibana fournit une représentation graphique des données.

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é.

Dans la procédure suivante, le fichier YAML est utilisé pour déployer l’exportateur d’observabilité Citrix ADC dans l’espace de noms par défaut Kubernetes. Si vous souhaitez déployer dans un espace de noms privé autre que celui par défaut, modifiez le fichier YAML pour spécifier l’espace de noms.

Voici un exemple de procédure de déploiement d’applications.

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 webserver-es.yaml pour déployer l’application.

      kubectl create -f webserver-es.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 webserver-es.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 en tant que side-car avec la prise en charge de Citrix ADC Observability Exporter activée avec le Citrix ingress controller. Vous pouvez modifier le fichier YAML Citrix ADC CPX cpx-ingress-es.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 les fichiers cpx-ingress-es.yaml et cic-configmap.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.
  4. Modifiez le fichier cic-configmap.yaml et spécifiez les variables suivantes pour Citrix ADC Observability Exporter dans la configuration du point de terminaison NS_ANALYTICS_CONFIG.

      server: 'coe-es.default.svc.cluster.local' # COE service FQDN
    

    Remarque :

    Si vous avez utilisé un espace de noms autre que celui par défaut, coe-es.default.svc.cluster.local to remplacez-le par coe-es.<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.

  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-es.yaml
      kubectl create -f cic-configmap.yaml
    

Déployer Elasticsearch et Kibana en utilisant des fichiers YAML

  1. Téléchargez le fichier YAML Elasticsearch depuis elasticsearch.yaml et le fichier YAML Kibana depuis kibana.yaml.

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

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

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

Remarque : 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 Citrix Observability Exporter à l’aide du fichier YAML. Téléchargez le fichier YAML depuis coe-es.yaml.

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

  kubectl create -f coe-es.yaml

Remarque :

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

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 à l’aide de la commande suivante :

       kubectl get deployment,pods,svc -o wide
    

    Sortie d'échantillon

  2. Accédez à l’application avec un navigateur à l’aide de l’URL : https://kubernetes-node-IP:cpx-ingress-es nodeport/.

    Par exemple, à partir de l’étape 1, l’accès http://10.102.40.41:30176/10.102.40.41 est l’une des adresses IP du nœud Kubernetes.

    Demandes

  3. Accédez à Kibana avec un navigateur à l’aide de l’URL suivante : https://<kubernetes-node-IP>:<kibana nodeport>/.

    Par exemple, à partir de l’étape 1, l’accès http://10.102.40.41:32529/10.102.40.41 est l’une des adresses IP du nœud Kubernetes.

    1. Cliquez sur Explorer par moi-même.

      Explorez

    2. Cliquez sur Se connecter à votre index Elasticsearch.

      Connexion à Elastic Index

    3. Cliquez sur Objets enregistrés.

    4. Téléchargez et importez le tableau de bord Kibana depuis KibanaAppTrans.ndjson.

      Objets enregistrés

    5. Cliquez sur Tableau de bord App Transaction

      Tableau de bord

      Le tableau de bord s’affiche.

      Tableau de bord

      Index Elasticsearch basés sur la configuration

Intégrez manuellement Citrix ADC à plusieurs instances de Citrix ADC Observability Exporter

Vous pouvez également configurer l’exportateur d’observabilité Citrix ADC manuellement. Nous vous recommandons de déployer l’exportateur d’observabilité Citrix ADC de manière automatisée avec le fichier YAML, comme décrit dans les sections précédentes. Vous pouvez également effectuer une configuration manuelle pour Citrix ADC dans les facteurs de forme MPX et VPX.

            enable feature appflow
            enable ns mode ULFD
            add dns nameserver <KUBE-CoreDNS>
            add server COEsvr <FQDN/IP>
            add servicegroup COEsvcgrp LOGSTREAM  -autoScale DNS
            bind servicegroup COEsvcgrp COEsvr <PORT>
            add lb vserver COE LOGSTREAM 0.0.0.0 0
            bind lb vserver COE COEsvcgrp
            add analytics profile web_profile -collectors COE -type webinsight -httpURL ENABLED -httpHost ENABLED -httpMethod ENABLED -httpUserAgent ENABLED -httpContentType ENABLED
            add analytics profile tcp_profile -collectors COE -type tcpinsight
            bind lb vserver <WEB-VSERVER> -analyticsProfile web_profile
            bind lb vserver <WEB-VSERVER> -analyticsProfile tcp_profile
            
            # To enable metrics push to prometheus
            add service metrichost_SVC <IP> HTTP <PORT>
            set analyticsprofile ns_analytics_time_series_profile -collectors metrichost_SVC -metrics ENABLED -outputMode prometheus

Ajouter l’exportateur d’observabilité Citrix ADC à l’aide du FQDN

            enable feature appflow
            enable ns mode ULFD
            add dns nameserver <KUBE-CoreDNS>
            add server COEsvr <FQDN>
            add servicegroup COEsvcgrp LOGSTREAM  -autoScale DNS
            bind servicegroup COEsvcgrp COEsvr <PORT> 
            add lb vserver COE LOGSTREAM 0.0.0.0 0
            bind lb vserver COE COEsvcgrp
            add analytics profile web_profile -collectors COE -type webinsight -httpURL ENABLED -httpHost ENABLED -httpMethod ENABLED -httpUserAgent ENABLED -httpContentType ENABLED
            add analytics profile tcp_profile -collectors COE -type tcpinsight
            bind lb vserver <WEB-VSERVER> -analyticsProfile web_profile
            bind lb vserver <WEB-VSERVER> -analyticsProfile tcp_profile

            # To enable metrics push to prometheus
            add service metrichost_SVC <IP> HTTP <PORT>
            set analyticsprofile ns_analytics_time_series_profile -collectors metrichost_SVC -metrics ENABLED -outputMode prometheus

Pour vérifier si Citrix ADC envoie des journaux de données d’application à Citrix ADC Observability Exporter :

     nsconmsg -g lstream_tot_trans_written -d current

La valeur du compteur indique que le nombre de transactions d’application (par exemple, les transactions HTTP) qui ont été envoyées à Citrix ADC Observability Exporter.

Valeur du compteur

Si le débit de trafic de l’application (par exemple, requête/s HTTP) envoyé à Citrix ADC Observability Exporter n’est pas égal à lstream_tot_trans_written, vous pouvez le vérifier à l’aide de la commande suivante :

     nsconmsg -g nslstream_err_ulf_data_not_sendable -d current

La valeur du compteur indique que Citrix ADC ne peut pas envoyer les données à Citrix ADC Observability Exporter en raison de la congestion du réseau, de l’indisponibilité de la bande passante réseau, etc. Les données sont stockées dans les tampons disponibles.

Des informations sur les différentes données de transaction et les champs individuels, ainsi que leur type de données, sont disponibles à l’emplacement suivant sur Citrix ADC :

     shell/netscaler/appflow/ns_ipfix.yaml

Emplacement des données

Pour vérifier que si les enregistrements de transaction d’application sont exportés de Citrix ADC vers Citrix ADC Observability Exporter, utilisez la commande suivante :

      nsconmsg -g appflow_tmpl -d current

Données de performance

Emplacement des journaux d’exportation des données de mesures vers Citrix ADC pour les données de séries chronologiques :

      /var/nslog/metrics_prom.log

Pour vérifier les compteurs liés à Elasticsearch, exécutez la commande suivante :

      kubectl exec -it <cpx-pod-name> [-c <cpx-container-name>] [-n <namespace-name>] -- bash

      tail -f /var/ulflog/counters/lstrmd_counters_codes.log | grep -iE "(http_reqs_done|elk)"

Recherchez les journaux à l’emplacement suivant pour vérifier que la configuration de l’exportateur d’observabilité Citrix ADC est correctement appliquée :

      vi /var/logproxy/lstreamd/conf/lstreamd.conf

En cas d’échec de l’exportateur d’observabilité Citrix ADC, vous pouvez collecter les journaux et les fichiers disponibles à l’emplacement suivant et contacter le support Citrix.

      /cores/ (Loation of the coredump files, if any.)
      /var/ulflog/ (Location of the `libulfd` logs and counter details.)
      /var/log  (Location of the console logs, lstreamd logs and so on.)

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