De documentatie van dit product is waar mogelijk geschreven met inclusief taalgebruik. Inclusief taalgebruik wordt in deze documentatie gedefinieerd als taal die geen discriminatie op basis van leeftijd, handicap, gender, etniciteit, seksuele oriëntatie, sociaaleconomische status of combinaties hiervan weerspiegelt. In deze documentatie kunnen uitzonderingen voorkomen vanwege bewoordingen die in de gebruikersinterfaces van de productsoftware zijn gecodeerd, die op het taalgebruik in de RFP-documentatie zijn gebaseerd of die worden gebruikt in een product van een externe partij waarnaar wordt verwezen. Lees meer over hoe Cisco gebruikmaakt van inclusief taalgebruik.
Cisco heeft dit document vertaald via een combinatie van machine- en menselijke technologie om onze gebruikers wereldwijd ondersteuningscontent te bieden in hun eigen taal. Houd er rekening mee dat zelfs de beste machinevertaling niet net zo nauwkeurig is als die van een professionele vertaler. Cisco Systems, Inc. is niet aansprakelijk voor de nauwkeurigheid van deze vertalingen en raadt aan altijd het oorspronkelijke Engelstalige document (link) te raadplegen.
Dit document beschrijft hoe u probleemoplossing kunt gebruiken die beschikbaar is als onderdeel van de FND-inzet (Field Network Director). De FND-oplossing is breed in bereik en omvat talrijke verschillende technologieën en specialisaties. Daardoor zijn er talloze scripts en commando line tools die kunnen helpen gedrag in een bepaalde situatie te verifiëren of die een complex probleem kunnen diagnosticeren.
Bijgedragen door Ryan Bowman, Cisco TAC Engineer.
Cisco raadt u aan een volledig operationele productie- of labomgeving te hebben met geregistreerde head-end router (HER), Field Area Router en Connected Grid-endpoint (CGE). Om CoAP Simple Management Protocol (CSMP)-statistieken met getStats.sh te controleren moet u minimaal één CGE hebben die CSMP-verkeer genereert.
Om de bestanden in de /opt/cgms-tools/folder te kunnen gebruiken, moet het cgms-tools RPM-pakket op uw toepassingsserver geïnstalleerd zijn.
De informatie in dit document is allemaal verzameld met het gebruik van FND versie 3.0.1-36, waarbij alle Linux-servers zijn geïnstalleerd op virtuele machines met RHEL 6.5.
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 de potentiële impact van elke opdracht begrijpen.
Deze sectie bestrijkt CLI-hulpprogramma's die beschikbaar zijn als onderdeel van zowel de pakketten cgms als cgms-tools. Het standaard installatiepad voor cgms RPM is /opt/cgms/en het standaard installatiepad voor cgms-tools is /opt/cgms-tools/.
SetupCgms.sh (/opt/cgms/bin/setupCgms.sh):
Na eerste installatie van de FND dient dit script uitgevoerd te worden om de benodigde applicatie variabelen te configureren. Nadat de productie is begonnen, kunt u deze voorziening nog gebruiken om kritieke configuratieparameters te veranderen. Voordat u dit script uitvoert, moet u eerst de cgms service stoppen, naar de opt/cgms/bin/ folder navigeren en de ./SetupCgms opdracht uitvoeren.
[root@fnd bin]#./setupCgms.sh Are you sure you want to setup IoT-FND (y/n)? n Do you wish to configure another database server for this IoT-FND ? (y/n)? n Do you want to change the database password (y/n)? n Do you want to change the keystore password (y/n)? n Do you want to change the web application 'root' user password (y/n)? n Do you want to change the FTP settings (y/n)? n Do you want to change router CGDM protocol settings (y/n)? n Do you want to change log file settings)? (y/n)? n
getstats.sh (/opt/cgms/bin/getstats.sh):
Dit script dient te worden uitgevoerd zolang de applicatie loopt. Het is zeer behulpzaam wanneer u prestaties met load gebalanceerde clusters en active/stand-by DB paren analyseert. Elke prestatiemetrisch is buiten het bereik van dit artikel maar hier is een steekproefuitvoer wanneer we het script uitvoeren.
Wanneer u FND-implementaties in een cluster probleemoplossing uitvoert, voert u dit script op elke server uit om te controleren of de taakverdeling correct werkt. Als een van de app servers een veel hogere CSMP-verwerkingssnelheid heeft dan de andere, is de taakverdeling waarschijnlijk niet onjuist ingesteld. Bovendien, wanneer u deze output analyseert, als u ziet dat uw rijmaten toenemen, dan weet u dat er ergens een knelpuntproces is.
[root@fnd bin]# ./getstats.sh Current Time: 2017-03-08 01:06 ============ events statistics ============== ElapsedTimePrepareForRules (ms):...........................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimeBatchCommit (ms):...............................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] Events request rate:.......................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimeSendToSyslog (ms):..............................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] Batch Commit Size :........................................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ============================================== ============ metric statistics ============== ElapsedTimePersistBatch (ms):..............................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimePersistNetElementMetrics (ms):..................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimeBatchCommit (ms):...............................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] Incoming message rate to Metric Server:....................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimeFindCurrentMetric (ms):.........................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimefindCurrentMetricsForNetObject (ms):............................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] sendMetricEvents:..........................................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimePersistNetElementMetric (ms):...................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimeAddMetricWithoutPropagation (ms):...............................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] Rate of message drop at the metric server:.................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] Batch Commit Size :........................................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimeAddMetricsInBulkWithoutPropagation (ms):........................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ============================================== ============ issues statistics ============== Issues Incoming Rate:......................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] UpdateEventAndIssues (ms):.................................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimeBatchCommit (ms):...............................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] Batch Commit Size :........................................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] Issues Processing Rate:....................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ============================================== ============ label statistics ============== Label drop rate:...........................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimePersistBatch (ms):..............................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] Label processing rate:.....................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ElapsedTimeBatchCommit (ms):...............................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] Label request rate:........................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] Batch Commit Size :........................................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ============================================== ============ csmp statistics ============== csmpConNotificationRate:...................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] csmpNonNotificationRate:...................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] csmpNonQueueSize:..........................................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] csmpNotificationRate:......................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] csmpDropRate:..............................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] csmpProcessingRate:........................................................[ val: 0/s over 1 min ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] csmpConQueueSize:..........................................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ============================================== ============ database connection pool statistics ============== dbConFlushCount:...........................................................[ val: 0 ] [ avg: 0.0 ] [ counter: 0 ] [ lastUpdate: never ] ActiveCount:...............................................................[ val: 13 ] InUseCount:................................................................[ val: 7 ] AvailableCount:............................................................[ val: 243 ] CreatedCount:..............................................................[ val: 13 ] DestroyedCount:............................................................[ val: 0 ]
sleutelgereedschap (/opt/cgms/jre/bin/sleutelgereedschap):
Het is belangrijk om te weten dat de FND-installatie bij Java geleverd wordt. U moet het keytool gebruiken om de cgms_keystore te maken en te beheren, die correct moet worden geconfigureerd op zowel het FND als de Tunnel Provisioning Server (TPS).
In sommige omgevingen is Java al geïnstalleerd en de opdracht sleutelgereedschap zal voor elke gebruiker beschikbaar zijn door gebruik van de $PATH omgevingsvariabele. Als u de opdracht sleutelgereedschap gebruikt en deze fout zoekt, is er een andere oplossing voor u:
[root@fnd]# keytool -bash: keytool: command not found
U kunt naar de /opt/cgms/jre/bin/folder navigeren en bijvoorbeeld het keytool-hulpprogramma in deze map aanhalen:
[root@fnd ~]# keytool -v -list -keystore /opt/cgms/server/cgms/conf/cgms_keystore -bash: keytool: command not found [root@fnd ~]# cd /opt/cgms/jre/bin/ [root@fnd bin]# ./keytool -v -list -keystore /opt/cgms/server/cgms/conf/cgms_keystore Enter keystore password:
cgdm-client.sh (/opt/cgms-tools/bin/cgdm-client.sh):
Opmerking: Dit script en andere scripts in de /opt/cgms-tools/folder zijn gebundeld in het cgms-tools RPM-pakket.
FND gebruikt NetConf over HTTPS om toegang te hebben tot en te communiceren met Veldgebied Router (FAR). Netconf gebruikt de XML - geformatteerde berichten om een dienst te leveren die niet alleen betrouwbaar en betrouwbaar is, maar ook gemakkelijk kan worden uitgesplitst en naar een database kan worden verstuurd. Er is een CLI-tool met de naam cgdm-client die een handmatige Connected Grid Devices Manager (CGDM)-sessie opent naar een FAR van uw keuze, een afstandsopdracht uitvoert en XML-bestanden verzenden die in antwoord op FAR zijn ontvangen naar uitstappen in BASH.
Als u het script zonder opties uitvoert, ontvangt u een gebruiksaanwijzing:
[root@fnd bin]# ./cgdm-client ERROR: Please specify an IP address and a command usage: cgdm-client <cgr ip address> <cgdm CLI command> -c <arg> Conf and keystore directory path, default = /opt/cgms/server/cgms/conf -v Verbose mode
Stel dat u wilt controleren of de tijd volledig gesynchroniseerd is op een van uw routers waar de IP-beheerwaarde (de 'IP'-waarde in uw .csv-bestand) 192.0.2.1 is. Vanaf een eindsessie op uw FND-toepassingsserver kunt u de tijd vragen op een CGR met de opdracht showklok:
[root@fnd bin]# ./cgdm-client 192.0.2.1 show clock <?xml version="1.0" encoding="ISO-8859-1"?> <nf:rpc-reply xmlns:nf="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns="http://www.cisco.com/nxos:1.0" message-id="1"> <nf:data>15:44:58.092 CST Mon Mar 13 2017 </nf:data> </nf:rpc-reply>
Optioneel, kunt u breedteuitvoer specificeren met het gebruik van de 'v' vlag in uw opdracht. Merk op dat de breedteuitvoer afkomstig is van de Java- en Cisco-softwareprocessen en -syntaxis. U ziet geen extra netwerk- of apparaatinformatie in deze uitvoer:
[root@fnd bin]# ./cgdm-client -v 192.0.2.1 show clock < output omitted >
csmp-request.sh (/opt/cgms-tools/bin/csmp-request.sh):
Naast het cgdm-client FAR-gereedschap, is er een gereedschap voor endpoints die csmp-request zijn genoemd. Op dezelfde manier als het cgdm-client-client script, zal dit script u in staat stellen om informatie van uw CGEs te vragen met CSMP. U hoeft alleen het IPv6-adres van het mesh-eindpunt en het TLV (Type Length Value) te specificeren dat u op het apparaat bestelt. De volledige lijst van TLV - codes is in dit artikel buiten toepassing, maar hieronder worden een paar bekende voorbeelden getoond. Syntax voor het script:
./csmp-verzoek -r [] TLV-waarde
1. Query CGE firmware versie op een meter met IP 2001:db8::1/32
[root@fnd bin]# ./csmp-request -r [2001:db8:0:0:0:0:0:1] 75
2. Query uptime op een meter met IP 2001:db8::1/32
[root@fnd bin]# ./csmp-request -r [2001:db8:0:0:0:0:0:1] 22
handgereedschap (/opt/cgms-tools/bin/signatuur):
Het Signature Tool is een Java-hulpprogramma waarmee u wachtwoorden kunt versleutelen, versleutelde wachtwoorden of koorden kunt decrypteren en de SSM_CSMP-certificaten in duidelijke tekst kunt afdrukken. Dit gereedschap moet worden gebruikt om gecodeerde wachtwoorden voor uw .csv-bestanden te genereren, zodat deze geen beheerderwachtwoorden in duidelijk-tekst bevatten.
Als u de opdrachtsyntaxis wilt weergeven, voert u het script zonder opties uit:
[root@fnd bin]# ./signature-tool usage: signature-tool print signature-tool export <binary|base64> <filename> signature-tool decrypt <keystore> <filename> signature-tool encrypt <keystore> <filename>
U kunt het gebruik van het SSM_CSMP-certificaat als volgt afdrukken:
[root@fnd bin]# ./signature-tool print
U versleutelt een wachtwoord voor een zuiver tekstbeheerder:
[root@fnd ~]# cd /opt/cgms-tools/bin [root@fnd bin]# pwd /opt/cgms-tools/bin
Maak een nieuw tekstbestand dat alleen de betreffende string/wachtwoord in duidelijke tekst bevat:
[root@fnd bin]# echo AdminPassword > clear-text-password.txt [root@fnd bin]# cat clear-text-password.txt AdminPassword
[root@fnd bin]# ./signature-tool encrypt /opt/cgms/server/cgms/conf/cgms_keystore clear-text-password.txt Enter alias: cgms Enter password: pXHcF+YxyoJarz4YAqvFVMrLT2I//caHLddiJfrb7k65RmceIJUNlDd2dUPhGyGZTeEfz8beh8tWSGZ4lc66rhAQ9mYNaw2XSPaL8psoK+U0wzHgY068tnc7q17t05CZ5HQh8tWSGZ4lc66rhAQ9mOivj1B3XRKFmkpSXo4ZubeKRJ4NNaGAKFV8cjBJQDWsh7NAXL3x5D62/7w4Mhmftf2XiGlqeWlc66rhAQF+YxyoJarz4YAqvFVMrLT2I//caHLIDYoKoeTVB2SLQXtSZR+dwxYjQsE0hCmBpHv0lDD/l4gg==
Om een versleutelde string te decrypteren:
[root@fnd bin]# echo pXHcF+YxyoJarz4YAqvFVMrLT2I//caHLddiJfrb7k65RmceIJUNlDd2dUPhGyGZTeEfz8beh8tWSGZ4lc66rhAQ9mYNaw2XSPaL8psoK+U0wzHgY068tnc7q17t05CZ5HQh8tWSGZ4lc66rhAQ9mOivj1B3XRKFmkpSXo4ZubeKRJ4NNaGAKFV8cjBJQDWsh7NAXL3x5D62/7w4Mhmftf2XiGlqeWlc66rhAQF+YxyoJarz4YAqvFVMrLT2I//caHLIDYoKoeTVB2SLQXtSZR+dwxYjQsE0hCmBpHv0lDD/l4gg== > encrypted-password.txt
2.Voer het Signature Tool uit met behulp van de decrypt optie, en specificeer opnieuw het exacte pad van het sleutelopslagbestand evenals de naam van het .txt-bestand dat het gecodeerde wachtwoord heeft dat in het bestand is opgeslagen.
[root@fnd bin]# ./signature-tool decrypt /opt/cgms/server/cgms/conf/cgms_keystore encrypted-password.txt Enter alias: cgms Enter password: AdminPassword
Net zoals de robuuste set van opdrachtregel tools/nutsbedrijven, bevat de FND een reeks op GUI gebaseerde tools die u kunnen helpen bij het analyseren en diagnosticeren van problemen met de database. Om toegang te krijgen tot de DB-tools, logt u in het hoofddashboard van uw FND-implementatie en plakt u vervolgens /pages/diag/db.seam na het .com-gedeelte van uw URL.
Dit gebied heeft drie tabbladen: DB Query, DB Info en Log Viewer. Het tabblad DB Query zal u aangepaste vragen laten uitvoeren en zal een lijst van alle tabellen geven als u op Alle tabellen rechts van de knop Query klikt. Bijvoorbeeld, om laag 1 en 2 status voor alle apparaat interfaces te bekijken, typt SELECT * VAN NET_INTERFACES in het SQL query box en klikt dan op de Query knop. U krijgt een lijst met alle HER- en FAR-interfaces, hun MAC-adressen, de beheerlaag 1-status en Layer 2-linkstatus voor elke interface.
Als u de instellingen voor de verbinding van de database wilt controleren, klikt u op in het tabblad DB Info van de pagina db.seam. Hier hebt u alleen-lezen toegang tot talloze databases zoals verbinding-URL, gebruikersnaam voor database, Oracle-versie, poortnummer, SID en grootte van elke tabel. Zie ook deze pagina-Flash recovery Area (FRA) informatie zoals de ruimte die wordt gebruikt door elk type bestand dat is opgeslagen op FRA, en hoeveel ruimte kan worden hersteld.