La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
Questo documento descrive i sintomi comuni e le cause di un elevato utilizzo della CPU sui router Cisco e fornisce linee guida e soluzioni per i problemi comuni.
Cisco raccomanda la conoscenza dei seguenti argomenti:
Per informazioni sui percorsi di commutazione del software Cisco IOS, vedere Nozioni fondamentali sull'ottimizzazione delle prestazioni.
Il documento può essere consultato per tutte le versioni software o hardware.
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.
In questo elenco vengono descritti i sintomi più comuni di un utilizzo elevato della CPU. Se si nota uno di questi sintomi, risolvere il problema seguendo la procedura descritta in questo documento.
Percentuali elevate nella show processes cpu
output del comando.
se il dispositivo Cisco restituisce i risultati di un comando show processes cpu, è possibile usare Cisco CLI Analyzer per visualizzare i potenziali errori e correggerli.
Nota: per utilizzare Cisco CLI Analyzer, è necessario essere un utente Cisco registrato, aver eseguito l'accesso e avere JavaScript abilitato.
Prestazioni lente
I servizi sul router non rispondono, ad esempio:
Risposta lenta in Telnet o impossibile connettersi al router in modalità Telnet
Risposta lenta sulla console
Risposta lenta o assente al ping
Il router non invia gli aggiornamenti del routing ad altri router
Errori di buffer elevati
Una volta notato uno qualsiasi dei sintomi dai sintomi di utilizzo elevato della CPU:
Verificare la presenza di un possibile problema di protezione. In genere, un utilizzo elevato della CPU è causato da un problema di sicurezza, ad esempio un worm o un virus che opera nella rete. Questa è la causa più probabile se non ci sono state modifiche recenti alla rete. In genere, una modifica della configurazione, quando si aggiungono righe aggiuntive agli elenchi degli accessi, può ridurre gli effetti di questo problema. I consigli e le notifiche sulla sicurezza dei prodotti Cisco contengono informazioni sul rilevamento delle cause più probabili e delle soluzioni specifiche.
Per ulteriori informazioni, fare riferimento a:
Accertarsi che tutti debug
i comandi del router siano disattivati con undebug all
i comandi no debug all
.
È possibile usare i show
comandi sul router? In caso affermativo, iniziare a raccogliere immediatamente ulteriori informazioni con questi show
comandi.
Il router è inaccessibile? Riuscite a riprodurre questo problema? In caso affermativo, spegnere e riaccendere il router e, prima di riprodurre il problema, configurare il comando scheduler interval 500
. In questo modo i processi a bassa priorità vengono pianificati in modo da essere eseguiti ogni 500 millisecondi, in modo da avere il tempo di eseguire alcuni comandi anche se l'utilizzo della CPU è pari al 100%. Sui router Cisco serie 7200 e 7500, usare il scheduler allocate 3000 1000
comando.
Il router mostra i sintomi di un elevato utilizzo della CPU a intervalli brevi e imprevedibili? In caso affermativo, raccogliere periodicamente l'output del show processes cpu
comando, che indica se l'utilizzo elevato della CPU è causato da interrupt o da un determinato processo. Utilizzare questo script UNIX e, in base a ciò che si trova per primo, modificare lo script per raccogliere i dati necessari per ulteriori indagini sul problema.
Utilizzare il comando show PROCESSES cpu per verificare se l'utilizzo della CPU è elevato a causa di interrupt o processi.
Per ulteriori informazioni, consultare il documento sulla risoluzione dei problemi di utilizzo elevato della CPU causato dagli interrupt. Se il livello della CPU aumenta a causa di interrupt probabilmente dovuti a pacchetti di switching CEF, il livello della CPU non influisce sulle prestazioni del router.
Se NetFlow è configurato per la versione 7, il flusso viene eseguito dal processore di routing, il che può causare un elevato utilizzo della CPU.
Per risolvere i problemi relativi all'elevato utilizzo della CPU dovuto alla versione 7 di NetFlow, configurare mittente nodo mls versione 5, in quanto l'esportazione NetFlow viene eseguita dall'SP, che è l'impostazione predefinita per la versione 5 o la versione 9.
Verificare quale processo carica la CPU. Un'attività insolita relativa a un processo genera un messaggio di errore nel registro. Pertanto, l'output del show logging exec
comando deve essere controllato prima per individuare eventuali errori correlati al processo che utilizza molti cicli della CPU.
È possibile utilizzare i comandi di debug per risolvere i problemi relativi all'utilizzo elevato della CPU in questi processi. I comandi di debug devono essere eseguiti con estrema cautela perché possono aumentare ulteriormente l'utilizzo della CPU. Per poter usare i comandi di debug in modo sicuro, è necessario soddisfare i seguenti prerequisiti:
Tutte le destinazioni di registrazione, ad eccezione della registrazione del buffer, devono essere disabilitate oppure il livello di gravità della registrazione deve essere ridotto da 7 (debug) a 6 (informazioni) o meno, utilizzando il logging destination [ severity-level ] configuration
comando appropriato. Per vedere quali destinazioni di logging e i livelli corrispondenti sono abilitati, leggere le righe di intestazione del show logging exec
comando.
Per acquisire informazioni sufficienti, è necessario aumentare le dimensioni del buffer di registrazione. Per ulteriori informazioni, consultare la descrizione del logging buffer global configuration
comando.
Per poter leggere e comprendere meglio i debug, è necessario abilitare i timestamp datetime e millisecondi. Per ulteriori informazioni, consultare la descrizione del service timestamps global configuration
comando.
Un esempio di sessione di debug dei pacchetti IP viene fornito in Risoluzione dei problemi di utilizzo elevato della CPU dovuto al processo di input.
Per risolvere i problemi relativi all'utilizzo elevato della CPU in processi specifici, fare riferimento a:
Input ARP—Sezione Input ARP del documento Risoluzione dei problemi di utilizzo elevato della CPU dovuto ai processi.
Router BGP: sezione CPU alta a causa del processo del router BGP nel documento Risoluzione dei problemi di CPU alta causati dal processo dello scanner BGP o del router BGP.
Scanner BGP: sezione High CPU due to BGP Scanner nel documento Risoluzione dei problemi di CPU elevata causati dal processo dello scanner BGP o del router BGP.
EXEC: elevato utilizzo della CPU nei processi EXEC e Virtual EXEC.
HyBridge Input: risoluzione dei problemi di utilizzo elevato della CPU causati dal processo di input HyBridge sui router con interfacce ATM.
Input IP: risoluzione dei problemi di utilizzo elevato della CPU dovuti al processo di input IP.
IP Simple Network Management Protocol (SNMP): IP Simple Network Management Protocol (SNMP) provoca un elevato utilizzo della CPU.
LC ADJ Updater: cosa provoca un elevato utilizzo della CPU nel processo LC Adjacency Updater su un router Internet Cisco serie 12000?
TCP Timer: sezione TCP Timer del documento Risoluzione dei problemi di utilizzo elevato della CPU dovuto ai processi.
Sfondo TTY—Sezione Sfondo TTY del documento Risoluzione dei problemi di utilizzo elevato della CPU dovuto ai processi.
Virtual EXEC: fare riferimento al collegamento per EXEC. Utilizzo elevato della CPU nei processi Exec e Virtual Exec.
Vtemplate Backgr: sezione Sfondo del modello virtuale del documento Risoluzione dei problemi di utilizzo elevato della CPU a causa dei processi.
Processo SSH: il valore può aumentare se l'acquisizioneshow tech
determina un errore o se è abilitato il debug.
Altri processi - Sezione Altri processi del documento, Risoluzione dei problemi di utilizzo elevato della CPU causati dai processi.
È normale vedere una quantità ridotta di memoria libera con pool di memoria PCI e Fast. La memoria PCI viene utilizzata per l'accesso alla memoria al controller GT64260 sulla scheda madre PRP per i bus PCI ad esso collegati. Questa memoria viene utilizzata per la comunicazione interna tra il controller del sistema e altre parti, pertanto risulta sempre alta.
Se è necessaria una quantità maggiore di memoria, viene ripristinata la memoria del pool di processori. La memoria Fast è una piccola quantità di memoria riservata all'utilizzo da parte delle strutture di dati IDB (Interface Descriptor Block) dell'hardware. Anche questa memoria è completamente riservata durante l'avvio, pertanto viene sempre visualizzata con la stessa altezza, poiché la memoria è completamente utilizzata. Per questo motivo, è normale verificare una quantità insufficiente di memoria libera con il pool di memoria Fast.
Il messaggio di errore CPU è simile al seguente:
SNMP-4-HIGHCPU: Process exceeds 200ms threshold (200ms Cisco IOS quantum) for GET of rmon.19.16.0--result rmon.19.16.0
Un nuovo messaggio syslog (HIGHCPU) è stato aggiunto a Cisco IOS nella versione 12.4(13). Se un processo rimane collegato alla CPU per più di 200 ms, viene visualizzato il messaggio HIGHCPU. Il messaggio HIGHCPU non ha alcun impatto sul router. Consente semplicemente di sapere quale processo ha causato l'elevata CPU. Il messaggio HIGHCPU è simile al messaggio CPUHOG, ma il messaggio HIGHCPU ha una soglia di tolleranza molto più bassa, a 1/10 la quantità di tempo rispetto a un messaggio CPUHOG, cioè, misurata in millisecondi). Nelle versioni precedenti alla 12.4(13) del modello 2600, i processi duravano più a lungo ma non generavano messaggi perché nelle versioni Cisco IOS questo miglioramento non era previsto.
L'elaborazione delle PDU SNMP (query su oggetti MIB) deve essere eseguita in un singolo quantum di tempo CPU per garantire che ogni oggetto nella PDU venga recuperato come se fosse contemporaneamente. Questo è un requisito imposto dallo standard del protocollo SNMP. Alcuni oggetti sono aggregati di molti dati nel sistema, quindi, anche se sono oggetti singoli, c'è molta elaborazione implicita a causa del modo in cui sono strumentati. Se la CPU non viene abbandonata, come richiesto dalle regole di strumentazione MIB, è possibile che venga visualizzato questo messaggio di errore. Inoltre, se si esegue il polling di più oggetti diversi nello stesso gruppo di oggetti o nella stessa tabella e si ottiene il messaggio di errore, non è insolito per lo stesso motivo.
Questo messaggio viene utilizzato per identificare gli oggetti che utilizzano più tempo CPU del previsto (ma non ancora CPU). Alcuni strumenti NMS/di strumentazione non funzionano correttamente durante il polling. Questo problema è documentato nell'ID bug Cisco CSCsl18139.
Nota: solo gli utenti Cisco registrati possono accedere agli strumenti interni e alle informazioni sui bug.
Quando nel dispositivo non è installato alcun modulo di crittografia hardware, tutto il traffico crittografato che attraversa il dispositivo deve essere crittografato dal software. Questa operazione richiede un utilizzo intensivo della CPU. Non è consigliabile utilizzare la crittografia software per qualsiasi distribuzione di crittografia con requisiti di velocità di trasmissione ragionevoli. Per risolvere questo problema, è possibile ridurre il volume del traffico crittografato (indirizzare nuovamente il traffico o limitare i flussi crittografati). Tuttavia, il modo migliore per risolvere il problema è installare un modulo di crittografia hardware per il dispositivo, eliminando la necessità di eseguire la crittografia tramite il software.
Nota: se si abilitano le mappe crittografiche sulle interfacce tunnel/fisiche, si verifica il processo di utilizzo della memoria e può causare un aumento della CPU.
I riassemblaggi possono far salire la CPU molto se questa deve ricomporre un numero elevato di pacchetti.
Per risolvere i problemi di elevato utilizzo della CPU dovuti alla frammentazione, usare il comando tcp mss-adjust 1400 sull'interfaccia che imposta il valore delle dimensioni massime del segmento (MSS) dei pacchetti TCP di sincronizzazione/avvio (SYN) che passano attraverso un router.
Questi comandi forniscono ulteriori informazioni sul problema:
show processes cpu
show interfaces
show interfaces switching
show interfaces stat
show ip nat translations
show align
show version
show log
Per ulteriori informazioni sui comandi show, consultare la guida di riferimento dei comandi di Cisco IOS Configuration Fundamentals.
Se il router è completamente inaccessibile, spegnerlo e riaccenderlo. Quindi, raccogliere periodicamente l'output dei comandi in questa sezione, ad eccezione del comando i cui messaggi devono essere registrati su un server syslog show log
. L'intervallo per la raccolta dell'output deve essere di cinque minuti. Lo script della shell UNIX consente di raccogliere i dati manualmente o automaticamente. È inoltre possibile raccogliere dati con HTTP o SNMP.
show processes cpu
comandoQuesto è un esempio dell'intestazione del show processes cpu
comando.
CPU utilization for five seconds: X%/Y%; one minute: Z%; five minutes: W% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
In questa tabella vengono descritti i campi dell'intestazione:
Campo | Descrizione |
---|---|
X |
Utilizzo totale medio negli ultimi cinque secondi (interrupt + processi) |
Y |
Utilizzo medio a causa di interrupt, negli ultimi cinque secondi1 |
Z |
Utilizzo totale medio nell'ultimo minuto2 |
W |
Utilizzo totale medio negli ultimi cinque minuti2 |
PID |
ID processo |
Runtime |
Tempo CPU utilizzato dal processo (in millisecondi) |
Richiamato |
Numero di volte in cui un processo è stato chiamato |
Secs |
Microsecondi di tempo CPU per ogni chiamata |
5 sec |
Utilizzo CPU per attività negli ultimi cinque secondi |
1 min. |
Utilizzo CPU per attività nell'ultimo minuto2 |
5 Min. |
Utilizzo CPU per attività negli ultimi cinque minuti2 |
TTY |
Terminale che controlla il processo |
Processo |
Nome del processo |
1Utilizzo CPU a livello di processo = X - Y
2I valori non rappresentano una media aritmetica, ma una media con decadimento esponenziale. Di conseguenza, i valori più recenti esercitano una maggiore influenza sulla media calcolata.
Per ulteriori informazioni, consultare la Guida di riferimento dei comandi show.
Nota: l'utilizzo totale della CPU non deve essere usato come misura della capacità del router di commutare più pacchetti. Sui router Cisco 7500, i Versatile Interface Processor (VIP) e i Route/Switch Processor (RSP) non segnalano l'utilizzo lineare della CPU. Quasi la metà dell'alimentazione fornita dal pacchetto di commutazione al secondo deriva dall'utilizzo dal 90 al 95% della CPU.
show interfaces
comandoQuesto comando è usato per determinare le interfacce attive.
show interfaces switching
comandoQuesto comando è usato per determinare i percorsi di commutazione attivi sulle interfacce.
Di seguito viene riportato un esempio di output del show interfaces switching
comando per un'interfaccia:
RouterA#show interfaces switching Ethernet0 Throttle count 0 Drops RP 0 SP 0 SPD Flushes Fast 0 SSE 0 SPD Aggress Fast 0 SPD Priority Inputs 0 Drops 0 Protocol Path Pkts In Chars In Pkts Out Chars Out Other Process 0 0 595 35700 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 IP Process 4 456 4 456 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 IPX Process 0 0 2 120 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 Trans. Bridge Process 0 0 0 0 Cache misses 0 Fast 11 660 0 0 Auton/SSE 0 0 0 0 DEC MOP Process 0 0 10 770 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 ARP Process 1 60 2 120 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0 CDP Process 200 63700 100 31183 Cache misses 0 Fast 0 0 0 0 Auton/SSE 0 0 0 0
L'output mostra i percorsi di switching per tutti i protocolli configurati sull'interfaccia, in modo da poter facilmente vedere il tipo e la quantità di traffico che attraversa il router. In questa tabella vengono descritti i campi di output.
Campo | Definizione |
---|---|
Processo |
Pacchetti elaborati. Può trattarsi di pacchetti destinati al router o di pacchetti per i quali non vi è stata alcuna voce nella cache di switching rapido. |
Mancati riscontri nella cache |
Pacchetti per i quali non era presente alcuna voce nella cache di commutazione veloce. Viene elaborato il primo pacchetto per questa destinazione (o flusso, a seconda del tipo di commutazione veloce configurato). Tutti i pacchetti successivi vengono commutati rapidamente, a meno che l'opzione di commutazione veloce non sia disabilitata in modo esplicito sull'interfaccia in uscita. |
Veloce |
Pacchetti a commutazione rapida. L'opzione di commutazione veloce è attivata per impostazione predefinita. |
Auton/SSE |
Pacchetti a commutazione autonoma, a commutazione di silicio o a commutazione distribuita. Disponibile solo sui router Cisco serie 7000 con processore switch o processore switch silicio (rispettivamente per switching autonomo o switching silicio) o sui router Cisco serie 7500 con VIP (per switching distribuito). |
show interfaces stat
comandoQuesto comando è una versione di riepilogo del show interfaces switching
comando. Di seguito viene riportato un esempio di output per un'interfaccia:
RouterA#show interfaces stat Ethernet0 Switching path Pkts In Chars In Pkts Out Chars Out Processor 52077 12245489 24646 3170041 Route cache 0 0 0 0 Distributed cache 0 0 0 0 Total 52077 12245489 24646 3170041
L'output del show interfaces stat
varia a seconda della piattaforma e del percorso di commutazione disponibile e configurato.
show ip nat translations
comandoIl comando show ip nat translations
visualizza le traduzioni NAT (Network Address Translation) attive sul router. Ogni traduzione attiva genera interrupt della CPU e ha un impatto sull'utilizzo totale della CPU del router. Un numero elevato di traduzioni può avere un impatto sulle prestazioni del router.
Di seguito viene riportato un esempio dell'output del show ip nat translations
comando:
router#show ip nat translations Pro Inside global Inside local Outside local Outside global --- 172.16.131.1 10.10.10.1 --- ---
show align
comandoQuesto comando è disponibile solo su piattaforme basate su processore RISC (Reduced Instruction Set Computing). Su queste piattaforme, la CPU è in grado di correggere letture o scritture di memoria non allineate. Di seguito viene riportato un esempio di output:
Alignment data for: 4500 Software (C4500-DS40-M), Version mis-aligned RELEASE SOFTWARE (fc1) Compiled Tue 31-Mar-98 15:05 by jdoe Total Corrections 33911, Recorded 2, Reads 33911, Writes 0 Initial Initial Address Count Access Type Traceback 40025F4D 15561 16bit read 0x606F4A7C 0x601C78F8 0x6012FE94 0x600102C0 40025F72 18350 32bit read 0x606FB260 0x6013113C 0x600102C0 0x60010988
show version
comandoPer tenere traccia dei problemi di utilizzo elevato della CPU, le informazioni importanti da trarre dall'output del comando sono la versione del software Cisco IOS, la piattaforma, il tipo di CPU e il tempo di attività del router. La guida di riferimento del comando fornisce una spiegazione dettagliata del comando.
show log
comandoCon questo comando viene visualizzato il contenuto dei messaggi di log nel buffer.
Embedded Event Manager può essere utilizzato per raccogliere automaticamente i dati quando si verifica una condizione di CPU elevata. EEM viene attivato monitorando l'OID SNMP per l'utilizzo del processo o monitorando i messaggi syslog per l'output del comando CPU threshold. Tramite lo script EEM è possibile eseguire diversi comandi show e salvare l'output nel file system.
Questo script viene eseguito quando l'utilizzo del processo aumenta di circa l'85%.
Per ulteriori informazioni, vedere Come raccogliere l'utilizzo della CPU sui dispositivi Cisco IOS che utilizzano il protocollo SNMP.
event manager applet high-cpu ! event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.3 get-type next entry-op gt entry-val 85 poll-interval 5 exit-time 500 maxrun 600 ! action 0.1 cli command "enable" action 0.2 syslog msg "TAC - Capturing high cpu information to flash:" action 0.3 cli command "term length 0" action 1.1 cli command "show process cpu sorted | redirect flash:eem-cpu1.txt" action 1.2 cli command "show interface | redirect flash:eem-interface1.txt" action 1.3 cli command "show interface stats | redirect flash:eem-stat1.txt" action 1.4 cli command "show ip traffic | redirect flash:eem-traffic1.txt" action 4.1 syslog msg "TAC - Finished logging information to separate eem files in flash" action 9.4 cli command "end" action 9.5 cli command "term default length" ! ! end
Una combinazione di EEM e il comando CPU threshold notification può attivare lo script EEM. In questo esempio, viene generato un messaggio syslog CPURISHINGTHRESHOLD quando l'utilizzo supera l'85% per un intervallo di 5 secondi. Lo script EEM può attivare il messaggio syslog ed eseguire un elenco di comandi salvati in un file nel file system.
process cpu threshold type total rising 85 interval 5 ! event manager applet high-cpu event syslog pattern "CPURISINGTHRESHOLD" action 0.1 syslog msg "EEM: HIGH CPU detected. Writing info to flash:eem-log.txt" action 0.2 cli command "enable" action 0.3 cli command "term exec prompt timestamp" action 0.4 cli command "term len 0" action 1.1 cli command "show process cpu sorted | append flash:eem-log.txt" action 1.2 cli command "show proc mem sorted | append flash:eem-log.txt" action 1.3 cli command "show mem alloc total | append flash:eem-log.txt" action 2.2 syslog msg "EEM: Self-removing applet from configuration..." action 2.5 cli command "end" ! end
EEM viene utilizzato per avviare/arrestare la profilatura della CPU e per registrare i dati da vari comandi show. Per ulteriori informazioni, vedere Risoluzione dei problemi di utilizzo elevato della CPU a causa di interruzioni.
event manager applet High_CPU event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.4.1 get-type exact entry-op ge entry-val "75" exit-time 10 poll-interval 5 action 0.1 syslog msg "CPU Utilization is high" action 0.2 cli command "enable" action 0.4 cli command "show version | append flash:CPU_Profile.txt" action 0.4 cli command "show log | append flash:CPU_Profile.txt" action 0.5 cli command "show process cpu sorted | append flash:CPU_Profile.txt" action 0.6 cli command "show interfaces | append flash:CPU_Profile.txt" action 0.7 cli command "show region | append flash:CPU_Profile.txt" action 1.2 cli command "profile 4000F000 42C9FFFF 4" action 1.3 cli command "profile start" action 2.3 syslog msg "Entering TCLSH" action 2.4 cli command "tclsh" action 2.5 cli command "after 240000" action 2.6 cli command "exit" action 2.9 syslog msg "Exiting TCLSH" action 3.0 cli command "profile stop" action 3.1 cli command "show profile terse | append flash:CPU_Profile.txt" action 3.2 cli command "clear profile" action 3.3 cli command "unprofile all" action 4.1 syslog msg "Finished logging information to flash:CPU_Profile.txt..." action 4.2 cli command "end"
In questa appendice viene descritto un semplice script che acquisisce periodicamente i dati dal router. Il nocciolo dello script è la seguente:
(echo "show version") | telnet 192.168.1.1
Il comando tra parentesi viene eseguito nella shell secondaria e l'output viene inviato a una sessione Telnet. Questo è uno script di esempio per acquisire l'output dai comandi show version
e show processes cpu
:
#!/opt/local/bin/bash ########################################### # Router's IP address # IP_ADDRESS='10.200.40.53' # Directory where the log files can be stored # DIR=/var/log/router ######################################## if [ ! -e $DIR ] then mkdir $DIR fi # Tag specification: mmddhhmm DATE=`date +'%m%d'` TIME=`date +'%H%M'` TAG=$DATE$TIME # Collect data from the router (echo "foo";\ echo "bar";\ echo "term len 0";\ echo "show version";\ echo "show processes cpu";\ echo "term len 15";\ echo "show memory summary";\ echo "q";\ sleep 30)|telnet $IP_ADDRESS > $DIR/info.$TAG 2>$DIR/info.$TAG.msg
Nota: in questo script tutti i dati, inclusa la password, vengono inviati in formato testo non crittografato.
Nella prima sezione è necessario specificare l'indirizzo IP e la directory di destinazione per i file di log. La seconda sezione contiene i comandi effettivi che vengono inviati al router. Il primo è il nome utente, quindi la password e così via. per acquisire solo le prime righe di output di determinati comandi è incluso. La lunghezza del terminale è impostata su un valore breve (15 in questo caso) e il carattere "q" viene inviato solo al prompt.
Se i dati vengono raccolti periodicamente, l'output di show version
mostra se il problema è di natura periodica, ad esempio se viene visualizzato sempre a una determinata ora del giorno o in un particolare giorno della settimana. Se è necessario raccogliere l'output di più comandi, è possibile aggiungerli allo script nello stesso modo in cui sono visualizzati nell'esempio. Se è necessario troncare l'output inviato al file, aumentare innanzitutto il periodo di sospensione (il comando di sospensione tra parentesi).
Eseguire questo script ogni cinque minuti se il problema dell'utilizzo elevato della CPU si presenta spesso e non dura a lungo. In caso contrario, è possibile eseguirlo ogni 15 o 30 minuti. Per facilitare l'utilizzo, salvare lo script in un file quale /usr/bin/router-script . Quindi, per eseguirlo ogni cinque minuti, aggiungere la riga successiva al file /etc/crontab:
*/5 * * * * /usr/bin/router-script
Riavviare il server cron. Se non si dispone dell'autorizzazione per modificare il file /etc/crontab, eseguire lo script in un processo separato, come il seguente:
while [ 1 ]; do ./router-script ; sleep 300; done &
Revisione | Data di pubblicazione | Commenti |
---|---|---|
2.0 |
30-Nov-2022 |
Formattazione aggiornata. Certificato. |
1.0 |
14-Dec-2001 |
Versione iniziale |