Citrix ADC Observability Exporter mit Elasticsearch als Endpunkt

Citrix ADC Observability Exporter ist ein Container, der Metriken und Transaktionen von Citrix ADC sammelt. Es wandelt die Daten in das unterstützte Format (wie JSON) um und exportiert Daten als Endpunkt nach Elasticsearch. Elasticsearch ist eine Suchmaschine, die auf der Lucene-Bibliothek basiert. Es bietet eine verteilte, mandantenfähige Volltextsuchmaschine mit einer HTTP-Weboberfläche und schemafreien JSON-Dokumenten.

Citrix ADC Observability Exporter bereitstellen

Sie können Citrix ADC Observability Exporter mithilfe der YAML-Datei bereitstellen. Basierend auf Ihrer Citrix ADC-Bereitstellung können Sie Citrix ADC Observability Exporter entweder außerhalb oder innerhalb von Kubernetes-Clustern bereitstellen. Sie können Citrix ADC Observability Exporter als Pod innerhalb des Kubernetes-Clusters oder auf Citrix ADC MPX oder VPX Appliance außerhalb des Clusters bereitstellen.

Das folgende Diagramm veranschaulicht einen Citrix ADC als Ingress Gateway mit dem Citrix Ingress Controller und Citrix ADC Observability Exporter als Seitenwagen. Citrix ADC Observability Exporter sendet Citrix ADC-Anwendungsmetriken und Transaktionsdaten an Elasticsearch und dieselben Datenexporte nach Kibana. Kibana bietet eine grafische Darstellung der Daten.

Bereitstellung des Citrix ADC Observability Exporter

Voraussetzungen

  • Stellen Sie sicher, dass Sie einen Kubernetes-Cluster mit aktiviertem Addon kube-dns oder CoreDNS haben.

Im folgenden Verfahren wird die YAML-Datei verwendet, um Citrix ADC Observability Exporter im Kubernetes Defauit-Namespace bereitzustellen. Wenn Sie in einem anderen privaten Namespace als dem Standardbereitstellen möchten, bearbeiten Sie die YAML-Datei, um den Namespace anzugeben.

Im Folgenden finden Sie ein Beispiel für ein Anwendungsbereitstellungsverfahren.

Hinweis:

Wenn Sie eine vorab bereitgestellte Webanwendung haben, überspringen Sie die Schritte 1 und 2.

  1. Erstellen Sie eine geheime ingress.crt und den Schlüssel ingress.key mit Ihrem eigenen Zertifikat und Schlüssel.

    In diesem Beispiel wird ein Secret, das im Standard-Namensraum als ing bezeichnet wird, erstellt.

      kubectl create secret tls ing --cert=ingress.crt --key=ingress.key
    
  2. Greifen Sie über webserver-es.yaml auf die YAML-Datei zu, um die Anwendung bereitzustellen.

      kubectl create -f webserver-es.yaml
    
  3. Definieren Sie die spezifischen Parameter, die Sie importieren müssen, indem Sie sie in den Eingangsanmerkungen der YAML-Datei der Anwendung mithilfe der intelligenten Anmerkungen im Ingress angeben.

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

    Hinweis:

    Die Parameter sind in der Datei webserver-es.yaml vordefiniert.

    Weitere Informationen zu Anmerkungen finden Sie in der Dokumentation zu Ingress-Anmerkungen.

Bereitstellen von Citrix ADC CPX mit der Unterstützung des Citrix ADC Observability Exporters

Sie können Citrix ADC CPX als Beiwagen bereitstellen, wenn die Citrix ADC Observability Exporter-Unterstützung zusammen mit dem Citrix Ingress Controller aktiviert ist. Sie können die Citrix ADC CPX YAML-Datei cpx-ingress-es.yaml so ändern, dass sie die Konfigurationsinformationen enthält, die für die Unterstützung des Citrix ADC Observability Exporter erforderlich sind.

Führen Sie die folgenden Schritte aus, um eine Citrix ADC CPX-Instanz mit der Unterstützung des Citrix ADC Observability Exporter bereitzustellen:

  1. Laden Sie die Datei cpx-ingress-es.yaml und cic-configmap.yaml herunter.
  2. Erstellen Sie eine ConfigMap mit den erforderlichen Schlüssel-Wert-Paaren und stellen Sie die ConfigMap bereit. Sie können die Datei cic-configmap.yaml, die für den jeweiligen Endpunkt verfügbar ist, im Verzeichnisverwenden.
  3. Ändern Sie Citrix ADC CPX-bezogene Parameter nach Bedarf.
  4. Bearbeiten Sie die Datei cic-configmap.yaml und geben Sie in der Endpunktkonfiguration NS_ANALYTICS_CONFIG die folgenden Variablen für Citrix ADC Observability Exporter an.

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

    Hinweis:

    Wenn Sie einen anderen Namespace als default verwendet haben, ändern Sie coe-es.default.svc.cluster.local to zu coe-es.<desired-namespace>.svc.cluster.local. Wenn sich ADC außerhalb des Kubernetes-Clusters befindet, müssen Sie die IP-Adresse und die Nodport-Adresse von Citrix ADC Observability Exporter angeben.

  5. Stellen Sie Citrix ADC CPX mit der Unterstützung des Citrix ADC Observability Exporters mithilfe der folgenden Befehle bereit:

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

