NetScaler Observability Exporter avec Elasticsearch comme point de terminaison

Dernière publication : Oct 02, 2026
NetScaler Observability Exporter est un conteneur qui collecte les métriques et les transactions de NetScaler. 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 distribué, compatible multi-locataires et en texte intégral avec une interface web HTTP et des documents JSON sans schéma.

Déployer NetScaler Observability Exporter

Vous pouvez déployer NetScaler Observability Exporter à l'aide du fichier YAML. En fonction de votre déploiement NetScaler, vous pouvez déployer NetScaler Observability Exporter soit à l'extérieur, soit à l'intérieur des clusters Kubernetes. Vous pouvez déployer NetScaler Observability Exporter en tant que pod à l'intérieur du cluster Kubernetes ou sur une appliance NetScaler MPX ou VPX en dehors du cluster.
Le diagramme suivant illustre un NetScaler en tant que passerelle d'entrée (Ingress Gateway) avec le NetScaler Ingress Controller et NetScaler Observability Exporter en tant que sidecars. NetScaler Observability Exporter envoie les métriques d'application et les données de transaction NetScaler à Elasticsearch, et les mêmes données sont exportées vers Kibana. Kibana fournit une représentation graphique des données.
Déploiement de NetScaler Observability Exporter

Prérequis

  • Assurez-vous de disposer d'un cluster Kubernetes avec l'addon kube-dns ou CoreDNS activé.
Dans la procédure suivante, le fichier YAML est utilisé pour déployer NetScaler Observability Exporter dans l'espace de noms Kubernetes defauIt. Si vous souhaitez déployer dans un espace de noms privé autre que le default, modifiez le fichier YAML pour spécifier l'espace de noms.
Voici une procédure de déploiement d'application exemple.
Remarque :
Si vous avez une application web pré-déployée, ignorez les étapes 1 et 2.
  1. Créez un secret ingress.crt et une clé ingress.key en utilisant votre propre certificat et votre 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 depuis 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, en utilisant les annotations intelligentes dans 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 sur les annotations d'entrée.

Déployer NetScaler CPX avec la prise en charge de NetScaler Observability Exporter

Vous pouvez déployer NetScaler CPX en tant que side-car avec la prise en charge de NetScaler Observability Exporter activée, conjointement avec NetScaler Ingress Controller. Vous pouvez modifier le fichier YAML de NetScaler CPX cpx-ingress-es.yaml pour inclure les informations de configuration requises pour la prise en charge de NetScaler Observability Exporter.
Effectuez les étapes suivantes pour déployer une instance NetScaler CPX avec la prise en charge de NetScaler Observability Exporter :
  1. Téléchargez les fichiers cpx-ingress-es.yaml et cic-configmap.yaml.
  2. Créez une ConfigMap avec les paires clé-valeur requises et déployez la 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 liés à NetScaler CPX, si nécessaire.
  4. Modifiez le fichier cic-configmap.yaml et spécifiez les variables suivantes pour NetScaler 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 default, remplacez coe-es.default.svc.cluster.local to par coe-es.<desired-namespace>.svc.cluster.local. Si l'ADC est en dehors du cluster Kubernetes, vous devez spécifier l'adresse IP et l'adresse nodport de NetScaler Observability Exporter.
  5. Déployez NetScaler CPX avec la prise en charge de NetScaler Observability Exporter à l'aide des commandes suivantes :
    kubectl create -f cpx-ingress-es.yaml
    kubectl create -f cic-configmap.yaml

Déployer Elasticsearch et Kibana à l'aide de 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 espace de noms différent de default.
  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 NetScaler Observability Exporter à l'aide du fichier YAML

Vous pouvez déployer NetScaler Observability Exporter à l'aide du fichier YAML. Téléchargez le fichier YAML depuis coe-es.yaml.
Pour déployer NetScaler Observability Exporter à l'aide du fichier 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 NetScaler Observability Exporter si vous avez un espace de noms personnalisé.

Vérifier le déploiement de NetScaler Observability Exporter

