Está en la página 1de 4

Automatizar rotacin de logs de Apache con logrotate - Menudo Problema

http://menudoproblema.es/blog/entries/2011/04/11/automatizar-rotacio...

Menudo Problema Blog sobre nuevas tecnologas RSS Twitter LinkedIn Entradas 2011 Abril 11 Automatizar rotacin de logs de Apache con logrotate

Automatizar rotacin de logs de Apache con logrotate


escrito por uve 11 Abril 2011 Este es un tema que tena un poco descuidado (muy mal por mi parte) y que ahora acabo de solucionarlo. logrotate permite configurar de una forma sencilla cmo, cundo y dnde queremos hacer la rotacin de los logs. Esta utilidad se suele ser usada por bastante software, como: apache2, apt, aptitude, dpkg, mysql-server, postgresql-common rsyslog. En este caso, voy a explicar brevemente como podemos utilizar logrotate para los logs de nuestros sitios web. Aunque bien es cierto que existe una configuracin para los logs generales de Apache, yo utilizo logs independientes para cada sitio que tengo desplegado, por lo que habr que rotar de forma independiente cada uno de ellos. logrotate utiliza por defecto el fichero de configuracin:
/etc/logrotate.conf

Si echamos un ojo a la configuracin por defecto, encontraremos algo como esto:


# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp, or btmp -- we'll rotate them here /var/log/wtmp { missingok monthly create 0664 root utmp rotate 1 } /var/log/btmp { missingok monthly create 0660 root utmp rotate 1 } # system-specific logs may be configured here

No recomiendo tocar la configuracin por defecto, ya que esto puede afectar a los logs del sistema completo. En lugar de modificar el fichero logrotate.conf, existe un directorio donde existen configuraciones especficas para cada servicio (como los comentados anteriormente). Este directorio es el siguiente:
/etc/logrotate.d/

Aqu podremos crear un fichero para cada sitio que deseemos configurar, o bien, tal y como yo he hecho, modficar el fichero de Apache. Para ello, editaremos el fichero /etc/logrotate.d/apache2, de forma similar a esta:
/var/log/apache2/*.log { weekly missingok rotate 52 compress delaycompress

1 de 4

02/12/2013 14:57

Automatizar rotacin de logs de Apache con logrotate - Menudo Problema

http://menudoproblema.es/blog/entries/2011/04/11/automatizar-rotacio...

notifempty create 640 root adm sharedscripts postrotate if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript } /home/www.menudoproblema.es/logs/*.log { monthly missingok rotate 12 compress delaycompress notifempty create 640 user group sharedscripts postrotate if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript }

Partimos de que nuestro sitio web se encuentra en la ruta /home/www.menudoproblema.es/ y los logs estn en /home/www.menudoproblema.es/logs. Por tanto, estamos indicando todos los ficheros con extensin .log que estn en el directorio /home/www.menudoproblema.es/logs sern rotados, en base a esa configuracin. La configuracin principal es la siguiente: monthly - Rotar mensualmente missingok - No se produce error si el log no existe rotate 12 - Se mantiente las ltimas 12 rotaciones compress - Las rotaciones sern comprimidas delaycompress - Se retrasa la compresin hasta la siguiente rotacin notifempty - No se realiza rotacin si el log est vaco create 640 user group - El nuevo log se crear con los permisos 640, con propietario user y con grupo group postrotate - Script que se ejecutar tras la rotacin, en este caso, se recargar el servidor web, para que la rotacin tenga efecto Para ms informacin se puede consultar el man. Una vez tengamos configurado nuestra rotacin de logs, la podemos hacer efectiva lanzando logrotate. Para ello:
logrotate -vf /etc/logrotate.conf

Etiquetas
administracin Apache2 Ubuntu Server { Entradas relacionadas } Cmo instalar MediaWiki dentro de un sitio Django con Apache2 Proteger tu servidor SSH contra ataques de fuerza bruta

ltimas entradas
Testear WebServices Restful con curl - 29/10/12 Preparar un sitio en construccin con Apache2 - 28/10/12 Exportar el cdigo fuente de Eclipse a PDF - 17/10/12 Catalog "SA" cannot be resolved for table xxx - 02/08/12 Patrn Singleton en Python3 - 17/07/12

Nube de tags
3G administracin

2 de 4

02/12/2013 14:57

Automatizar rotacin de logs de Apache con logrotate - Menudo Problema

http://menudoproblema.es/blog/entries/2011/04/11/automatizar-rotacio...

algoritmos Alix Android Ant Apache2 aplicaciones APT Arduino Autotools Backup Bacula Bash Blogs Broadcom Brother C C++ cluster control de versiones cross-compiling Debian despliegue diseo Django Dpkg drivers Elixir empotrados Fedora Firefox Gettext Git Gnome Google Google Analytics Gps Grub2 GTK hardware hosting i18n imagen Intel iPad IPv6 Java JDBC JPA JSON Latex Linux Lua Lyx MacOS mail MatLab Menudo Problema Metaprogramming migracin mod_wsgi MQTT MySQL NetBeans

3 de 4

02/12/2013 14:57

Automatizar rotacin de logs de Apache con logrotate - Menudo Problema

http://menudoproblema.es/blog/entries/2011/04/11/automatizar-rotacio...

Node.js OLAP OpenGL OpenJDK OpenMPI OpenWRT paralelizacin Piwik PlagaOS Postfix PostgreSQL produccin Python QT redes redes sociales routers RTOS Ruby seguridad ShellScript SQL SQLAlchemy SQLite SSH SSL STL Subersion Swing toolchain Twitter Ubuntu Ubuntu Server UGR VirtualEnv VPN WebServices WiFI Wine Wireshark XHTML XML X Server La teora es cuando crees saber algo, pero no funciona. La prctica es cuando algo funciona, pero no sabes por qu. Los programadores combinan la teora y la prctica: Nada funciona y no saben por qu.

2011 Vicente Ruiz Rodrguez. All Rights Reserved.

4 de 4

02/12/2013 14:57