Citrix ADC Observability Exporter mit Zipkin als Endpunkt

Citrix ADC Observability Exporter unterstützt OpenTracing (OpenTracing ist jetzt Teil von OpenTeletry) und verwendet Zipkin als Endpunkt. Citrix ADC Observability Exporter wandelt die von Citrix ADCs gesammelten Protokollierungsdaten in unterstützte Formate um, die für OpenTracing geeignet sind, und exportiert sie nach Zipkin. Zipkin ist ein verteiltes Ablaufverfolgungssystem, das hilft, die Zeitdaten zu sammeln, die zur Behebung von Latenzproblemen in Microservice-Architekturen erforderlich sind. Elasticsearch wird für die langfristige Aufbewahrung von Trace-Daten verwendet und die Traces können mit der Zipkin-Benutzeroberfläche oder Kibana visualisiert werden.

Das folgende Diagramm veranschaulicht, wie die Zipkin-Architektur funktioniert:

  1. Wenn die Ablaufverfolgung zunächst aktiviert ist, werden zusätzliche Open-Tracing-Header hinzugefügt: x-trace-idx-span-id, und x-parent-span-id zum HTTP-Paket, bevor das Paket an den nächsten Microservice-Pod weitergeleitet wird.

  2. Die Informationen zu dieser Kommunikation oder Transaktion werden an Citrix ADC Observability Exporter übertragen. Zu den Informationen gehören die Details zu den Headern, den Zeitstempel (Zeitpunkt, zu dem diese Anforderung initiiert wird und die gesamte Dauer des Prozesses) und Anmerkungen (Anmerkungen umfassen HTTP, SSL und TCP, die mit dieser Anforderung verknüpft sind).

  3. Anschließend empfängt Citrix ADC Observability Exporter mehrere Trace-Nachrichten von allen Citrix ADCs und aggregiert sie in das verständliche JSON-Format von Zipkin und überträgt diese über die API an Zipkin.

  4. Wenn Microservices mit der Ablaufverfolgung aktiviert sind, wird diese Ablaufverfolgung über die API an Zipkin gesendet.

  5. Die Zipkin-API speichert die Trace-Daten in der Elasticsearch-Datenbank und fügt schließlich die vollständige Ablaufverfolgung mit der angegebenen HTTP-Anforderung zusammen und visualisiert sie im Visualisierungstool wie Kibana. Sie können die Zeit anzeigen, die die Anfrage für jeden Microservice aufgewendet hat.

Zipkin-Architektur

Citrix ADC Observability Exporter 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 Observability Exporter als Pod innerhalb des Kubernetes-Clusters bereitstellen oder die Konfiguration auf dem Citrix ADC MPX- oder VPX-Formfaktor außerhalb des Clusters aktivieren. Sie können Citrix ADC Observability Exporter mithilfe der von Citrix bereitgestellten Kubernetes-YAML-Datei bereitstellen.

Das folgende Diagramm veranschaulicht Citrix ADC als Ingress-Gateway mit dem Citrix Ingress Controller als Beiwagen. Citrix ADC Observability Exporter sendet die von Citrix ADCs gesammelten Protokollierungsdaten an die Zipkin-API. Die Protokollierungsdaten werden dann auf den Elasticsearch-Server hochgeladen. Von Elasticsearch werden die Daten zur Visualisierung an die Zipkin-Benutzeroberfläche oder die Kibana-Benutzeroberfläche gesendet.

Bereitstellung des Citrix ADC Observability Exporter

Voraussetzungen

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

Um Citrix ADC Observability Exporter mit Zipkin bereitzustellen, müssen Sie die folgenden Aufgaben ausführen:

  1. Stellen Sie die erforderliche Anwendung mit aktivierter Protokollierungsunterstützung bereit.

  2. Stellen Sie Citrix ADC CPX bereit, das mit der Citrix Observability Exporter-Unterstützung aktiviert ist.

  3. Stellen Sie Zipkin, Elasticsearchund Kibana mithilfe der YAML-Dateien bereit.

  4. Stellen Sie Citrix Observability Exporter mithilfe der YAML-Datei bereit.

