Skip to content

Latest commit

 

History

History
89 lines (57 loc) · 4.4 KB

tier1-prometheus-coe.md

File metadata and controls

89 lines (57 loc) · 4.4 KB

Monitor Application and NetScalers (VPX/MPX/SDX) health on Prometheus using Citrix Observability exporter (COE) deployed K8s cluster

Citrix ADC Observability Exporter is a container that collects metrics and transactions from Citrix ADCs and transforms them to different formats (such as JSON, AVRO) for end points such as Prometheus, ElasticSearch, Zipking, Kafka and Splunk. By analyzing the data exported to the endpoint, you can get valuable insights for applications proxied by NetScaler (Citrix ADC). Refer Citrix Observability exporter document for detailed integration.

In this deployment you will learn,

  • How to deploy Citrix Observability exporter (COE) in Kubernetes cluster
  • How to deploy Prometheus in Kubernetes cluster
  • How to Configure TIer 1 NetScaler (VPX/MPX/SDX) to send metrics to Prometheus through COE.

Deployment topology

coe-vpx-topology

Deployment steps:

Prerequisite: Ensure that you have installed and set up a Kubernetes cluster (The following example is tested in on-prem Kubernetes cluster version 1.24.2).

  1. Deploy COE in Kubernetes cluster

COE is exposed as NodePort service so that Tier 1 NetScaler in front of kubernetes cluster is able to send metrics to COE.

Note: COE will be exposed on defined NodePort 32514, in case you want to change the nodeport value please update coe-prometheus.yaml file.

kubectl create -f https://raw.githubusercontent.com/citrix/cloud-native-getting-started/master/beginners-guide/manifest/coe-prometheus.yaml

Verify the status of COE service

kubectl get svc 
  1. Deploy Prometheus in Kubernetes cluster

There is choice of deploying Prometheus either in K8s cluster or somewhere else, for this demo we have Prometheus instance running in same cluster where COE is running.

We will deploy Prometheus in monitoring namespace. Note: Prometheus will be exposed on defined NodePort 30000, in case you want to change the nodeport value please update prometheus.yaml file.

kubectl create -f https://raw.githubusercontent.com/citrix/cloud-native-getting-started/master/beginners-guide/manifest/prometheus.yaml

Verify the status of Prometheus service

kubectl get svc
  1. Configure NetScaler to send metrics from ADC to Prometheus through COE

Note: We assume that you have tier 1 NetScaler VPX/SDX/MPX already in place with proper configuration. In this demo we will use VPX as Tier 1 ADC. COE related configuration are being done manually for simplicity sake. Another option is to use Citrix Ingress Controller to automate this configuration.

Create service in NetScaler to create communication with COE from NetScaler. Execute below commands on VPX using CLI

add service coe_metric_collector_svc_192.168.1.102 COE_instance HTTP 5563
set analytics profile ns_analytics_time_series_profile -collector coe_metric_collector_svc_192.168.1.102 -Metrics ENABLED -OutputMode Prometheus -serveMode push
  1. Monitor applications and NetScaker health on Prometheus

Login to Prometheus from browser using URL "http://:30000/" Go to Status tab -> Targets, you will see that COE endpoint is UP which will send metrics information for VPX.

promethues-targets

Go to Homepage and Click on bubble symbol next to execute button to show list of counteres exported from NetScaler. Search for your intested counter to plot the graph. E.g. seach cpu_use and click execute. You can either see Table or Graph view to troubleshoot NetScaler.

prometheus-graph

  1. Clean UP

Remove below command from VPX

rm service coe_metric_collector_svc_192.168.1.102 COE_instance

Remove below config from Kubernetes

kubectl delete -f https://raw.githubusercontent.com/citrix/cloud-native-getting-started/master/beginners-guide/manifest/coe-prometheus.yaml
kubectl delete -f https://raw.githubusercontent.com/citrix/cloud-native-getting-started/master/beginners-guide/manifest/prometheus.yaml

You can learn more about usage of all supported options for Citrix Ingress controller from Modern App deployment yaml manifest details.

For more information on the Citrix ingress controller, see the Citrix ingress controller documentation.