NetScaler CPXのトラブルシューティング
このドキュメントでは、NetScaler CPXの使用中に発生する可能性のある問題のトラブルシューティング方法について説明します。このドキュメントを使用すると、ログを収集して原因を特定し、NetScaler CPXのインストールと構成に関連する一般的な問題のいくつかに対して回避策を適用できます。
- NetScaler CPXでメモリ使用率が常に高いのはなぜですか?
メモリ使用率は、NetScaler CPXの現在のメモリ使用量と、NetScaler CPXがオペレーティングシステム(OS)から自動的に割り当てる合計メモリ量を比較することによって決定されます。NetScaler CPXは、起動と基本操作に必要な最小限のメモリをOSから割り当てることから始めます。最初は、NetScaler CPXは操作に必要な最小限のメモリを割り当てるため、メモリ消費率が高くなります。最終的に、NetScaler CPX運用の拡張に伴ってより多くのリソースに対するニーズが高まるにつれて、NetScaler CPXはOSから追加のメモリを段階的に割り当て、メモリ使用量も高くなるため、メモリ使用率が高くなります。
したがって、NetScaler CPXの動的メモリ割り当て戦略により、NetScaler CPXは通常、使用可能なメモリが不足しているのではなく、リソースを効率的に使用していることを反映して、高いメモリ使用率を示します。
-
NetScaler CPXログを表示する方法を教えてください。
NetScaler CPXが
tty:true
オプションを使用して展開されている場合、kubectl logs
コマンドを使用してNetScaler CPXログを表示できます。 次のコマンドを実行して、ログを表示できます:kubectl logs <pod-name> [-c <container-name>] [-n <namespace-name>]
例:
kubectl logs cpx-ingress1-69b9b8c648-t8bgn -c cpx -n citrix-adc
以下は、
tty:true
オプションを使用したNetScaler CPXポッドの展開の例です。containers: - name: cpx-ingress image: "quay.io/citrix/citrix-k8s-cpx-ingress:13.0-58.30" tty: true securityContext: privileged: true env: <!--NeedCopy-->
NetScaler CPXファイルシステムの /cpx/log/boot.log ファイルには、より多くのブートログがあります。
注:ポッド名を取得するには、
kubectl get pods -o wide
コマンドを実行します。 -
NetScaler CPXからテクニカルサポートバンドルを入手する方法を教えてください。
Kubernetesマスターノードのシェルインターフェイスで次のコマンドを実行すると、NetScaler CPXテクニカルサポートバンドルを収集できます。
kubectl exec <cpx-pod-name> [-c <cpx-container-name>] [-n <namespace-name>] /var/netscaler/bins/cli_script.sh "show techsupport"
テクニカルサポートバンドルは、NetScaler CPXのファイルシステムの/var/tmp/supportディレクトリで確認できます 。
scp
またはkubectl cp
を使用して、NetScaler CPXからテクニカルサポートバンドルを目的の宛先にコピーします。例:
root@localhost# kubectl exec cpx-ingress1-55b9b6fc75-t5kc6 -c cpx -n citrix-adc /var/netscaler/bins/cli_script.sh "show techsupport" exec: show techsupport Scope: NODE Done root@localhost# kubectl cp cpx-ingress1-55b9b6fc75-t5kc6:var/tmp/support/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz /tmp/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz -c cpx root@localhost# ll /tmp/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz -rw-r--r-- 1 root root 1648109 Aug 31 13:23 /tmp/collector_P_192.168.29.232_31Aug2020_07_30.tar.gz
-
NetScaler CPXポッドが起動中に動かなくなるのはなぜですか?
kubectl describe pods
コマンドを使用して、ポッドのステータスを確認できます。次のコマンドを実行して、ポッドのステータスを確認します:kubectl describe pods <pod-name> [-c <container-name>] [-n <namespace-name>]
例:
kubectl describe pods cpx-ingress1-69b9b8c648-t8bgn
ポッドイベントがコンテナが開始されたことを示している場合は、ポッドログを確認する必要があります。
-
NetScaler CPXポッドとKubernetesマスターノード間でファイルをコピーする方法を教えてください。
/cpx
ディレクトリをホストのファイルシステムにマウントするには、Dockerのボリュームマウント機能を使用することをお勧めします。NetScaler CPXコンテナがコアダンプを終了すると、ログやその他の重要なデータがマウントポイントで利用可能になります。NetScaler CPXポッドとKubernetesマスターノード間でファイルをコピーするには、次のコマンドのいずれかを使用できます。
kubectl cp:次のコマンドを実行して、ポッドからノードにファイルをコピーできます:
kubectl cp <pod-name>:<absolute-src-path> <dst-path> [-c <container-name>] [-n <namespace-name>]
例:
root@localhost:~# kubectl cp cpx-ingress-596d56bb6-zbx6h:cpx/log/boot.log /tmp/cpx-boot.log -c cpx-ingress root@localhost:~# ll /tmp/cpx-boot.log -rw-r--r-- 1 root root 7880 Sep 11 00:07 /tmp/cpx-boot.log
scp:コマンドを使用して、NetScaler CPX ポッドと Kubernetes ノード間でファイルをコピーできます。次のコマンドを実行して、ポッドからノードにファイルをコピーします。パスワードの入力を求められたら、SSHユーザーのパスワードを入力します:
scp <user>@<pod-ip>:<absolute-src-path> <dst-path>
例:
root@localhost:~# scp nsroot@192.168.29.198:/cpx/log/boot.log /tmp/cpx-boot.log nsroot@192.168.29.198's password: boot.log 100% 7880 5.1MB/s 00:00 root@localhost:~#
-
NetScaler CPXでパケットをキャプチャする方法を教えてください。
NetScaler CPXでパケットをキャプチャするには、
kubectl exec
コマンドを使用してNetScaler CPXのシェルインターフェイスを起動します。次のコマンドを実行して、NetScaler CPXポッドのシェルインターフェイスを起動します。kubectl exec -it pod-name [-c container-name] [-n namespace-name] bash
例:
kubectl exec -it cpx-ingress1-69b9b8c648-t8bgn -c cpx -n citrix-adc bash
次に、以下のコマンドを実行してパケットのキャプチャを開始します:
cli_script.sh “start nstrace -size 0”
進行中のパケットキャプチャを停止する場合は、次のコマンドを実行します:
cli_script.sh “stop nstrace”
NetScaler CPXファイルシステムの/cpx/nstrace/time-stampディレクトリにある.capファイルにキャプチャされたパケットを表示できます 。
-
NetScaler CPXを
LS_IP=<ADM-IP>
環境変数で展開しても、ライセンスサーバーが構成されないのはなぜですか?NetScaler CPXが展開されているノードからライセンスサーバーにアクセスできることを確認します。
ping <ADM-IP>
コマンドを使用して、NetScaler CPXノードからNetScaler ADMへの接続を確認できます。NetScaler ADM にノードからアクセスできる場合は、/cpx/log/boot.log ファイルのライセンスサーバー構成ログを確認する必要があります。 NetScaler CPXポッドのシェルインターフェイスで次のコマンドを使用して、ライセンスサーバーの構成を確認することもできます。
cli_script.sh "show licenseserver"
例:
root@cpx-ingress-596d56bb6-zbx6h:/cpx/log# cli_script.sh "show licenseserver" exec: show licenseserver ServerName: 10.106.102.199Port: 27000 Status: 1 Grace: 0 Gptimeleft: 720 Done
-
NetScaler CPXでライセンスサーバーが正常に構成された後でも、プールライセンスがNetScaler CPXで構成されないのはなぜですか?
/cpx/log/boot.logファイルでライセンス構成ログを確認します。NetScaler CPXポッドのシェルインターフェイスで次のコマンドを使用して、NetScaler CPXで構成されたプールライセンスを確認することもできます。
cli_script.sh “show capacity”
例:
root@cpx-ingress-596d56bb6-zbx6h:/cpx/log# cli_script.sh "show capacity" exec: show capacity Actualbandwidth: 1000 MaxVcpuCount: 2 Edition: Platinum Unit: Mbps Bandwidth: 0` `Maxbandwidth: 40000 Minbandwidth: 20 Instancecount: 1 Done
また、必要なライセンスファイルがライセンスサーバーにアップロードされていることを確認してください。NetScaler CPXで正常に構成されたら、次のコマンドを使用してライセンスサーバーで使用可能なライセンスを確認することもできます。NetScaler CPXポッドのシェルインターフェイスで次のコマンドを実行します。
cli_script.sh “sh licenseserverpool”
例:
root@cpx-ingress-596d56bb6-zbx6h:/cpx/log# cli_script.sh "show licenseserverpool" exec: show licenseserverpool Instance Total : 5 Instance Available : 4 Standard Bandwidth Total : 0 Mbps Standard Bandwidth Availabe : 0 Mbps Enterprise Bandwidth Total : 0 Mbps Enterprise Bandwidth Available : 0 Mbps Platinum Bandwidth Total : 10.00 Gbps Platinum Bandwidth Available : 9.99 Gbps CP1000 Instance Total : 100 CP1000 Instance Available : 100 Done <!--NeedCopy-->
-
NITRO API呼び出しにNetScaler CPXから接続拒否の応答が返されるのはなぜですか ?
NetScaler CPXリリース12.1以降では、NITRO APIのデフォルトポートは9080(非セキュア)と9443(セキュア)です。アクセスしようとしているNetScaler CPXのNITRO ポートがポッドで公開されていることを確認してください。
kubectl describe
コマンドを実行すると、NetScaler CPXコンテナの公開およびマッピングされたポートがNetScaler CPXコンテナセクションに表示されます。kubectl describe pods <pod-name> | grep -i port
例:
ng472 | grep -i port Ports: 80/TCP, 443/TCP, 9080/TCP, 9443/TCP Host Ports: 0/TCP, 0/TCP, 0/TCP, 0/TCP NS_HTTP_PORT: 9080 NS_HTTPS_PORT: 9443 Port: <none> Host Port: <none> NS_PORT: 80 <!--NeedCopy-->
-
NetScaler CPXのNSPPEプロセスが、トラフィックがない場合やトラフィックがほとんどない場合でもCPU使用率の大部分を消費するのはなぜですか?
NetScaler CPXを
CPX_CONFIG=’{“YIELD”:”NO”}'
環境変数とともに展開すると、トラフィックがまったくない、またはほとんどない場合でも、NSPPEプロセスはCPU使用率を 100% 消費します。NSPPEプロセスがCPU使用率を消費しないようにするには、CPX_CONFIG=’{“YIELD”:”NO”}
環境変数なしでNetScaler CPXを展開する必要があります。デフォルトでは、CPXのNSPPEプロセスは、CPU使用率を占有または消費しないように構成されています。 -
NetScaler CPXがNetScaler ADMへの登録に必要な環境変数を使用してデプロイされているのに、NetScaler ADMにリストされないのはなぜですか?
NetScaler CPXをNetScaler ADMに登録するためのログは、NetScaler CPXファイルシステムの /cpx/log/boot.log ファイルにあります。
ping
コマンドを使用して、NetScaler CPXポッドからNetScaler ADM IPアドレスにアクセスできるかどうかを確認できます。また、NetScaler ADMの登録に必要なすべての環境変数がNetScaler CPXコンテナ用に構成されていることを確認してください。-
NS_MGMT_SERVER
:ADM-IPアドレスまたはFQDNを指定します。 -
HOST
:ノードのIPアドレスを指定します。 -
NS_HTTP_PORT
:ノードにマップされたHTTPポートを指定します。 -
NS_HTTPS_PORT
:ノードにマップされたHTTPSポートを指定します。 -
NS_SSH_PORT
:ノードにマップされたSSHポートを指定します。 -
NS_SNMP_PORT
:ノードにマップされたSNMPポートを指定します。 -
NS_ROUTABLE
: NetScaler CPXポッドのIPアドレスは外部からルーティングできません。 -
NS_MGMT_USER
:ADMユーザー名を指定します。 -
NS_MGMT_PASS
:ADMパスワードを指定します。
-
-
nsrootユーザーのパスワードを変更した後、
cli_script.sh
に「無効なユーザー名またはパスワードです」というエラーメッセージが表示されるのはなぜですか。コマンド
cli_script.sh
は、NetScaler CPX上のNSCLIのラッパーユーティリティです。最初の引数をコマンド文字列またはファイルパスとして実行し、2番目の引数はオプションであり、資格情報です。nsrootユーザーのパスワードが変更された場合は、cli_script.sh
の2番目の引数として資格情報を指定する必要があります。次のコマンドを実行して、資格情報を使用してNSCLIを実行できます:cli_script.sh “<command>” “:<username>:<password>”
例:
root@087a1e34642d:/# cli_script.sh "show ns ip" exec: show ns ip ERROR: Invalid username or password root@087a1e34642d:/# cli_script.sh "show ns ip" ":nsroot:nsroot123" exec: show ns ip Ipaddress Traffic Domain Type Mode Arp Icmp Vserver State -------------- ---- ---- --- ---- ------- ------ ----- 172.17.0.3 0 NetScaler IP Active Enabled Enabled NA Enabled 192.0.0.1 0 SNIP Active Enabled Enabled NA Enabled Done
-
NetScaler CPXへのSSHが
root
およびnsroot
ユーザーの入力で失敗するのはなぜですか?13.0-64.35リリース以降、NetScaler CPXはデフォルトのパスワードを生成し、SSHユーザー向けにそれを更新します(
root
およびnsroot
)。 パスワードを手動で変更していない場合、SSHユーザーのパスワードはNetScaler CPXのファイルシステムの/var/deviceinfo/random_id
で確認できます。