Elasticsearchをエンドポイントとして使用するCitrix ADC可観測性エクスポーター
Citrix ADC オブザーバビリティエクスポーターは、Citrix ADC からメトリックとトランザクションを収集するコンテナーです。サポートされている形式 (JSON など) にデータを変換し、エンドポイントとして Elasticsearch にデータをエクスポートします。Elasticsearch は Lucene ライブラリをベースにした検索エンジンです。HTTP Web インターフェイスとスキーマフリーの JSON ドキュメントを備えた、分散型のマルチテナント対応のフルテキスト検索エンジンを提供します。
Citrix ADC 可観測性エクスポーターの展開
YAML ファイルを使用して Citrix ADC オブザーバビリティエクスポーターを展開できます。Citrix ADC 展開に基づいて、Citrix ADC オブザーバビリティエクスポーターをKubernetesクラスターの外部または内部に展開できます。Citrix ADC オブザーバビリティエクスポーターは、Kubernetesクラスター内のポッドとして、またはクラスター外のCitrix ADC MPXまたはVPXアプライアンスにポッドとして展開できます。
次の図は、CitrixイングレスコントローラーとCitrix ADCオブザーバビリティエクスポーターをサイドカーとして使用するイングレスゲートウェイとしてのCitrix ADCを示しています。Citrix ADC オブザーバビリティエクスポーターは、Citrix ADC アプリケーションメトリックとトランザクションデータをElasticsearchに送信し、同じデータをKibanaにエクスポートします。Kibana は、データをグラフィカルに表現します。
前提条件
-
kube-dns
またはCoreDNS
アドオンが有効になっている Kubernetes クラスタがあることを確認します。
次の手順では、YAML ファイルを使用して、Kubernetes DefauIt 名前空間にCitrix ADC オブザーバビリティエクスポーターをデプロイします。 デフォルト以外のプライベート名前空間にデプロイする場合は、YAML ファイルを編集して名前空間を指定します。
アプリケーションのデプロイ手順の例を次に示します。
注:
デプロイ済みの Web アプリケーションがある場合は、ステップ 1 と 2 をスキップします。
-
シークレット ingress.crt を作成し、独自の証明書とキーを使用して ingress.key をキー設定します。
この例では、デフォルトの名前空間に ing というシークレットが作成されます。
kubectl create secret tls ing --cert=ingress.crt --key=ingress.key
-
webserver-es.yaml から YAML ファイルにアクセスして、アプリケーションをデプロイします。
kubectl create -f webserver-es.yaml
-
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 オブザーバビリティエクスポーターのサポートに必要な構成情報を含めることができます。
Citrix ADC オブザーバビリティエクスポーターをサポートするCitrix ADC CPXインスタンスを展開するには、次の手順を実行します。
- cpx-ingress-es.yaml ファイルと cic-configmap.yaml ファイルをダウンロードします。
- 必要なキーと値のペアを含む ConfigMap を作成し、ConfigMap をデプロイします。特定のエンドポイントで使用できる
cic-configmap.yaml
ファイルは、 ディレクトリ内で使用できます。 - 必要に応じて、Citrix ADC CPX 関連のパラメーターを変更します。
-
cic-configmap.yaml
ファイルを編集し、NS_ANALYTICS_CONFIG
エンドポイント構成でCitrix ADC Observability Exporterに次の変数を指定します。server: 'coe-es.default.svc.cluster.local' # COE service FQDN
注:
default以外のネームスペースを使用していた場合は、
coe-es.default.svc.cluster.local to
をcoe-es.<desired-namespace>.svc.cluster.local
に変更します。ADCがKubernetesクラスターの外部にある場合は、Citrix ADCオブザーバビリティエクスポーターのIPアドレスとノードポートアドレスを指定する必要があります。 -
次のコマンドを使用して、Citrix ADC オブザーバビリティエクスポーターをサポートするCitrix ADC CPXを展開します。
kubectl create -f cpx-ingress-es.yaml kubectl create -f cic-configmap.yaml
YAML ファイルを使用して Elasticsearch と Kibana をデプロイする
-
elasticsearch.yaml から Elasticsearch YAML ファイルをダウンロードし、 kibana.yaml からキバナ YAMLファイルをダウンロードします。
-
default以外のネームスペースを使用する場合は、ネームスペース定義を編集します。
-
以下のコマンドを実行して Elasticsearch と Kibana をデプロイします。
kubectl create -f elasticsearch.yaml kubectl create -f kibana.yaml
注:Elasticsearch と Kibana は、同じ Kubernetes クラスターのデフォルトの名前空間にデプロイされます。
YAML ファイルを使用して Citrix ADC オブザーバビリティエクスポーターを展開する
YAML ファイルを使用して Citrix オブザーバビリティエクスポーターをデプロイできます。 coe-es.yaml から YAMLファイルをダウンロードします。
Kubernetes YAML を使用して Citrix オブザーバビリティエクスポーターをデプロイするには、Elasticsearch エンドポイントで次のコマンドを実行します。
kubectl create -f coe-es.yaml
注:
カスタム名前空間がある場合は、Citrix ADC オブザーバビリティエクスポーターの YAML ファイルを変更します。
Citrix ADC オブザーバビリティエクスポーターの展開を確認する
Citrix ADC オブザーバビリティエクスポーターの展開を確認するには、次の手順に従います。
-
以下のコマンドを使用して、デプロイメントを検証します。
kubectl get deployment,pods,svc -o wide
-
URL:
https://kubernetes-node-IP:cpx-ingress-es nodeport/
を使用して、ブラウザでアプリケーションにアクセスします。たとえば、ステップ 1 から、
10.102.40.41
が Kubernetes ノード IP の 1 つであるhttp://10.102.40.41:30176/にアクセス 。 -
URL:
https://<kubernetes-node-IP>:<kibana nodeport>/
を使用して、ブラウザで Kibanaにアクセスします。たとえば、ステップ 1 から、
10.102.40.41
が Kubernetes ノード IP の 1つであるhttp://10.102.40.41:32529/にアクセス。-
[ 自分で探索] をクリックします。
-
[ Elasticsearch インデックスに接続] をクリックします。
-
[ 保存済みオブジェクト] をクリックします。
-
KibanaAppTrans.ndjson から Kibanaダッシュボードをダウンロードしてインポートします。
-
[ アプリトランザクション] ダッシュボードをクリックします。
ダッシュボードが表示されます。
-
Citrix ADCを複数のCitrix ADCオブザーバビリティエクスポーターインスタンスと手動で統合する
Citrix ADC オブザーバビリティエクスポーターを手動で構成することもできます。前のセクションで説明したように、YAMLファイルを使用してCitrix ADC オブザーバビリティエクスポーターを自動的に展開することをお勧めします。MPXおよびVPXフォームファクターでCitrix ADC 手動構成を実行することもできます。
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
FQDNを使用してCitrix ADCオブザーバビリティエクスポーターを追加する
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
Citrix ADCがアプリケーションデータログをCitrix ADCオブザーバビリティエクスポーターに送信するかどうかを確認するには:
nsconmsg -g lstream_tot_trans_written -d current
カウンターの値は、Citrix ADC Observability Exporterに送信されたアプリケーショントランザクション(HTTPトランザクションなど)の数を示します。
Citrix ADC Observability Exporterに送信されるアプリケーショントラフィックレート(HTTP req/secなど)がlstream_tot_trans_written
と等しくない場合は 、次のコマンドを使用して同じことを確認できます。
nsconmsg -g nslstream_err_ulf_data_not_sendable -d current
カウンターの値は、ネットワークの輻輳、ネットワーク帯域幅の利用不能などのために、Citrix ADC がCitrix ADC Observability Exporterにデータを送信できないことを示します。データは使用可能なバッファに格納されます。
さまざまなトランザクションデータ、個々のフィールド、およびそれらのデータ型に関する情報は、Citrix ADC の次の場所にあります。
shell/netscaler/appflow/ns_ipfix.yaml
アプリケーショントランザクションレコードがCitrix ADCからCitrix ADC ObservabilityExporterにエクスポートされたかどうかを確認するには、次のコマンドを使用します。
nsconmsg -g appflow_tmpl -d current
時系列データのメトリックデータエクスポートログをCitrix ADCにエクスポートする場所:
/var/nslog/metrics_prom.log
Elasticsearch 関連のカウンタを確認するには、以下のコマンドを実行します。
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)"
次の場所でログを検索し、Citrix ADC オブザーバビリティエクスポーターの構成が正しく適用されていることを確認します。
vi /var/logproxy/lstreamd/conf/lstreamd.conf
Citrix ADC Observability Exporterが失敗した場合は、次の場所で入手可能なログとファイルを収集し、Citrix サポートに連絡できます。
/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.)
Citrix ADC オブザーバビリティエクスポーターに関連するトラブルシューティングについては、「 Citrix ADC CPX のトラブルシューティング」を参照してください。