Elasticsearch und Kibana mithilfe von YAML-Dateien bereitstellen

  1. Laden Sie die Elasticsearch-YAML-Datei von elasticsearch.yaml und die Kibana-YAML-Datei von kibana.yamlherunter.

  2. Bearbeiten Sie die Namespace-Definition, wenn Sie einen anderen Namespace als den Standardverwenden möchten.

  3. Führen Sie die folgenden Befehle aus, um Elasticsearch und Kibana bereitzustellen:

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

Hinweis: Elasticsearch und Kibana werden im Standard-Namespace desselben Kubernetes-Clusters bereitgestellt.

Bereitstellen von Citrix ADC Observability Exporter mithilfe der YAML-Datei

Sie können Citrix Observability Exporter mithilfe der YAML-Datei bereitstellen. Laden Sie die YAML-Datei von coe-es.yamlherunter.

Um Citrix Observability Exporter mithilfe der Kubernetes-YAML bereitzustellen, führen Sie den folgenden Befehl im Elasticsearch-Endpunkt aus:

  kubectl create -f coe-es.yaml

Hinweis:

Ändern Sie die YAML-Datei für Citrix ADC Observability Exporter, wenn Sie über einen benutzerdefinierten Namespace verfügen.

Überprüfen der Citrix ADC Observability Exporter-Bereitstellung

Gehen Sie wie folgt vor, um die Bereitstellung des Citrix ADC Observability Exporter zu überprüfen:

  1. Überprüfen Sie die Bereitstellung mit dem folgenden Befehl:

       kubectl get deployment,pods,svc -o wide
    

    Sample-Ausgabe

  2. Greifen Sie mit einem Browser über die URL auf die Anwendung zu: https://kubernetes-node-IP:cpx-ingress-es nodeport/.

    Ab Schritt 1 10.102.40.41 ist der Zugriff http://10.102.40.41:30176/ beispielsweise eine der Kubernetes-Knoten-IPs.

    Anfragen

  3. Greifen Sie mit einem Browser über die URL auf Kibana zu: https://<kubernetes-node-IP>:<kibana nodeport>/.

    Ab Schritt 1 10.102.40.41 ist der Zugriff http://10.102.40.41:32529/ beispielsweise eine der Kubernetes-Knoten-IPs.

    1. Klicke auf “ Eigenes Erkunden”.

      Erkunden

    2. Klicken Sie auf Mit Ihrem Elasticsearch-Index verbinden.

      Mit Elastic-Index verbinden

    3. Klicken Sie auf Gespeicherte Objekte

    4. Laden Sie das Kibana-Dashboard von kibanaAppTrans.ndjson herunter und importieren Sie es.

      Gespeichert Objekte

    5. Klicken Sie auf App Transaction Dashboard.

      Dashboard

      Das Dashboard wird angezeigt.

      Dashboard

      Elasticsearch-Indizes basierend auf der Konfiguration

Integrieren Sie Citrix ADC manuell in mehrere Citrix ADC Observability Exporter-Instanzen

Sie können Citrix ADC Observability Exporter auch manuell konfigurieren. Wir empfehlen, Citrix ADC Observability Exporter auf automatisierte Weise mit der YAML-Datei bereitzustellen, wie in den vorherigen Abschnitten beschrieben. Sie können auch eine manuelle Konfiguration für Citrix ADC in den MPX- und VPX-Formfaktoren durchführen.

            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

Citrix ADC Observability Exporter mithilfe des FQDN hinzufügen

            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

So überprüfen Sie, ob Citrix ADC Anwendungsdatenprotokolle an Citrix ADC Observability Exporter sendet:

     nsconmsg -g lstream_tot_trans_written -d current

Der Zählerwert gibt an, dass die Anzahl der Anwendungstransaktionen (z. B. HTTP-Transaktionen) an den Citrix ADC Observability Exporter gesendet wurden.

Zählerwert

Wenn die Anwendungsverkehrsrate (z. B. HTTP Req/Sek.), die an Citrix ADC Observability Exporter gesendet wird, nicht gleich lstream_tot_trans_written ist, können Sie dies mit dem folgenden Befehl überprüfen:

     nsconmsg -g nslstream_err_ulf_data_not_sendable -d current

Der Zählerwert zeigt an, dass Citrix ADC die Daten aufgrund von Netzwerküberlastung, Nichtverfügbarkeit der Netzwerkbandbreite usw. nicht an Citrix ADC Observability Exporter senden kann. Die Daten werden in den verfügbaren Puffern gespeichert.

Informationen zu verschiedenen Transaktionsdaten und einzelnen Feldern sowie deren Datentyp sind an der folgenden Stelle im Citrix ADC verfügbar:

     shell/netscaler/appflow/ns_ipfix.yaml

Datenspeicherort

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob Anwendungstransaktionsdatensätze von Citrix ADC in den Citrix ADC Observability Exporter exportiert werden:

      nsconmsg -g appflow_tmpl -d current

Daten zur Leistung

Speicherort der Metrikdatenexportprotokolle an Citrix ADC für Zeitreihendaten:

      /var/nslog/metrics_prom.log

Führen Sie den folgenden Befehl aus, um Elasticsearch-bezogene Leistungsindikatoren zu überprüfen:

      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)"

Suchen Sie die Protokolle an folgendem Speicherort, um sicherzustellen, dass die Konfiguration des Citrix ADC Observability Exporter korrekt angewendet wurde:

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

Wenn Citrix ADC Observability Exporter ausfällt, können Sie Protokolle und Dateien sammeln, die an folgendem Speicherort verfügbar sind, und sich an den Citrix Support wenden.

      /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.)

Informationen zur Problembehandlung im Zusammenhang mit Citrix ADC Observability Exporter finden Sie unter Citrix ADC CPX Troubleshooting.