PrometheusとGrafanaを使用したCitrix ADC可観測性エクスポーター

Prometheus をエンドポイントとして構成して、Citrix ADC オブザーバビリティエクスポーターからデータをプルできます。Grafana を設定して、同じデータをグラフィカルに視覚化することもできます。

Citrix ADC Observability Exporterには、ポート5563をリッスンしてPrometheusからのプルリクエストに基づいてメトリックを提供するプッシュゲートウェイサーバーがあります。Citrix ADC オブザーバビリティエクスポーターは時系列データをPrometheusにエクスポートします。

PrometheusとGrafanaの建築

Citrix ADC 可観測性エクスポーターの展開

YAML ファイルを使用して Citrix ADC オブザーバビリティエクスポーターを展開できます。Citrix ADC の展開に基づいて、Citrix ADC オブザーバビリティエクスポーターをKubernetesクラスタの外部または内部に展開します。Citrix ADC オブザーバビリティエクスポーターは、Kubernetesクラスター内のポッドとして、またはクラスター外のCitrix ADC MPXまたはVPXアプライアンスにポッドとして展開できます。

前提条件

  • kube-dns または CoreDNS アドオンが有効になっている Kubernetes クラスターがあることを確認します。

Prometheus エンドポイントで Citrix ADC オブザーバビリティエクスポーターを展開するには、次のタスクが含まれます。

  • サンプルアプリケーションのデプロイ
  • Citrix ADC オブザーバビリティエクスポーターのサポートを有効にしてCitrix ADC CPXを展開する
  • YAML ファイルを使用したPrometheusとGrafanaのデプロイ
  • YAML ファイルを使用して Citrix ADC オブザーバビリティエクスポーターを展開する
  • メトリックをエクスポートするようにCitrix ADCを構成する(オプション)
  • テレメトリデータをプルするように Prometheus (オプション) を設定する
  • Grafana の設定
  • Grafana ビジュアライゼーションを作成する

サンプルアプリケーションのデプロイ

サンプルの Web サーバーアプリケーションをデプロイする手順の例を次に示します。

注:

デプロイ済みの Web アプリケーションがある場合は、ステップ 1 からステップ 3 のステップをスキップします。

  1. シークレット ingress.crt を作成し、独自の証明書とキーを使用して ingress.key をキー設定します。

    この例では、デフォルトの名前空間に ing というシークレットが作成されます。

      kubectl create secret tls ing --cert=ingress.crt --key=ingress.key
    
  2. webserver-es.yaml から YAML ファイルにアクセスして、アプリケーションをデプロイします。

      kubectl create -f webserver-es.yaml
    
  3. Ingress のスマートアノテーションを使用して、アプリケーションの YAML ファイルの Ingress アノテーションで指定し、インポートする必要のある特定のパラメーターを定義します。

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

    注:

    パラメータはwebserver-es.yamlファイル内で事前に定義されています。

    アノテーションについて詳しくは、 Ingress アノテーションのドキュメントを参照してください

Citrix ADC オブザーバビリティエクスポーターのサポートを有効にしてCitrix ADC CPXを展開する

Citrix ADC CPXは、Citrix ADC監視性エクスポーターのサポートがCitrix ingress controller とともに有効になっているサイドカーとして展開できます。Citrix ADC CPX YAMLファイルcpx-ingress-es.yamlを変更して、Citrix ADC オブザーバビリティエクスポーターのサポートに必要な構成情報を含めることができます。

アプリケーションのデプロイ手順の例を次に示します。

  1. cpx-ingress-prometheus.yaml ファイルと cic-configmap.yaml ファイルをダウンロードします。
  2. 必要なキーと値のペアを含む ConfigMap を作成し、ConfigMap をデプロイします。特定のエンドポイントで使用できるcic-configmap.yamlファイルは、 ディレクトリ内で使用できます
  3. 必要に応じて、Citrix ADC CPX 関連のパラメーターを変更します。
  4. cic-configmap.yaml ファイルを編集し、 NS_ANALYTICS_CONFIG エンドポイント構成でCitrix ADC Observability Exporterに次の変数を指定します。

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

    注:

    default以外のネームスペースを使用していた場合は、coe-prometheus.default.svc.cluster.local tocoe-prometheus.<desired-namespace>.svc.cluster.localに変更します。

  5. 次のコマンドを使用して、Citrix ADC オブザーバビリティエクスポーターをサポートするCitrix ADC CPXを展開します。

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

