Inleiding
In dit document wordt beschreven hoe u CPU en geheugen kunt bewaken met behulp van de ingebouwde python-cli-module en systeemmeldingen.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
Gebruikte componenten
De informatie in dit document is gebaseerd op de volgende software- en hardware-versies:
- Nexus 3000 - 7,0(3)I4(7)
- Nexus 9000 - 7.0(3)I7(1)
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.
Configureren
Controleer bijvoorbeeld het proces-PTP voor de CPU en het geheugen.
Verzeker u ervan dat u deze instelt.
feature ptp
feature scheduler
Het pythonscript wordt gebruikt om de CPU en het geheugen te controleren bij een bepaald proces dat op het apparaat wordt uitgevoerd.
import cisco
import sys
from cli import *
def main(process):
mem = ""
cpu = ""
ptp_cpu = cli('sh proc cpu | i '+process)
ptp_mem = cli('sh proc mem | i '+process)
if ptp_cpu:
csplit = ptp_cpu.split()
cpu = csplit[4]
if ptp_mem:
msplit = ptp_mem.split()
mem = msplit[3]
cli('syslog priority notifications msg for '+process+' mem: '+mem +' and cpu ' + cpu)
return
if __name__ == "__main__":
main(sys.argv[1])
Sla het bestand op als ptp_alert_mem_cpu.py.
Verifiëren
Gebruik dit gedeelte om te bevestigen dat de configuratie correct werkt.
Start het bestand van CLI.
Syntax gebruiken:
python <script> <procesnaam>
Nexus# python bootflash:ptp_alert_mem_cpu.py ptp
Nexus# show logg last 5
2018 Dec 13 10:59:30 Nexus %VSHD-5-VSHD_SYSLOG_CONFIG_I: Configured from vty by admin on vsh.28744
2018 Dec 13 11:02:30 Nexus %VSHD-5-VSHD_SYSLOG_CONFIG_I: Configured from vty by admin on vsh.28867
2018 Dec 13 11:03:37 Nexus %EEM_ACTION-5-NOTIF: for ptp mem: 649089024 and cpu 0.00%
Zoals hier te zien is, wordt dit syslogalarm geactiveerd voor het PTP-proces en omvat CPU- en geheugengebruik.
Dezelfde output wordt gezien vanaf Nexus CLI.
Nexus(config-schedule)# show proc cpu | i ptp
21037 233 4586 50 0.00% ptp
Nexus(config-schedule)# show proc mem | i ptp
21037 4669440 1018201484649089024 fff201d0/fff1e65c ptp
Hier is een ander voorbeeld dat aantoont hoe het script gebruikt wordt om een proces te doden zodra het geheugen de gespecificeerde drempel overschrijdt.
Het script neemt twee 'inputs', procesnaam en grootte, waarna het proces moet worden gedood.
Nexus# python bootflash:Check_mem_kill_process.py ptp 23423
Nexus# show logg last 5
2018 Dec 20 07:00:09 BGL14.1-G.17-N3K-C31108PC-1 %EEM_ACTION-5-NOTIF: Killing ptp mem: 691027968
2018 Dec 20 07:00:09 BGL14.1-G.17-N3K-C31108PC-1 %VSHD-5-VSHD_SYSLOG_CMD_EXEC: User:admin executed the command:run bash
2018 Dec 20 07:00:09 BGL14.1-G.17-N3K-C31108PC-1 %SYSMGR-2-SERVICE_CRASHED: Service "ptp" (PID 29107) hasn't caught signal 6 (core will be saved).
Het script plannen
EEM gebruiken
Dit EEM-script wordt elke minuut geactiveerd en vervolgens wordt het syslogbericht gegenereerd.
Nexus(config)# event manager applet mem_cpu
Nexus(config-applet)# event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.6.1 get-type exact entry-op le entry-val 12345 poll-interval 60
Nexus(config-applet)# action 1.0 syslog priority notifications msg Running_mem_cpu_script
Nexus(config-applet)# action 2.0 cli command python bootflash:ptp_alert_mem_cpu.py ptp
Nexus(config-schedule)# show event manager policy internal mem_cpu
Name : mem_cpu
Policy Type : applet
Event Specification : event snmp oid 1.3.6.1.4.1.9.9.109.1.1.1.1.6.1 get-type exact entry-op le entry-val 12345 poll-interval 60
Action : 1.0,sup:syslog priority notifications msg Running_mem_cpu_script;2.0,vsh,sup:command python bootflash:ptp_alert_mem_cpu.py
Event Specification active on : Active
Scheduler gebruiken
Deze plannertaak wordt elke minuut gestart en vervolgens wordt het syslogbericht gegenereerd.
Nexus(config)# feature scheduler
Nexus(config)# scheduler job name ptp
Nexus(config-job)# python bootflash:ptp_alert_mem_cpu.py ptp
Nexus(config-job)# exit
Nexus(config)# scheduler schedule name ptp
Nexus(config-schedule)# job name ptp
Nexus(config-schedule)# time start now repeat 0:0:1
Schedule starts from Thu Dec 13 11:21:13 2018
Nexus(config-schedule)# show scheduler schedule
Schedule Name : ptp
-------------------------
User Name : admin
Schedule Type : Run every 0 Days 0 Hrs 1 Mins
Start Time : Thu Dec 13 11:21:13 2018
Last Execution Time : Thu Dec 13 11:21:13 2018
Last Completion Time: Thu Dec 13 11:21:17 2018
Execution count : 1
-----------------------------------------------
Job Name Last Execution Status
-----------------------------------------------
ptp Success (0)
Nexus(config-schedule)# sh logg last 5
2018 Dec 13 11:20:19 Nexus %VSHD-5-VSHD_SYSLOG_CONFIG_I: Configured from vty by admin on vsh.29770
2018 Dec 13 11:20:31 Nexus %VSHD-5-VSHD_SYSLOG_CONFIG_I: Configured from vty by admin on vsh.29777
2018 Dec 13 11:21:17 Nexus %EEM_ACTION-5-NOTIF: for ptp mem: 649089024 and cpu 0.00%
Problemen oplossen
Er is momenteel geen specifieke troubleshooting-informatie beschikbaar voor deze configuratie.