Protokolle von Netzwerk-Switches wie Cisco Catalyst 2960X werden auf den Syslog-Server übertragen, und die empfangenen Protokolle werden so eingestellt, dass sie von logrotate auf der Seite des Syslog-Servers generiert werden. Als Bonus wird auch ein Beispiel zum Generieren einer Datei für die Protokollierung mit Python beschrieben.
Die angenommene Umgebung ist wie folgt. -Katalysator 2960X (WS-C2960X-48TD-L) IOS Version 15.2 (4) E5 -CentOS Linux Release 7.5.1804 (Core) ・ Logrotate-3.8.6-15.el7 ・ Rsyslog-8.24.0-16.el7 ・ Python 2.7.5
IP Adresse ・ Schalter: 192.168.1.1 ・ Syslog-Server: 192.168.1.100
In der folgenden Erläuterung wird davon ausgegangen, dass die obige Umgebung bereits erstellt wurde.
Wechseln Sie nach dem Anmelden am Catalyst-Switch in den privilegierten Modus und den globalen Konfigurationsmodus. Verwenden Sie den folgenden Befehl, um die Protokollübertragung zum Syslog-Server festzulegen.
switch1(config)#logging host 192.168.1.100
Öffnen Sie den Syslog-Service-Port mit firewall-cmd.
# firewall-cmd --add-service=syslog --zone=public
# firewall-cmd --add-service=syslog --zone=public --permanent
Vom Switch gesendete Protokolle unter / var / log / networkdevices, dem Verzeichnis der Switch-IP-Adresse, Es wird davon ausgegangen, dass der Dateiname der Switch-IP-Adresse + ".log" gespeichert ist.
Fügen Sie die folgenden Einstellungen zu #### TEMPLATES #### in /etc/rsyslog.conf hinzu.
#### TEMPLATES ####
$template RemoteHost,"/var/log/networkdevices/%fromhost%/%fromhost%.log"
Erstellen Sie außerdem das Verzeichnis / var / log / networkdevices /.
# mkdir /var/log/networkdevices
/ var / log / networkdevices / Switch IP / Switch IP.log Nehmen Sie Einstellungen zum Komprimieren und Drehen vor.
Erstellen Sie unter /etc/logrotate.d/ eine Datei mit dem Namen switch IP mit dem folgenden Inhalt.
# pwd
/etc/logrotate.d
# vi 192.168.1.1
/var/log/networkdevices/192.168.1.1/192.168.1.1.log {
daily
rotate 31
compress
delaycompress
missingok
notifempty
create 0664 root root
}
Dadurch wird die Datei 192.168.1.1.log komprimiert und in 31 Generationen gedreht.
Dies ist ein Beispiel für ein Python-Programm, das eine Textdatei mit einer Liste von IP-Adressen zeilenweise liest und eine Konfigurationsdatei für logrotate generiert.
list.txt
192.168.1.1
192.168.2.1
・ ・ ・
sample01.py
#!/usr/bin/env python
f = open('list.txt', 'r')
line = f.readline()
while line:
af = line.strip()
file = '/etc/logrotate.d/' + af
with open(file, 'w') as outp:
outp.write("/var/log/networkdevices/" + af + "/" + af + ".log {\n")
outp.write("\tdaily\n")
outp.write("\trotate 31\n")
outp.write("\tcompress\n")
outp.write("\tdelaycompress\n")
outp.write("\tmissingok\n")
outp.write("\tnotifempty\n")
outp.write("\tcreate 0664 root root\n")
outp.write("}\n")
line = f.readline()
f.close()
Recommended Posts