YAML ファイルを使用したPrometheusとGrafanaのデプロイ

YAML ファイルを使用して Prometheus と Grafana をデプロイするには、次の手順を実行します。

  1. prometheus-grafana.yaml からPrometheus-Grafana YAMLファイルをダウンロードします。
  2. デフォルト以外のネームスペースを使用する場合は、ネームスペース定義を編集します。
  3. 以下のコマンドを実行して Prometheus と Grafana をデプロイします。

      kubectl create -f prometheus-grafana.yaml
    

注:

Prometheus と Grafana は、同じ Kubernetes クラスターのデフォルト名前空間にデプロイされます。

YAML ファイルを使用して Citrix ADC オブザーバビリティエクスポーターを展開する

YAML ファイルを使用して Citrix ADC オブザーバビリティエクスポーターを展開できます。YAML ファイルを coe-prometheus.yamlからダウンロードします。

Kubernetes YAML を使用して Citrix ADC オブザーバビリティエクスポーターをデプロイするには、次のコマンドを実行します。

  kubectl create -f coe-prometheus.yaml

注:

カスタム名前空間がある場合は、Citrix ADC オブザーバビリティエクスポーターの YAML ファイルを変更します。

メトリックをエクスポートするようにCitrix ADCを構成する(オプション)

注:

Citrix ADCの構成にCitrix Ingressコントローラーを使用しない場合は、Citrix ADCで次の手動構成を実行できます。

Citrix ADC オブザーバビリティエクスポーターにメトリックをエクスポートするように、Citrix ADC を手動で構成できます。Citrix ADC オブザーバビリティエクスポーターのIP/FQDNアドレスをHTTPサービスとして指定し、 デフォルトのns_analytics_time_series_profile分析プロファイルに結合します。メトリクスのエクスポートを有効にし、出力モードを Prometheus に設定します。

次に、設定例を示します。

add server COE_instance 192.168.1.102
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

テレメトリデータをプルするように Prometheus (オプション) を設定する

Prometheus サービスは、 Quay コンテナーレジストリーと Docker Hub で Docker イメージとして利用できます。

Prometheus を起動してポート 9090 で公開するには、以下のコマンドを実行します。

docker run -p 9090:9090 prom/prometheus

Citrix ADC オブザーバビリティエクスポーターをスクレイプターゲットとして手動で追加するには、 prometheus.yaml ファイルを編集します。YAMLファイルで、Citrix ADCオブザーバビリティエクスポーターのIP/FQDNアドレスとポート5563をスクレイプターゲットとして指定します。

scrape_configs:
  - job_name: coe
    static_configs:
      - targets: ['192.168.1.102:5563']

Grafana の設定

現在のデプロイメントでは、Prometheus サーバーがデータソースとしてすでに追加されています。デプロイメントに既存の Prometheus サーバーを使用する場合は、Grafana にデータソースと同じサーバーを必ず追加してください。詳細については、 Prometheus に対する Grafana のサポートを参照してください

Grafana ビジュアライゼーションを作成する

Grafana ダッシュボードを作成して、データに適した主要な指標と可視化タイプを選択できます。

次の手順は、ADC CPU メトリックを Grafana パネルに追加する方法を示しています。

  1. [パネルタイトル] を [ ADC CPU] として指定します。
  2. [Query] タブで、クエリ A に対してメトリックを cpu_useとして指定します。
  3. [設定] タブで、[ 表示タイプ] を選択します。

    Grafana では、データとその表現を変更できます。詳細については、 Grafana のドキュメントを参照してください

    Grafana ダッシュボード

Grafana 用に構築済みのダッシュボードをインポートする

ビルド済みのダッシュボードを Grafana にインポートすることもできます。 使用可能なダッシュボードを参照してください

Citrix ADC オブザーバビリティエクスポーターに関連するトラブルシューティングについては、「 Citrix ADC CPX のトラブルシューティング」を参照してください。

PrometheusとGrafanaを使用したCitrix ADC可観測性エクスポーター