Les journaux des commutateurs réseau tels que Cisco Catalyst 2960X sont transférés vers le serveur syslog et les journaux reçus sont configurés pour être gérés par génération par logrotate côté serveur syslog. De plus, en prime, un exemple pour générer un fichier pour logrotate avec python est également décrit.
L'environnement supposé est le suivant. -Catalyseur 2960X (WS-C2960X-48TD-L) Version IOS 15.2 (4) E5 -CentOS Linux version 7.5.1804 (Core) ・ Logrotate-3.8.6-15.el7 ・ Rsyslog-8.24.0-16.el7 ・ Python 2.7.5
adresse IP ・ Commutateur: 192.168.1.1 ・ Serveur Syslog: 192.168.1.100
Dans l'explication suivante, on suppose que l'environnement ci-dessus a déjà été construit.
Après vous être connecté au commutateur Catalyst, passez en mode privilégié et en mode de configuration globale. Utilisez la commande suivante pour définir le transfert de journal vers le serveur syslog.
switch1(config)#logging host 192.168.1.100
Ouvrez le port du service syslog avec firewall-cmd.
# firewall-cmd --add-service=syslog --zone=public
# firewall-cmd --add-service=syslog --zone=public --permanent
Journaux envoyés depuis le commutateur sous / var / log / networkdevices, le répertoire de l'adresse IP du commutateur, On suppose que le nom de fichier de l'adresse IP du commutateur + ".log" est enregistré.
Ajoutez les paramètres suivants à #### TEMPLATES #### dans /etc/rsyslog.conf.
#### TEMPLATES ####
$template RemoteHost,"/var/log/networkdevices/%fromhost%/%fromhost%.log"
Créez également le répertoire / var / log / networkdevices /.
# mkdir /var/log/networkdevices
/ var / log / networkdevices / Switch IP / Switch IP.log Définit les paramètres de compression et de rotation.
Créez un fichier nommé IP du commutateur sous /etc/logrotate.d/ avec le contenu suivant.
# 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
}
Cela compressera le fichier 192.168.1.1.log et lui permettra de tourner en 31 générations.
Voici un exemple de programme python qui lit un fichier texte contenant une liste d'adresses IP ligne par ligne et génère un fichier de configuration pour logrotate.
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