2014-05-08 17:19 GMT+00:00 Mauro Antivero <mauro.antiv...@gmail.com>: > Estimados, estoy tratando de hacer que rsyslog me escriba determinados logs > en distintos directorios según la fecha. El siguiente es un ejemplo que > funciona, pero no hace lo que quiero (osea, en este caso se guarda todo en > un mismo archivo en /var/log/rsyslog/rsyslog.log): > > ruleset(name="remote"){ > if $fromhost-ip == '192.168.0.5' then { > action(type="omfile" file="/var/log/rsyslog/syslog.log") > stop > } > > Y lo que quiero en realidad es algo de este tipo: > > ruleset(name="remote"){ > if $fromhost-ip == '192.168.0.5' then { > action(type="omfile" file="/var/log/rsyslog/año/mes/día/syslog.log") > stop > } > > Pero no logro hacerlo andar. Intenté con las propiedades, pero no he podido. > Usando el formato de sintaxis viejo si he podido, pero no es aconsejable > usar dicha sintaxis. Lo que si funciona es lo siguiente: > > template(name="CustomFormat_Hosts" type="string" > String="%$year%-%$month%-%$day% %$hour%:%$minute% %hostname% %syslogtag% > %msg%\n") > > ruleset(name="remote"){ > if $fromhost-ip == '192.168.0.5' then { > ?CMTS;CustomFormat_Hosts > stop > } > > En este caso como ven uso las propiedades pero en el string generado con el > template. Luego en la regla configuro que todos los mensajes de log que > vengan del host 192.168.0.5 sean guardados en una estructura como la que yo > deseo.
Bueno, el tema documentación en rsyslog solo tiene un calificativo: desastroso. Pero, es superable :)). A ver, de entrada está mezclando sintaxis antigua con sintaxis nueva. De entrada, ¿que versión rsyslog estás utilizando? Por solo tienes dos opciones: a) Configurar todo con sintaxis antigua. b) Configurar todo con sintaxis nueva. Ahora mismo lo has mezclado todo. Yo nunca he tratado de hacer lo que estás intentando (básicamente porque sería infumable gestionar en archivos planos el alto volumen de logs que debo gestionar), pero te pongo un ejemplo de como utilizar los templates en sintaxis nueva (versiones 6.x en adelante): #### Templates definitions #### $template idp01_rfc5424fmt,"suricata idp01 %fromhost-ip% %msg%\n" if $syslogtag == 'idp01' then { action(type="omfwd" protocol="tcp" target="172.17.22.1" port="10514" template="suricata01_rfc5424fmt" queue.filename="suricata01fwd" queue.maxdiskspace="10g" queue.saveonshutdown="on" queue.type="linkedlist" queue.maxfilesize="5m" action.resumeretrycount="-1") stop } Como ves, la forma de utilizar el template difiere mucho de como la has configurado. Prueba a ajustarla. Creo que la definición del propio template es correcta. Por cierto, ¿estás seguro que quieres crear directorios de hora y minuto?. Yo no lo haría porque dependiendo del volumen, ya puedes tener un disco muy muy rápido en escritura. Piensa que rsyslog está pensado para trabajar con +100K EPS ... O sea que puede llevar a tu disco de cabeza :)) Saludos. -- 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/caejqa5jb382j5sjwgb2wfq+g_ffudnw_0iso1oroa-vav+i...@mail.gmail.com