Introduzione
In questo documento viene descritta la procedura per risolvere i problemi relativi all'esecuzione dello script diagnostics.sh incompleto in Cisco Policy Suite (CPS).
Contributo di Ullas Kumar E, Cisco TAC Engineer.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
Nota: Cisco consiglia di disporre dell'accesso root privilegi alla CLI di CPS.
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
- CPS 21.1
- Centos 8.0
- Unified Computing System (UCS)-B
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
Diagnostics.sh è il comando di base per la risoluzione dei problemi che può essere eseguito nel nodo pcrfclient o installer di CPS per verificare lo stato corrente del sistema.
Fornisce un elenco dettagliato dei parametri come parte del controllo dello stato di CPS.
Questo script viene eseguito sui vari punti di accesso, monitoraggio e configurazione di un sistema CPS in esecuzione.
In ambienti ad alta disponibilità (HA) o a ridondanza geografica (GR), lo script esegue sempre un ping per tutte le macchine virtuali (VM) prima di qualsiasi altro controllo e aggiunge qualsiasi controllo che non supera il test ping alla variabile IGNORED_HOSTS. In questo modo si riduce la possibilità di errori nelle funzioni di script.
Examples:
/var/qps/bin/diag/diagnostics.sh -q
/var/qps/bin/diag/diagnostics.sh --basic_ports --clock_skew
Questi sono i controlli importanti eseguiti da questo script.
--basic_ports : Run basic port checks
For AIO: 80, 11211, 27017, 27749, 7070, 8080, 8090, 8182, 9091, 9092
For HA/GR: 80, 11211, 7070, 8080, 8081, 8090, 8182, 9091, 9092, and Mongo DB ports based on /etc/broadhop/mongoConfig.cfg
--clock_skew : Check clock skew between lb01 and all vms (Multi-Node Environment only)
--diskspace : Check diskspace
--get_active_alarms : Get the active alarms in the CPS
--get_frag_status : Get fragmentation status for Primary members of DBs viz. session_cache, sk_cache, diameter, spr, and balance_mgmt.
--get_replica_status : Get the status of the replica-sets present in environment. (Multi-Node Environment only)
--get_shard_health : Get the status of the sharded database information present in environment. (Multi-Node Environment only)
--get_sharding_status : Get the status of the sharding information present in environment. (Multi-Node Environment only).
--get_session_shard_health : Get the session shard health status information present in environment. (Multi-Node Environment only).
--get_peer_status : Get the diameter peer information present in environment. (Multi-Node Environment only).
--get_sharded_replica_status : Get the status of the shards present in environment. (Multi-Node Environment only)
--ha_proxy : Connect to HAProxy to check operation and performance statistics, and ports (Multi-Node Environment only)
http://lbvip01:5540/haproxy?stats
http://lbvip01:5540//haproxy-diam?stats
--help -h : Help - displays this help
--hostnames : Check hostnames are valid (no underscores, resolvable, in /etc/broadhop/servers) (AIO only)
--ignored_hosts : Ignore the comma separated list of hosts. For example --ignored_hosts='portal01,portal02'
Default is 'portal01,portal02,portallb01,portallb02' (Multi-Node Environment only)
--ping_check : Check ping status for all VM
--policy_revision_status : Check the policy revision status on all QNS,LB,UDC VMs.
--lwr_diagnostics : Retrieve diagnostics from CPS LWR kafka processes
--qns_diagnostics : Retrieve diagnostics from CPS java processes
--qns_login : Check qns user passwordless login
--quiet -q : Quiet output - display only failed diagnostics
--radius : Run radius specific checks
--redis : Run redis specific checks
--whisper : Run whisper specific checks
--aido : Run Aido specific checks
--svn : Check svn sync status between pcrfclient01 & pcrfclient02 (Multi-Node Environment only)
--tacacs : Check Tacacs server reachability
--swapspace : Check swap space
--verbose -v : Verbose output - display *all* diagnostics (by default, some are grouped for readability)
--virtual_ips : Ensure Virtual IP Addresses are operational (Multi-Node Environment only)
--vm_allocation : Ensure VM Memory and CPUs have been allocated according to recommendations
Problema
È possibile che in alcune situazioni l'esecuzione degli script diagnostics.sh si sia interrotta in un determinato momento e non sia possibile spostarla ulteriormente o terminare l'esecuzione dello script.
È possibile eseguire lo script e osservare che lo script è bloccato su "check forAuto Intelligent DB Operations (AIDO) Status" (Stato AIDO) non esegue la verifica del numero di sovversione (SVN) e non esegue altre operazioni.
[root@installer ~]# diagnostics.sh
CPS Diagnostics HA Multi-Node Environment
---------------------------
Ping check for all VMs...
Hosts that are not 'pingable' are added to the IGNORED_HOSTS variable...[PASS]
Checking basic ports for all VMs...[PASS]
Checking qns passwordless logins for all VMs...[PASS]
Validating hostnames...[PASS]
Checking disk space for all VMs...[PASS]
Checking swap space for all VMs...[PASS]
Checking for clock skew for all VMs...[PASS]
Retrieving diagnostics from pcrfclient01:9045...[PASS]
Retrieving diagnostics from pcrfclient02:9045...[PASS]
Checking redis server instances status on lb01...[PASS]
Checking redis server instances status on lb02...[PASS]
Checking whisper status on all VMs...[PASS]
Checking AIDO status on all VMs...[PASS]
.
.
Quando si controlla l'output dettagliato di diagnostics.sh, è necessario controllare lo stato SVN per verificare che lo script non si sposti oltre. Indica che lo script diagnostics.sh è bloccato durante il controllo del fattore.
[[32mPASS[0m] AIDO Pass
[[ -f /var/tmp/aido_extra_info ]]
cat /var/tmp/aido_extra_info
There is no provision to check AIDO service status of installer from this host
/bin/rm -fr /var/tmp/aido_extra_info
check_all_svn
++ is_enabled true
++ [[ '' == \t\r\u\e ]]
++ [[ true != \f\a\l\s\e ]]
++ echo true
[[ true == \t\r\u\e ]]
++ awk '{$1=""; $2=""; print}'
++ /usr/bin/ssh root@pcrfclient01 -o ConnectTimeout=2 /usr/bin/facter.
++ grep svn_slave_list
Lo script accede a pcrfclient01 e controlla svn_slave_list dall'output del comando factor, che non viene eseguito completamente.
È inoltre possibile accedere a pcrfclient01 e verificare che il comando factor venga eseguito correttamente e che venga restituito l'output desiderato.
[root@pcrfclient01 ]# facter | grep eth
[root@installer ~]# ^C
Quando si controlla la media di carico di pcrfclient01, viene osservato che è molto alta.
[root@pcrfclient01 pacemaker]# top
top - 15:34:18 up 289 days, 14:55, 1 user, load average: 2094.68, 2091.77, 2086.36
Verificare che i processi correlati ai fattori siano bloccati e che il carico medio sia elevato.
[root@pcrfclient01 ~]# ps -ef | grep facter | wc -l
2096
Soluzione
La soluzione definitiva per eliminare questi processi bloccati e ridurre il carico medio consiste nel riavviare la VM pcrfclient01. La procedura per cancellare i processi bloccati del fatter e risolvere il problema sospeso dell'esecuzione di diagnostics.sh:
Passaggio 1. Accedere al nodo pcrfclient ed eseguire il comando di riavvio.
[root@pcrfclient01 ~]# init 6
Passaggio 2. Verificare che la VM pcrfcleitn01 sia attiva e stabile.
[root@pcrfclient01 ~]# uptime
10:07:15 up 1 min, 4:09, 1 user, load average: 0.33, 0.33, 0.36
[root@pcrfclient01 ~]#
Passaggio 3. Verificare che la media di carico di pcrfclient01 sia normale.
[root@instapcrfclient01ller ~]# top
top - 10:07:55 up 1 min, 4:10, 1 user, load average: 0.24, 0.31, 0.35
Passaggio 4. Eseguire diagnostics.sh e verificare che l'esecuzione dello script sia stata completata.
[root@instapcrfclient01ller ~]# diagnostics.sh