Deci, aici este configurația noastră
Server: server rsyslog - CentOS 7
Client: Cisco Catalyst C6880-X-LE
/etc/rsyslog.conf
de pe serverul CentOS 7:
$ModLoad imuxsock # oferă suport pentru înregistrarea în sistem local (de exemplu, prin comanda logger)
$ModLoad imjurnal # oferă acces la jurnalul systemd
$template TmplAuth, „/var/log/client_logs/%HOSTNAME%/%PROGRAMNAME%.log”
$template TmplMsg, „/var/log/client_logs/%HOSTNAME%/%PROGRAMNAME%.log”
authpriv.* ?TmplAuth
*.info;mail.none;authpriv.none;cron.none ?TmplMsg
$ModLoad imudp
$UDPServerRun 514
$ModLoad imtcp
$InputTCPServerRun 514
$WorkDirectory /var/lib/rsyslog
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
$IncludeConfig /etc/rsyslog.d/*.conf
$OmitLocalLogging activat
$IMJournalStateFile imjournal.state
*.info;mail.none;authpriv.none;cron.none /var/log/messages
authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:*
uucp,news.crit /var/log/spooler
local7.* /var/log/boot.log
Din anumite motive în /var/log/client_logs
folder, jurnalele Cisco creează un nou fișier .log de fiecare dată când este generat un nou mesaj de jurnal pe comutator. Acest lucru, evident, nu este ideal și vreau ca rsyslog să pună toate jurnalele într-un singur fișier și plănuiesc să las logrotate să se ocupe de crearea unui nou fișier jurnal în fiecare zi.
Iată un exemplu de ceea ce văd în /var/log/client_logs
director
-rw------- 1 rădăcină rădăcină 184 Oct 13 14:30 156598.log
-rw------- 1 rădăcină rădăcină 164 Oct 13 14:30 156599.log
-rw------- 1 rădăcină rădăcină 186 Oct 13 14:30 156600.log
-rw------- 1 rădăcină rădăcină 162 Oct 13 14:30 156601.log
-rw------- 1 rădăcină rădăcină 184 Oct 13 14:30 156602.log
-rw------- 1 rădăcină rădăcină 164 Oct 13 14:35 156603.log
-rw------- 1 rădăcină rădăcină 186 Oct 13 14:35 156604.log
-rw------- 1 rădăcină rădăcină 162 Oct 13 14:35 156605.log
-rw------- 1 rădăcină rădăcină 184 Oct 13 14:35 156606.log
-rw------- 1 rădăcină rădăcină 164 Oct 13 14:35 156607.log
-rw------- 1 rădăcină rădăcină 186 Oct 13 14:35 156608.log
-rw------- 1 rădăcină rădăcină 162 Oct 13 14:35 156609.log
-rw------- 1 rădăcină rădăcină 184 Oct 13 14:35 156610.log
-rw------- 1 rădăcină rădăcină 162 Oct 13 14:39 156611.log
-rw------- 1 rădăcină rădăcină 164 Oct 13 14:41 156612.log
-rw------- 1 rădăcină rădăcină 186 Oct 13 14:41 156613.log
-rw------- 1 rădăcină rădăcină 162 Oct 13 14:41 156614.log
-rw------- 1 rădăcină rădăcină 184 Oct 13 14:41 156615.log
Și acest lucru continuă pentru totdeauna, având în vedere că se creează un .log pentru fiecare mesaj nou trimis de la comutatorul Cisco. Iată un exemplu de conținut al unuia dintre aceste fișiere jurnal
2021-10-13T14:41:10.866435-07:00 X 156613: X-Switch: .Oct 13 13:40:44 PST: %LINEPROTO-SW1-5-UPDOWN: Protocol de linie pe interfața GigabitEthernet1915/1/0/1911 , a schimbat starea în jos
Nu sunt sigur dacă problema este cu configurația de pe comutatorul Cisco sau configurația mea rsyslog, dar am mai făcut acest lucru înainte și nu am avut niciodată probleme cu crearea de noi fișiere .log pentru fiecare mesaj trimis către server.
Iată configurația de pe partea switch-ului Cisco
Switch1#show run | include logare
înregistrarea informațiilor despre utilizator
logging reîncărcare depanare
starea legăturii evenimentului de înregistrare implicită
înregistrarea numelui de gazdă ID-ul originii
gazdă de înregistrare 10.1.1.1
logare sincronă
logare sincronă
FYI gazdă de logare
declarația este adresa IP a serverului CentOS 7 rsyslog. Toate celelalte jurnale care sunt capturate de la alte gazde sunt în regulă și nu creează noi fișiere .log pentru fiecare mesaj primit, dar celelalte sisteme care trimit jurnalele nu sunt switch-uri Cisco, toate sunt diferite variante de Linux (în primul rând CentOS și RHEL).
Aveți idee de ce rsyslog creează noi fișiere .log pentru fiecare mesaj pe care îl primește de la acest comutator Cisco Catalyst?