Anwendung mit aktivierter Ablaufverfolgung bereitstellen

Im Folgenden finden Sie ein Beispiel für eine Anwendungsbereitstellung mit aktivierter Ablaufverfolgung.

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 watches-app-tracing.yaml auf die YAML-Datei zu, um die Anwendung bereitzustellen.

      kubectl create -f watches-app-tracing.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 watches-app-tracing.yaml Datei 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 bereitstellen, das mit der Unterstützung des Citrix ADC Observability Exporter aktiviert ist.

Während der Bereitstellung von Citrix ADC CPX können Sie die YAML-Bereitstellungsdatei so ändern, dass cpx-ingress-tracing.yaml 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 cpx-ingress-tracing.yaml und cic-configmap.yaml -Datei 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. Fügen Sie der cpx-ingress-tracing.yaml Datei beispielsweise Zeilen args unter wie folgt hinzu:

      args:
        - --configmap
          default/cic-configmap
    
  4. Bearbeiten Sie die cic-configmap.yaml Datei, um die folgenden Variablen für Citrix ADC Observability Exporter in der NS_ANALYTICS_CONFIG Endpunktkonfiguration anzugeben.

      server: 'coe-zipkin.default.svc.cluster.local' # COE service FQDN
    
  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-tracing.yaml
      kubectl create -f cic-configmap.yaml
    

Hinweis:

Wenn Sie einen anderen Namespace als default verwendet haben, ändern Sie coe-zipkin.default.svc.cluster.local zu coe-zipkin.<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.

Stellen Sie Zipkin, Elasticsearch und Kibana mithilfe von YAML-Dateien bereit

Um Zipkin, Elasticsearch und Kibana mit YAML bereitzustellen, führen Sie die folgenden Schritte aus:

  1. Laden Sie die folgenden YAML-Dateien herunter:

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

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

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

Hinweis:

Zipkin, 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 ADC Observability Exporter mithilfe der YAML-Datei bereitstellen. Laden Sie die coe-zipkin.yaml-Datei herunter.

Führen Sie den folgenden Befehl auf dem Elasticsearch-Endpunkt aus, um Citrix ADC Observability Exporter mithilfe der Kubernetes-YAML bereitzustellen:

  kubectl create -f coe-zipkin.yaml

Hinweis:

Ändern Sie die YAML-Datei für Citrix ADC Observability Exporter, wenn Sie einen anderen benutzerdefinierten Namespace als den Standard haben.

Ü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, indem Sie mit dem folgenden Befehl eine Anforderung an die Anwendung senden.

      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. Öffnen Sie die Zipkin-Benutzeroberfläche mithilfe der IP-Adresse und des Knotenports des Kubernetes-Knotens.

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

    In der folgenden Abbildung können Sie die Spuren der Watches-Anwendung anzeigen. Die Watches-Anwendung verfügt über mehrere Microservices für jeden Watch-Typ, die miteinander kommunizieren, um die Anwendungsdaten bereitzustellen. Die Trace-Daten zeigen, dass die Anwendung im Vergleich zu anderen Mikrodiensten mehr Zeit in Anspruch FASTTRACK nahm. Auf diese Weise können Sie die langsam arbeitenden Arbeitslasten identifizieren und Probleme beheben.

    Daten verfolgen

    Sie können Rohdaten auch in Ihrem Kibana-Dashboard anzeigen. Öffnen Sie Kibana mit dem http://<node-ip>:<node-port> und definieren Sie zunächst ein Zipkin-Indexmuster .

    Verwenden Sie das timestamp_millis Feld als Zeitstempelfeld. Nachdem Sie das Indexmuster erstellt haben, klicken Sie auf die Registerkarte Entdecken, und Sie können die von Zipkin gesammelten Trace-Informationen anzeigen.

    Zipkin-Spuren

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