-
-
-
VMware ESX、Linux KVM、およびCitrix HypervisorでNetScaler ADC VPXのパフォーマンスを最適化する
-
-
NetScalerアプライアンスのアップグレードとダウングレード
-
-
-
-
-
-
-
-
-
-
-
-
PrometheusによるNetScaler ADCとアプリケーションの監視
-
-
-
This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
PrometheusによるNetScaler、アプリケーション、およびアプリケーションセキュリティの監視
指標は、特定の期間に測定されたデータを数値で表したものです。メトリックデータは、 システムの状態を経時的に追跡するのに役立ちます。Prometheus は、メトリクスデータを収集し、データが記録された時点のタイムスタンプを付けてそのデータを保存するオープンソースの監視ツールです。
メトリクスを監視および分析することで、アプリケーションの状態を追跡し、異常を検出し、アラートを作成し、必要な是正措置を講じて、ソフトウェアを確実に配信できます。
NetScalerは、Prometheusへのメトリクスの直接エクスポートをサポートするようになりました。NetScaler ADCが提供する豊富なメトリックセットを使用して、NetScalerの状態とアプリケーションの状態を監視できます。たとえば、CPUとメモリの使用状況に関するメトリックを収集して、NetScalerの状態を知ることができます。同様に、1 秒あたりに受信した HTTP リクエストの数やアクティブなクライアントの数などの指標を使用して、アプリケーションの状態を監視できます。
NetScaler からPrometheusへのメトリクスのエクスポート
NetScalerは、Prometheusのプルモードとプッシュモードをサポートしています。プルモードでは、Prometheus が定期的にクエリを実行し、エクスポーターリソースを挟まずにメトリクスデータを直接取得する時系列プロファイルを設定する必要があります。プルモードでは、スーパーユーザー権限を持たないユーザーがPrometheusにメトリックをエクスポートするための読み取り専用アクセスを有効にできます。Grafana を使用すると、Prometheus にエクスポートされた NetScaler メトリクスを視覚化して、解釈や理解が容易になります。
次の図は、PrometheusとGrafana とNetScalerの統合を示しています。
NetScalerからPrometheusへのメトリクスのエクスポートとGrafanaを使用した視覚化を設定します
NetScalerからPrometheusへのメトリックのエクスポートを設定し、Grafanaを使用して視覚化するには、次の手順を実行する必要があります。
- メトリクスをPrometheusにエクスポートするための時系列分析プロファイルを使用してNetScalerを構成します。
- Prometheusをインストールし、NetScaler 固有のパラメーターを使用して構成します。
- Grafana のデータソースとして Prometheus を追加します。
- Grafana でビジュアライゼーションを作成
PrometheusプルモードをサポートするようにNetScalerで時系列分析プロファイルを構成する
NetScaler CLIを使用してプルモードを構成するには、次の手順を実行します。
-
タイプが時系列である分析プロファイルを作成します。必要な NetScaler メトリックを含むスキーマファイルを指定します。
add analytics profile <timeseries_profile_name> -type timeseries -schemaFile <name_of_schema_file> -outputMode Prometheus -serveMode PULL -metrics ENABLED
このコマンドでは、
-
timeseries_profile_name
: 時系列プロファイル名を指定します。 -
schemaFile
: NetScaler カウンタでスキーマファイルの名前を指定します。デフォルトでは、カウンターのリストを含むスキーマファイル/var/metrics_conf/schema.json
が設定されます。サポートされているすべてのカウンタを含む参照スキーマファイルreference_schema.json
もパス/var/metrics_conf/
の下にあります。このスキーマファイルは、カウンターのカスタムリストを作成するための参照として使用できます。 スキーマファイルを指定すると、 スキーマファイル/var/metrics_conf/
のパスが自動的に追加されるため、指定する必要があるのはスキーマファイル名だけです。たとえば、/var/metrics_conf/
にカウンタのカスタムリストを含むスキーマファイルschema1.json
を作成した場合 、ファイル名だけをschema1.json
として指定する必要があります 。 -
outputMode
: 出力モードを Prometheus に設定します。 -
serveMode
: Prometheusのプルモードを指定します。 -
metrics
: NetScalerからのメトリクスの収集を有効にします。
-
注:
add コマンドを使用して、必要なすべてのパラメーターを含む分析プロファイルを設定できます。プロファイルの作成後に変更を加える必要がある場合は、set コマンドを使用して、メトリックの無効化やサーバーモードの変更などの適切なアクションを実行できます。非スーパーユーザーには、読み取り専用の Prometheus アクセスを設定できます。詳細については、「 スーパーユーザー以外の読み取り専用の Prometheus アクセスを設定する」を参照してください。
NetScalerからメトリックをエクスポートするためのPrometheusのインストールと設定
Prometheusは、DockerHub や Quay などのリポジトリや、Prometheusの公式リポジトリからダウンロードできます。
Prometheus を Docker コンテナーとして実行するには、以下のコマンドを使用します。
docker run -dp 39090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml --name native_prom prom/prometheus:latest > **注:** > > ここでは、`/tmp/prometheus.yml`が`prometheus.yml`ファイルへのパスとして使用されます。その代わりに、仮想マシンのパスを指定できます。
prometheus.yml
NetScalerのパラメータを使用して編集する必要があります。
NetScalerからメトリックをエクスポートするには、 Prometheus YAMLスクレイプ構成セクションで次のNetScaler固有のパラメーターを指定する必要があります。スクレイプ構成セクションでは、ターゲットとそれらをスクレイピングする方法を説明する構成パラメーターのセットを指定します。
-
metrics_path
: NetScaler の HTTP リソースパス (/nitro/v1/config/systemfile) を指定してメトリックを取得します。 -
username
: NetScalerユーザー名を指定します。 -
password
: NetScalerのパスワードを指定します。 -
targets
: メトリクス、メトリックのエクスポート元となるNetScalerのIPアドレス 、および公開するポートを指定します。 -
filename
:metrics_prom_<timeseries_profile_name>.log
ファイルでtimeseries_profile_name
の代わりに、設定した時系列プロファイルの名前を指定します。 -
filelocation
: ファイルの場所を/var/nslog
として指定します。
以下は、Prometheus YAMLのスクラップ構成セクションで、NetScaler IPアドレスをPrometheusのターゲットとして追加してメトリックをエクスポートするためのものです。ここでは、HTTP がスキームとして使用されています。HTTP または HTTPS のいずれかを使用できます。
scrape_configs:
- job_name: 'vpx2_metrics_direct'
metrics_path: /nitro/v1/config/systemfile
params:
args: ['filename:metrics_prom_ns_analytics_time_series_profile.log,filelocation:/var/nslog']
format: ['prometheus']
basic_auth:
username: 'prom_user'
password: 'user_password'
scheme: http
scrape_interval: 30s
static_configs:
- targets: ['10.102.34.231:80']
<!--NeedCopy-->
PrometheusをGrafana データソースとして追加
Grafana ダッシュボードを使用してメトリクスを視覚化する必要がある場合は、Grafana のデータソースとして Prometheus を追加する必要があります。詳細については、「 Grafana のデータソースとして Prometheus を追加する」を参照してください。
Grafana でメトリクスのビジュアライゼーションを作成
Grafana ダッシュボードを作成し、主要な指標と適切なビジュアライゼーションタイプを選択できます。
以下の手順は、Grafana パネルに指標を追加し、サンプルビジュアライゼーションダッシュボードを作成する方法を示しています。
- パネルタイトルを指定します。
- 「クエリ」タブで、クエリ A に必要なメトリックを指定します。
- 「設定」タブで、「 ビジュアライゼーション」タイプを選択します。
Grafana では、データとその表現を変更できます。詳細については、 Grafana のドキュメントを参照してください。
以下は、いくつかのNetScaler ADCメトリックを含むGrafanaダッシュボードのサンプルです。
このダッシュボードには、次のようなさまざまなNetScalerメトリックのグラフが表示されます。
-
vsvr_tot_Hits
: 仮想サーバーが受信した要求の数を示します。 -
cc_cpu_use
: CPU 使用率を表示します。 -
http_tot_Requests
: 受信した HTTP リクエストを表示します。 -
serv_tot_serviced
: 処理中のリクエストを表示します。 -
mem_cur_used_size
: NetScalerアプライアンスの現在使用されているメモリが表示されます。
Prometheusグラフのサンプル
Prometheus エクスプレッションブラウザを使用すると、Prometheus サーバーによって収集された時系列メトリックを表示できます。ブラウザでprometheu-server-ip-address/graph
をポイントすると、エクスプレッションブラウザにアクセスできます。 式を入力すると、その結果を表またはグラフとして時系列で表示できます。「Expression」フィールドに指標名を入力して、表示する正確な指標を指定します。さまざまなパネルを使用して複数のカウンターを指定できます。
次の図は、2つのNetScalerメトリックとに関するPrometheusグラフを示しています。 cpu_use
http_tot_requests
Grafana ダッシュボードのサンプル
サンプルダッシュボードはNetScalerのダウンロードページからダウンロードできます。
以下は、NetScalerの状態、仮想サーバーのステータス、アプリケーションの状態(HTTPおよびTCPアプリ)、アプリケーションセキュリティ(SSLアプリ)など、インフラストラクチャ全体のさまざまなメトリックを1か所に表示するオプションを備えたGrafanaダッシュボードのサンプルです。
ダッシュボードの対応するセクションを展開すると、HTTPアプリ、SSLアプリ、TCPアプリ、仮想サーバー統計(vStats)、NetScaler 統計情報などの各セクションの詳細な視覚化を表示できます。
次の図は、NetScalerの統計情報を拡張したGrafanaダッシュボードのサンプルを示しています。
追加情報
エクスポートに必要な NetScaler カウンタを含むスキーマ
メトリクスコレクターは、設定されたスキーマファイルに存在するカウンターをエクスポートします。 /var/metrics_conf/schema.json
このファイルは、分析プロファイルで設定されたデフォルトのスキーマファイルです。
スキーマファイルは、エンティティタイプと関連するカウンターのリストです。スキーマでは、 netscaler
すべてのグローバルまたはシステムレベルのカウンタがエンティティタイプ別にグループ化されます。グローバルカウンタには、CPU 使用率 (cpu_use
)、管理 CPU 使用率 (mgmt_cpu_use
)、受信した HTTP リクエストの総数 (http_tot_Requests
) があります。サービスグループ固有のカウンタ、lbvserver
、csvserver
などは、それぞれのエンティティタイプの下に一覧表示されます。
以下は、認証仮想サーバー (vserver_authn
) エンティティのschema.json
ファイル内のカウンターのサンプルです。
"vserver_authn":
[
{"name":"si_tot_Requests","rate":"True"},
{"name":"si_tot_Responses","rate":"True"},
{"name":"si_tot_RequestBytes","rate":"True"},
{"name":"si_cur_state","rate":"False"},
{"name":"si_tot_ResponseBytes","rate":"True"},
{"name":"si_peer_port","rate":"True"},
{"name":"vsvr_Protocol","rate":"False"}
]
次の表では、このサンプルに記載されているカウンタについて説明します。
カウンター名 | 説明 |
---|---|
si_tot_Requests |
このサービスまたは仮想サーバーで受信したリクエストの総数。 |
si_tot_Responses |
このサービスまたは仮想サーバーで受信した応答の総数。 |
si_tot_RequestBytes |
このサービスまたは仮想サーバーで受信したリクエストバイトの総数。 |
si_cur_state |
仮想サーバーの現在の状態。 |
si_tot_ResponseBytes |
このサービスまたは仮想サーバーで受信した応答バイトの総数。 |
si_peer_port |
サービスが実行されているポート。 |
vsvr_Protocol |
仮想サーバーに関連するプロトコル。 |
rate
フィールドは、カウンターのレート値をエクスポートする必要がある場合、True
として設定できます。たとえば、rate
をsi_tot_Requests
のTrue
に設定すると、si_tot_Requests
のレートがエクスポートされます 。
以下は、 netscaler
エンティティのカウンターのサンプルです。
"netscaler":
[
{"name":"cpu_use","rate":"False"},
{"name":"mgmt_cpu_use","rate":"False"},
{"name":"tcp_tot_rxpkts","rate":"True"},
{"name":"tcp_tot_rxbytes","rate":"True"},
{"name":"tcp_tot_txpkts","rate":"True"},
{"name":"tcp_tot_txbytes","rate":"True"},
{"name":"tcp_cur_ClientConnEst","rate":"False"},
{"name":"tcp_cur_ServerConnEst","rate":"False"},
{"name":"tcp_cur_ClientConn","rate":"False"},
{"name":"tcp_cur_ClientConnClosing","rate":"False"},
{"name":"tcp_tot_ClientOpen","rate":"True"},
{"name":"tcp_cur_ServerConn","rate":"False"},
{"name":"tcp_cur_ServerConnClosing","rate":"False"},
{"name":"http_tot_Requests","rate":"True"},
{"name":"http_tot_Responses","rate":"True"},
{"name":"http_tot_Gets","rate":"True"},
{"name":"http_tot_Posts","rate":"True"},
{"name":"http_tot_Others","rate":"True"},
]
次の表では、このサンプルに記載されているカウンタについて説明します。
カウンター名 | 説明 |
---|---|
cpu_use |
CPU 使用率を追跡します (CPU 使用率* 10)。 |
tcp_tot_rxpkts |
TCP パケットを受信しました。 |
tcp_tot_rxbytes |
受信した TCP データのバイト数。 |
tcp_tot_txpkts |
TCP パケットが送信されました。 |
tcp_tot_txbytes |
送信された TCP データのバイト数。 |
tcp_cur_ClientConnEst |
現在のクライアント接続が「確立済み」状態です。これは、NetScalerアプライアンスとクライアント間でデータ転送が可能であることを示しています。 |
tcp_cur_ServerConnEst |
現在のサーバー接続が「確立済み」状態です。これは、NetScalerアプライアンスとサーバー間でデータ転送が可能であることを示しています。 |
tcp_cur_ClientConn |
クライアント接続 ([開始]、[確立]、[終了] 状態の接続を含む)。サーバー接続 (「開始」、「確立」、および「終了」状態の接続を含む)。 |
tcp_cur_ClientConnClosing |
クライアント接続が閉じている状態です。これは、接続終了プロセスが開始されたがまだ完了していないことを示します。 |
tcp_cur_ServerConn |
サーバー接続 (「開始」、「確立」、および「終了」状態の接続を含む)。 |
tcp_cur_ServerConnClosing |
サーバー接続が「クローズ」状態になっています。これは、接続終了プロセスが開始されたがまだ完了していないことを示します。 |
http_tot_Requests |
このカウンタは、GET メソッドを使用して受信した HTTP リクエストを追跡します。 |
http_tot_Responses |
このカウンタは、POST メソッドを使用して受信した HTTP リクエストを追跡します。 |
http_tot_Gets |
このカウンタは、GET メソッドを使用して受信した HTTP リクエストを追跡します。 |
http_tot_Posts |
このカウンタは、受信した HTTP リクエストを追跡します。 |
http_tot_Others |
このカウンタは、GET と POST 以外のメソッドを使用して受信した HTTP リクエストを追跡します。 |
以下は、 vserver_ssl
エンティティのカウンターのサンプルです。
"vserver_ssl":
[
{"name":"ssl_ctx_tot_session_hits","rate":"True"},
{"name":"ssl_ctx_tot_session_new","rate":"True"},
{"name":"ssl_ctx_tot_enc_bytes","rate":"True"},
{"name":"ssl_ctx_tot_dec_bytes","rate":"True"},
]
次の表では、このサンプルに記載されている SSL カウンタについて説明します。
カウンター名 | 説明 |
---|---|
ssl_ctx_tot_session_hits |
このカウンタはセッションヒット数を追跡します。 |
ssl_ctx_tot_session_new |
このカウンタは、作成された新しいセッションの数を追跡します。 |
ssl_ctx_tot_enc_bytes |
このカウンタは、SSL 仮想サーバーごとの暗号化されたバイト数を追跡します。 |
ssl_ctx_tot_dec_bytes |
このカウンタは、SSL 仮想サーバーごとに復号化されたバイト数を追跡します。 |
非スーパーユーザーには読み取り専用の Prometheus アクセスを設定する
スーパーユーザー以外のユーザーに読み取り専用の Prometheus アクセスを設定するには、次の手順を実行します。
-
NetScalerアプライアンスに新しいユーザーを追加します。
add system user <ns_user_name> <ns_user's_password> -externalAuth enabled -promptString user-%u-at-%T logging enaBLED
例:
add system user nspaul nspaul -externalAuth enabled -promptString user-%u-at-%T logging enaBLED
-
読み取り専用ユーザー用のコマンドポリシーを作成します。このコマンドポリシーでは、
/var/nslog/ directory
にあるすべてのファイルからの読み取り専用アクセスを許可します。add system cmdPolicy read-only-prometheus ALLOW \"\(^man.\*)|\(^show\s+\(?!system)\(?!configstatus)\(?!ns ns\.conf)\(?!ns savedconfig)\(?!ns runningConfig)\(?!gslb runningConfig)\(?!audit messages)\(?!techsupport).\*)|\(^stat.\*)|\(show system file .\* -filelocation \"/var/nslog\")\"
-
メトリクスを特定のファイルにのみ書き込む場合は、その特定のファイルのみを取得できるようにユーザーアクセスを制限することもできます。
add system cmdPolicy read-only-prometheus ALLOW \"\(^man.\*)|\(^show\s+\(!system)\(!configstatus)\(!ns ns\.conf)\(!ns savedconfig) \(!ns runningConfig)\(!gslb runningConfig)\(!audit messages)\(!techsupport).\*)|\(^stat.\*) |\(show system file metrics\_prom\_<name\_of\_timeseries\_profile>.log -filelocation \"/var/nslog\")\"
注:
show system file
コマンドで、name_of_ timeseries_profile
の代わりに設定した時系列プロファイルの名前を指定します。 -
ユーザーをコマンドポリシーでバインドします。
bind system user <userName> \(\(<policyName> <priority>) | -partitionName <string>)
例えば:
bind system user user1 read-only-prometheus 0
ユーザーをバインド解除してコマンドポリシーから削除するには、次のコマンドを使用します。
-
設定したユーザーをシステムコマンドポリシーからバインド解除します。
unbind system user <userName> \(<policyName> | -partitionName <string>
例:
unbind system user user1 read-only-prometheus
-
NetScalerからコマンドポリシーを削除します。
rm system cmdPolicy read-only-prometheus
複数の時系列プロファイルのカウンターの購読
NetScalerは複数の時系列プロファイルの作成をサポートし、プロファイルごとに異なるカウンターセットを指定できるようになりました。また、要件に応じてカウンターのみをエクスポートできます。
複数の時系列プロファイルを構成するには、必要なカウンタを固有の名前と拡張子.json
で含む複数のschema.json
ファイルを作成する必要があります。参照スキーマファイルreference_schema.json
はパス/var/metrics_conf/
の下にあります 。要件に応じて参照スキーマを変更し、それに応じて使用できます。
2 つの新しい時系列プロファイルの構成は次のとおりです。
add analytics profile ns_analytics_timeseries_profile_1 -type timeseries -schemaFile schema1.json
set analytics profile ns_analytics_timeseries_profile_1 -outputMode prometheus -serveMode PULL -metrics ENABLED
add analytics profile ns_analytics_timeseries_profile_2 -type timeseries -schemaFile schema2.json
set analytics profile ns_analytics_timeseries_profile_2 -outputMode prometheus -serveMode PULL -metrics ENABLED
この例では、schema1.json
と schema2.json
でカウンターのセットが異なります。
Prometheus構成
prometheus.yml
サンプルファイルの設定は次のとおりです。
scrape_configs:
- job_name: 'vpx2_metrics_direct'
metrics_path: /nitro/v1/config/systemfile
params:
args: ['filename:metrics_prom_ns_analytics_time_series_profile.log,filelocation:/var/nslog']
format: ['prometheus']
basic_auth:
username: 'prom_user'
password: 'user_password'
scheme: https
scrape_interval: 30s
static_configs:
- targets: ['<ADC1-ip>:<port>', '<ADC2-ip>:<port>']
<!--NeedCopy-->
共有
共有
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.