Así que aquí está nuestra configuración

Servidor: servidor rsyslog - CentOS 7

Cliente: Cisco Catalyst C6880-X-LE

/etc/rsyslog.conf desde el servidor CentOS 7:

$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
$ModLoad imjournal # provides access to the systemd journal

$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 on
$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

Por alguna razón, en la /var/log/client_logscarpeta, los registros de cisco crean un nuevo archivo .log cada vez que se genera un nuevo mensaje de registro en el conmutador. Obviamente, esto no es ideal y quiero que rsyslog coloque todos los registros en un solo archivo, y planeo dejar que logrotate se ocupe de la creación de un nuevo archivo de registro todos los días.

Aquí hay un ejemplo de lo que veo en el /var/log/client_logsdirectorio.

-rw------- 1 root root 184 Oct 13 14:30 156598.log
-rw------- 1 root root 164 Oct 13 14:30 156599.log
-rw------- 1 root root 186 Oct 13 14:30 156600.log
-rw------- 1 root root 162 Oct 13 14:30 156601.log
-rw------- 1 root root 184 Oct 13 14:30 156602.log
-rw------- 1 root root 164 Oct 13 14:35 156603.log
-rw------- 1 root root 186 Oct 13 14:35 156604.log
-rw------- 1 root root 162 Oct 13 14:35 156605.log
-rw------- 1 root root 184 Oct 13 14:35 156606.log
-rw------- 1 root root 164 Oct 13 14:35 156607.log
-rw------- 1 root root 186 Oct 13 14:35 156608.log
-rw------- 1 root root 162 Oct 13 14:35 156609.log
-rw------- 1 root root 184 Oct 13 14:35 156610.log
-rw------- 1 root root 162 Oct 13 14:39 156611.log
-rw------- 1 root root 164 Oct 13 14:41 156612.log
-rw------- 1 root root 186 Oct 13 14:41 156613.log
-rw------- 1 root root 162 Oct 13 14:41 156614.log
-rw------- 1 root root 184 Oct 13 14:41 156615.log

Y esto continúa para siempre considerando que está creando un .log para cada nuevo mensaje enviado desde el conmutador de Cisco. A continuación, se muestra un ejemplo del contenido de uno de estos archivos de registro.

2021-10-13T14:41:10.866435-07:00 X 156613: X-Switch: .Oct 13 13:40:44 PST: %LINEPROTO-SW1-5-UPDOWN: Line protocol on Interface GigabitEthernet195/1/0/11, changed state to down

No estoy seguro de si el problema está en la configuración del conmutador de Cisco o en mi configuración de rsyslog, pero he hecho esto antes y nunca tuve problemas con la creación de nuevos archivos .log para cada mensaje enviado al servidor.

Aquí está la configuración en el lado del conmutador de Cisco

Switch1#show run | include logging
logging userinfo
logging reload debugging
logging event link-status default
logging origin-id hostname
logging host 10.1.1.1
 logging synchronous
 logging synchronous

Para su información, la logging hostdeclaración es la dirección IP del servidor rsyslog de CentOS 7. Todos los demás registros que se capturan de otros hosts están bien y no crean nuevos archivos .log por cada mensaje recibido, pero los otros sistemas que envían registros no son conmutadores de Cisco, todos son varios tipos de Linux (principalmente CentOS y RHEL).

¿Alguna idea de por qué rsyslog está creando nuevos archivos .log para cada mensaje que recibe de este conmutador Cisco Catalyst?

answer

A continuación se muestra un ejemplo de mensaje:

2021-10-13T14:41:10.866435-07:00 X 156613: X-Switch: .Oct 13 13:40:44 PST: %LINEPROTO-SW1-5-UPDOWN: Line protocol on Interface GigabitEthernet195/1/0/11, changed state to down

Parece que PROGRAMNAME apunta al número que se incrementa en uno con cada mensaje, en este caso específico 156613:

$template TmplAuth, "/var/log/client_logs/%HOSTNAME%/%PROGRAMNAME%.log"

Entonces, la configuración anterior parece correcta. La causa principal es probablemente PROGRAMNAME, que se incrementa en el mensaje.