martes, 11 de noviembre de 2014

Rotacion de logs

Esta entrada del blog tiene que ver con mi trabajo con fortigate y syslog-ng. Una vez configurados los appliances para que loguee mediante syslog, es necesario administrar los logs. De no hacerlo los logs crecerán indefinidamente. La rotación de logs consiste en remplazar un archivo de logs "lleno", por uno nuevo vacío. Los archivos viejos se guardan de acuerdo a un criterio a definir o necesidades particulares de la instalación. 

En mi caso concreto estoy trabajando con logrotate, una herramienta disponible en muchas distribuciones Linux. Ha sido portada a varios UNIXes (Solaris, AIX). Si no se cuenta con una herramienta como logrotate, es necesario desarrollar un script ad hoc. En una próxima entrada del blog voy a poner uno. Estoy trabajando en SuSE enterprise, algún camino podría cambiar en otra distribución.

EN el directorio de configuración de logrotate, /etc/logrotate.d/, agregue un archivo para rotar los logs de los fortigate. Va el listado del archivo:


/var/log/fortigate {
    create 0644 root root
    compress
    dateext
    daily
    rotate 30
    missingok
    postrotate
        /etc/init.d/syslog reload > /dev/null
    endscript
}


Por cada archivo o grupo de archivos a rotar tendremos una entrada como esta. Tenemos las entradas prerotate o postrotate, donde podemos poner un script que se corre antes o después de la rotación. La entrada daily define que la rotación sea diaria, podría ser weekly o monthly para rotar semanalmente o mensualmente. Otra alternativa es rotar por tamaño del archivo, en lo personal no me gusta, prefiero rotar por fecha. Otras entradas importantes son rotate, compress y missingok. Con rotate definimos cuantos archivos queremos conservar. El comando compress es opcional pero muy recomendado, los archivos son comprimidos luego de rotados. Podría darse que un archivo de logs no exista, para esto tenemos la directiva missingok. En la pagina man del paquete se puede ver mas opciones, el paquete es muy versatil.

2 comentarios:

  1. tengo un problema , ya yo cambie el fichero de los log para que se guardaran durante un año pero no se como saber si lo que hice esta bien, ayudame

    ResponderEliminar
    Respuestas
    1. Puedes correr manualmente logrotate. Ejemplo: logrotate -d /etc/logrotate.conf.

      Eliminar