Dépannage de NetScaler CPX
Ce document explique comment résoudre les problèmes que vous pouvez rencontrer lors de l’utilisation de NetScaler CPX. À l’aide de ce document, vous pouvez collecter des journaux pour déterminer les causes et appliquer des solutions de contournement pour certains des problèmes courants liés à l’installation et à la configuration de NetScaler CPX.
-
Comment puis-je afficher les journaux NetScaler CPX ?
Vous pouvez afficher les journaux NetScaler CPX à l’aide de la commande
kubectl logssi NetScaler CPX est déployé avec l’optiontty:true. Vous pouvez exécuter la commande suivante pour afficher les journaux :kubectl logs <pod-name> [-c <container-name>] [-n <namespace-name>]Exemple,
kubectl logs cpx-ingress1-69b9b8c648-t8bgn -c cpx -n citrix-adcVoici un exemple de déploiement de pod NetScaler CPX avec l’option
tty:true:containers: - name: cpx-ingress image: "quay.io/citrix/citrix-k8s-cpx-ingress:13.0-58.30" tty: true securityContext: privileged: true env: <!--NeedCopy-->Vous trouverez d’autres journaux de démarrage dans le fichier /cpx/log/boot.log du système de fichiers NetScaler CPX.
Remarque : Pour obtenir le nom du pod, exécutez la commande
kubectl get pods -o wide. -
Comment puis-je collecter le bundle de support technique de NetScaler CPX ?
Vous pouvez exécuter la commande suivante sur l’interface shell du nœud maître Kubernetes pour collecter le bundle de support technique NetScaler CPX :
kubectl exec <cpx-pod-name> [-c <cpx-container-name>] [-n <namespace-name>] /var/netscaler/bins/cli_script.sh "show techsupport"Vous pouvez afficher le bundle de support technique dans le répertoire /var/tmp/support du système de fichiers de NetScaler CPX. Utilisez
scpoukubectl cppour copier le bundle de support technique de NetScaler CPX vers la destination souhaitée.Exemple :
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 -
Pourquoi le pod NetScaler CPX reste-t-il bloqué au démarrage ?
Vous pouvez vérifier l’état du pod à l’aide de la commande
kubectl describe pods. Exécutez la commande suivante pour connaître l’état du pod :kubectl describe pods <pod-name> [-c <container-name>] [-n <namespace-name>]Exemple :
kubectl describe pods cpx-ingress1-69b9b8c648-t8bgnSi les événements du pod indiquent que le conteneur est démarré, vous devez vérifier les journaux du pod.
-
Comment copier des fichiers entre le pod NetScaler CPX et le nœud maître Kubernetes ?
Il est recommandé d’utiliser la fonction de montage de volume de Docker pour monter le répertoire
/cpxsur le système de fichiers de l’hôte. Si un conteneur NetScaler CPX génère des vidages de mémoire (core-dumps), les journaux et d’autres données importantes sont disponibles sur le point de montage.Vous pouvez utiliser l’une des commandes suivantes pour copier des fichiers entre le pod NetScaler CPX et le nœud maître Kubernetes :
kubectl cp : Vous pouvez exécuter la commande suivante pour copier des fichiers d’un pod vers un nœud :
kubectl cp <pod-name>:<absolute-src-path> <dst-path> [-c <container-name>] [-n <namespace-name>]Exemple :
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.logscp : Vous pouvez utiliser cette commande pour copier des fichiers entre le pod NetScaler CPX et le nœud Kubernetes. Exécutez la commande suivante pour copier des fichiers du pod vers le nœud. Lorsque le mot de passe vous est demandé, fournissez le mot de passe de l’utilisateur SSH :
scp <user>@<pod-ip>:<absolute-src-path> <dst-path>Exemple :
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:~# -
Comment capturer des paquets sur NetScaler CPX ?
Pour capturer des paquets sur NetScaler CPX, lancez l’interface shell de NetScaler CPX à l’aide de la commande
kubectl exec. Exécutez la commande suivante pour lancer l’interface shell du pod NetScaler CPX :kubectl exec -it pod-name [-c container-name] [-n namespace-name] bashExemple :
kubectl exec -it cpx-ingress1-69b9b8c648-t8bgn -c cpx -n citrix-adc bashEt exécutez la commande suivante pour commencer la capture de paquets :
cli_script.sh “start nstrace -size 0”Si vous souhaitez arrêter la capture de paquets en cours, exécutez la commande suivante :
cli_script.sh “stop nstrace”Vous pouvez afficher les paquets capturés dans un fichier .cap dans le répertoire /cpx/nstrace/time-stamp du système de fichiers NetScaler CPX.
-
Pourquoi le serveur de licences n’est-il pas configuré même lorsque NetScaler CPX est déployé avec la variable d’environnement
LS_IP=<ADM-IP>?Assurez-vous que le serveur de licences est accessible depuis le nœud sur lequel NetScaler CPX est déployé. Vous pouvez utiliser la commande
ping <ADM-IP>pour vérifier la connectivité entre le nœud NetScaler CPX et Citrix ADM.Si Citrix ADM est accessible depuis le nœud, vous devez vérifier les journaux de configuration du serveur de licences dans le fichier /cpx/log/boot.log. Vous pouvez également vérifier la configuration du serveur de licences à l’aide de la commande suivante sur l’interface shell du pod NetScaler CPX :
cli_script.sh "show licenseserver"Exemple :
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 -
Pourquoi la licence en pool n’est-elle pas configurée sur NetScaler CPX même après une configuration réussie du serveur de licences sur NetScaler CPX ?
Vérifiez les journaux de configuration de la licence dans le fichier /cpx/log/boot.log. Vous pouvez également vérifier la licence en pool configurée sur NetScaler CPX à l’aide de la commande suivante sur l’interface shell du pod NetScaler CPX :
cli_script.sh “show capacity”Exemple,
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 DoneAssurez-vous également que les fichiers de licence requis sont téléchargés sur le serveur de licences. Vous pouvez également vérifier les licences disponibles sur le serveur de licences une fois qu’il est configuré avec succès sur NetScaler CPX en utilisant la commande suivante. Exécutez la commande sur l’interface shell du pod NetScaler CPX :
cli_script.sh “sh licenseserverpool”Exemple :
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--> -
Pourquoi les appels d’API NITRO reçoivent-ils une réponse Connection Refused de NetScaler CPX ?
Le port par défaut pour les API NITRO est 9080 (non sécurisé) et 9443 (sécurisé) à partir de la version 12.1 de NetScaler CPX. Assurez-vous que le port NITRO de NetScaler CPX auquel vous essayez d’accéder est exposé sur le pod. Vous pouvez exécuter la commande
kubectl describepour afficher le port exposé et mappé du conteneur NetScaler CPX dans la section du conteneur NetScaler CPX :kubectl describe pods <pod-name> | grep -i portExemple :
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--> -
Pourquoi le processus NSPPE dans NetScaler CPX consomme-t-il la majeure partie de l’utilisation du CPU même en l’absence ou avec peu de trafic ?
Si NetScaler CPX est déployé avec la variable d’environnement
CPX_CONFIG=’{“YIELD”:”NO”}', le processus NSPPE consomme 100 % de l’utilisation du CPU même en l’absence ou avec peu de trafic. Si vous ne voulez pas que le processus NSPPE consomme l’utilisation du CPU, vous devez déployer NetScaler CPX sans la variable d’environnementCPX_CONFIG=’{“YIELD”:”NO”}. Par défaut, le processus NSPPE dans CPX est configuré pour ne pas accaparer ou consommer l’utilisation du CPU. -
Pourquoi NetScaler CPX n’est-il pas répertorié dans Citrix ADM même s’il a été déployé avec les variables d’environnement requises pour l’enregistrement auprès de Citrix ADM ?
Vous pouvez trouver les journaux d’enregistrement de NetScaler CPX auprès de Citrix ADM dans le fichier /cpx/log/boot.log sur le système de fichiers NetScaler CPX.
Vous pouvez vérifier l’accessibilité de l’adresse IP de Citrix ADM depuis le pod NetScaler CPX à l’aide de la commande
ping. Assurez-vous également que toutes les variables d’environnement requises pour l’enregistrement de Citrix ADM sont configurées pour le conteneur NetScaler CPX.- NS_MGMT_SERVER=
<ADM-IP> - NS_MGMT_FINGER_PRINT=
<ADM-Fingerprint> - HOST=
<Node-IP> - NS_HTTP_PORT=
<Mapped-HTTP-Port-on-Node> - NS_HTTPS_PORT=
<Mapped-HTTPS-Port-on-Node> - NS_SSH_PORT=
<Mapped-SSH-Port-on-Node> - NS_SNMP_PORT=
<Mapped-SNMP-Port-on-Node> - NS_ROUTABLE=0 (L’adresse IP du pod NetScaler CPX n’est pas routable depuis l’extérieur.)
- NS_MGMT_SERVER=
-
Pourquoi
cli_script.shaffiche-t-il le message d’erreur Nom d’utilisateur ou mot de passe invalide après avoir modifié le mot de passe de l’utilisateur nsroot ?La commande
cli_script.shest un utilitaire wrapper pour NSCLI sur NetScaler CPX. Elle exécute le premier argument comme chaîne de commande ou chemin de fichier, et le deuxième argument est facultatif et correspond aux informations d’identification. Si le mot de passe de l’utilisateur nsroot est modifié, vous devez fournir les informations d’identification comme deuxième argument àcli_script.sh. Vous pouvez exécuter la commande suivante pour exécuter NSCLI avec des informations d’identification :cli_script.sh “<command>” “:<username>:<password>”Exemple :
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