Einführung
In diesem Dokument wird beschrieben, wie CPU und Speicher mithilfe des integrierten Python-CLI-Moduls überwacht und Syslog-Benachrichtigungen geplant werden.
Voraussetzungen
Anforderungen
Cisco empfiehlt, über Kenntnisse in folgenden Bereichen zu verfügen:
Verwendete Komponenten
Die Informationen in diesem Dokument basieren auf den folgenden Software- und Hardwareversionen:
- Nexus 3000 - 7.0(3)I4(7)
- Nexus 9000 - 7.0(3)I7(1)
Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
Konfigurieren
Überwachen Sie in diesem Beispiel den Prozess-PTP für die CPU und den Speicher.
Stellen Sie sicher, dass konfiguriert wird.
feature ptp
feature scheduler
Das Python-Skript wird zur Überwachung der CPU und des Speichers für einen bestimmten Prozess verwendet, der auf dem Gerät ausgeführt wird.
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])
Speichern Sie die Datei als ptp_alert_mem_cpu.py.
Überprüfen
In diesem Abschnitt überprüfen Sie, ob Ihre Konfiguration ordnungsgemäß funktioniert.
Führen Sie die Datei über die CLI aus.
Syntax zum Ausführen des Skripts:
python <Skriptdatei> <Prozessname>
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%
Wie hier gezeigt, wird diese Syslog-Warnung für den PTP-Prozess ausgelöst und umfasst die CPU- und Arbeitsspeichernutzung.
Die gleiche Ausgabe wird von der Nexus CLI angezeigt.
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 ist ein weiteres Beispiel, das veranschaulicht, wie das Skript zum Beenden eines Prozesses verwendet wird, sobald der Speicher den angegebenen Grenzwert überschreitet.
Das Skript nimmt zwei Eingaben, Prozessname und Arbeitsmammgröße, nach denen der Prozess beendet werden soll.
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).
Ansetzen des Skripts
EEM verwenden
Dieses EEM-Skript wird alle eine Minute ausgelöst, und anschließend wird die Syslog-Meldung generiert.
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
Verwenden von Scheduler
Dieser Scheduler-Auftrag wird alle eine Minute ausgelöst, und anschließend wird die Syslog-Meldung generiert.
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%
Fehlerbehebung
Für diese Konfiguration sind derzeit keine spezifischen Informationen zur Fehlerbehebung verfügbar.