Pour vérifier le déploiement de NetScaler Observability Exporter, effectuez les opérations suivantes :
  1. Vérifiez le déploiement à l'aide de la commande suivante :
    kubectl get deployment,pods,svc -o wideExemple de sortie
  2. Accédez à l'application avec un navigateur en utilisant l'URL : https://kubernetes-node-IP:cpx-ingress-es nodeport/.
    Par exemple, à partir de l'étape 1, accédez à <http://10.102.40.41:30176/> où 10.102.40.41 est l'une des adresses IP des nœuds Kubernetes.
    Requêtes
  3. Accédez à Kibana avec un navigateur en utilisant l'URL : https://<kubernetes-node-IP>:<kibana nodeport>/.
    Par exemple, à partir de l'étape 1, accédez à <http://10.102.40.41:32529/> dans lequel, 10.102.40.41 est l'une des adresses IP des nœuds Kubernetes.
    1. Cliquez sur Explorer par moi-même.
      Explorer
    2. Cliquez sur Connecter à votre index Elasticsearch.
      Connecter à l'index Elastic
    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 des transactions d'application.
      Tableau de bord
      Le tableau de bord apparaît.
      Tableau de bordIndex Elasticsearch basés sur la configuration

Intégrer NetScaler avec plusieurs instances de NetScaler Observability Exporter manuellement

Vous pouvez également configurer NetScaler Observability Exporter manuellement. Nous vous recommandons de déployer NetScaler Observability Exporter 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 NetScaler dans les facteurs de forme MPX et VPX.
            enable feature appflow®
            enable ns mode ULFD
            add dns nameserver &lt;KUBE-CoreDNS>
            add server COEsvr &lt;FQDN/IP>
            add servicegroup COEsvcgrp LOGSTREAM  -autoScale™ DNS
            bind servicegroup COEsvcgrp COEsvr &lt;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 &lt;WEB-VSERVER> -analyticsProfile web_profile
            bind lb vserver &lt;WEB-VSERVER> -analyticsProfile tcp_profile

            # To enable metrics push to prometheus
            add service metrichost_SVC &lt;IP> HTTP &lt;PORT>
            set analyticsprofile ns_analytics_time_series_profile -collectors metrichost_SVC -metrics ENABLED -outputMode prometheus
Ajouter NetScaler Observability Exporter à l'aide du FQDN
            enable feature appflow
            enable ns mode ULFD
            add dns nameserver &lt;KUBE-CoreDNS>
            add server COEsvr &lt;FQDN>
            add servicegroup COEsvcgrp LOGSTREAM  -autoScale DNS
            bind servicegroup COEsvcgrp COEsvr &lt;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 &lt;WEB-VSERVER> -analyticsProfile web_profile
            bind lb vserver &lt;WEB-VSERVER> -analyticsProfile tcp_profile

            # To enable metrics push to prometheus
            add service metrichost_SVC &lt;IP> HTTP &lt;PORT>
            set analyticsprofile ns_analytics_time_series_profile -collectors metrichost_SVC -metrics ENABLED -outputMode prometheus
Pour vérifier si NetScaler envoie les journaux de données d'application à NetScaler Observability Exporter :
nsconmsg -g lstream_tot_trans_written -d current
La valeur du compteur indique le nombre de transactions d'application (par exemple, les transactions HTTP) qui ont été envoyées à NetScaler Observability Exporter.
Valeur du compteur
Si le débit du trafic d'application (par exemple, requêtes HTTP/sec) envoyé à NetScaler 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 NetScaler ne peut pas envoyer les données à NetScaler 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 le NetScaler :
shell/netscaler/appflow/ns_ipfix.yaml
Emplacement des données
Pour vérifier si les enregistrements de transactions d'application sont exportés de NetScaler vers NetScaler 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 métriques vers NetScaler 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 &lt;cpx-pod-name> [-c &lt;cpx-container-name>] [-n &lt;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 NetScaler Observability Exporter est appliquée correctement :
vi /var/logproxy/lstreamd/conf/lstreamd.conf
Si NetScaler Observability Exporter échoue, vous pouvez collecter les journaux et les fichiers disponibles à l'emplacement suivant et contacter le support NetScaler.
/var/crash/ (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é à NetScaler Observability Exporter, consultez Dépannage de NetScaler CPX.