Inleiding
Dit document beschrijft de procedure voor het oplossen van onvolledige diagnostics.sh-scripts uitvoeren in Cisco Policy Suite (CPS).
Bijgedragen door Ullas Kumar E, Cisco TAC Engineer.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
Opmerking: Cisco raadt aan dat u hoofdtoegang moet hebben voorrechten naar CPS CLI.
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- COPS 21.1
- Centos 8,0
- Unified Computing System (UCS)-B
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Achtergrondinformatie
Diagnostics.sh is de basisopdracht voor probleemoplossing die kan worden uitgevoerd in pcrfclient- of installateursknooppunt van CPS om de huidige status van het systeem te controleren.
Het bevat een gedetailleerde lijst van parameters als onderdeel van de gezondheidscontrole van CPS.
Dit script draait tegen de verschillende toegangs-, controle- en configuratiepunten van een actief CPS-systeem.
In High Availability (HA)- of Geo-Redundant (GR)-omgevingen voert het script altijd een ping-controle uit voor alle Virtual Machines (VM's) voordat enige andere controles worden uitgevoerd en voegt het een of andere methode toe die de ping-test niet doorstaat voor de IGNORED_HOSTS-variabele. Dit helpt de kans op fouten in de scriptfunctie te verminderen.
Examples:
/var/qps/bin/diag/diagnostics.sh -q
/var/qps/bin/diag/diagnostics.sh --basic_ports --clock_skew
Dit zijn de prominente controles die dit script doet.
--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
Probleem
Het is mogelijk dat in sommige situaties, de uitvoering van diagnostics.sh scripts op één punt hangen en het kan niet verder bewegen of de script uitvoering voltooien.
U kunt het script uitvoeren en zien dat het script vastzit aan "checken opAuto Intelligent DB Operations (AIDO) Status" gaat niet verder voor subversion Number (SVN) controle en verder.
[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]
.
.
Wanneer u de breedsprakige uitvoer van diagnostics.sh controleert, is er een stap om SVN status te controleren, beweegt het script niet verder van daar. Het duidt erop dat het diagnostics.sh script bij de facter check is blijven steken.
[[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
Het script logt in pcrfclient01 en controleert de svn_slave_list vanaf de factor opdrachtoutput, die niet volledig uitgevoerd wordt.
U kunt ook inloggen op pcrfcleint01 en controleren of de factoropdracht goed werkt en de gewenste uitvoer geeft.
[root@pcrfclient01 ]# facter | grep eth
[root@installer ~]# ^C
Wanneer u het lastgemiddelde van pcrfclient01 controleert, wordt dit als zeer hoog waargenomen.
[root@pcrfclient01 pacemaker]# top
top - 15:34:18 up 289 days, 14:55, 1 user, load average: 2094.68, 2091.77, 2086.36
Controleer of de factorgerelateerde processen vastzitten en resulteren in een hoog belastingsgemiddelde.
[root@pcrfclient01 ~]# ps -ef | grep facter | wc -l
2096
Oplossing
De ultieme oplossing om deze vastgelopen processen te verwijderen en de gemiddelde werkbelasting te verlagen is de pcrfclient01 VM opnieuw op te starten. De procedure om vastgelopen processen van facter te verwijderen en hung probleem van diagnostiek.sh executie:
Stap 1. Log in op de percrfclient-knooppunt en voer de reboot-opdracht uit.
[root@pcrfclient01 ~]# init 6
Stap 2. Controleer of de phpcrfc01 VM up en stabiel is.
[root@pcrfclient01 ~]# uptime
10:07:15 up 1 min, 4:09, 1 user, load average: 0.33, 0.33, 0.36
[root@pcrfclient01 ~]#
Stap 3. Controleer of het laadgemiddelde van de pcrfclient01 normaal is.
[root@instapcrfclient01ller ~]# top
top - 10:07:55 up 1 min, 4:10, 1 user, load average: 0.24, 0.31, 0.35
Stap 4. Voer diagnostics.sh uit en controleer of het script is uitgevoerd.
[root@instapcrfclient01ller ~]# diagnostics.sh