Estimados, gracias a la ayuda que me han dado he avanzado mucho con la
configuración de rsyslog. Ya logro hacer que detecte los mensajes
provenientes de distintos hosts y que los guarde en directorios
separados por fecha y por host y que además el registro (es decir el
texto que se escribe dentro del archivo de log) sea personalizado.
Perfecto hasta ahí.
Ahora lo que me falta es lograr separar los logs, además de por host,
por facilities y prioridades, tal como se hace con los logs locales.
Pues bien, ya entiendo como configurar los logs locales por facilities y
prioridades, pero no me doy cuenta de como tiene que ser la estructura
de configuración de rsyslog.conf para que además de separar por nombre
de host me separe dentro de cada directorio correspondiente a cada host
según las facilities y prioridades.
Pongo a continuación un extracto de como es actualmente mi rsyslog.conf
para que lo vean y si de paso les sirve puedan tomar algo. Traté de
escribirlo todo usando la nueva sintaxis, pero a lo mejor algo quedó en
el formato viejo (puesto que como ya hablamos acá en otro hilo la
documentación de que es viejo y que es nuevo en rsyslog es medio
desastrosa). Lo que hace básicamente es separa los logs por nombre de
host (salvo para una IP en particular, en cual caso detecto el mensaje
por IP de origen y luego lo guardo en un directorio predefinido) y
escribe un mensaje de log personalizado.
Como verán todos los mensajes de un determinado host se guardan dentro
de un solo archivo, "syslog.log". Mi intención como les decía es separar
dentro de la
carpeta correspondiente lo que es auth de mail, dhcp, cron, etc., etc.,
tal como sucede con los logs locales.
Acá va el estracto del archivo (puede tener algún error porque lo
modifiqué acá en el correo, pero la configuración que tengo es funcional):
/**********************************************************************************************************************************************************************************/
#################
#### MÓDULOS ####
#################
# Carga de módulos por defecto
Module(load = "imuxsock") # provides support for local system logging
Module(load = "imklog") # provides kernel logging support
# Se carga el módulo para recepción de logs por UDP y se "ata" al mismo
a la regla "remote", la cual hará que todos los logs remotos se escriban
dentro
# del directorio /var/log/rsyslog
Module(load = "imudp")
Input(type = "imudp" port = "XXX" ruleset = "remote")
###################
#### TEMPLATES ####
###################
# Templates para los directorios
template(name="HOSTS" type="string"
string="/var/log/rsyslog/%$year%/%$month%/%$day%/%hostname%/syslog.log")
template(name="CUSTOM" type="string"
string="/var/log/rsyslog/%$year%/%$month%/%$day%/CUSTOM/syslog.log")
# Templates para personalizar los registros (Fecha, hora, hostname, tag
y mensaje de log propiamente dicho)
template(name="CustomFormat_Hosts" type="string"
String="%$year%-%$month%-%$day% %$hour%:%$minute% %hostname% %syslogtag%
%msg%\n")
template(name="CustomFormat_CUSTOM" type="string"
string="%$year%-%$month%-%$day% %$hour%:%$minute% CUSTOM %syslogtag%
%msg%\n")
#############################
#### DIRECTIVAS GLOBALES ####
#############################
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# Set the default permissions for all log files.
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
# Where to place spool and state files
$WorkDirectory /var/spool/rsyslog
# Include all config files in /etc/rsyslog.d/
$IncludeConfig /etc/rsyslog.d/*.conf
##################################
#### Reglas para logs remotos ####
##################################
# Se define la regla "remote", la cual se utilizará para los logs
remotos. Salvo que se trate de una IP en particular
# se separa todo por nombre de host
ruleset(name="remote"){
if $fromhost-ip == 'aaa.bbb.ccc.ddd' then{
?CUSTOM;CustomFormat_CUSTOM
stop
}
else{
?HOSTS;CustomFormat_Hosts
stop
}
}
##################################
#### Reglas para logs locales ####
##################################
# First some standard log files. Log by facility.
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
# Logging for the mail system. Split it up so that it is easy to write
scripts to parse these files.
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err
# Logging for INN news system.
news.crit /var/log/news/news.crit
news.err /var/log/news/news.err
news.notice -/var/log/news/news.notice
# Some "catch-all" log files.
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
# Emergencies are sent to everybody logged in.
*.emerg :omusrmsg:*
# NOTE: adjust the list below, or you'll go crazy if you have a
reasonably busy site..
daemon.*;mail.*;\
news.err;\
*.=debug;*.=info;\
*.=notice;*.=warn |/dev/xconsole
/**********************************************************************************************************************************************************************************/
Espero se entienda lo que quiero lograr. Les agradecería mucho su ayuda.
Saludos! Mauro
--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/537b470e.5000...@gmail.com