Alejandro Arco Alejandro Arco

Rotar logs de apache con logrotate en Linux

linux, servidores web 4 Comentarios »

logrotate - Rotar logs de apache con logrotate en LinuxUn log es un registro de eventos producidos durante un periodo de tiempo concreto. El servidor web apache almacena en distintos logs (ficheros de registros) la actividad de nuestra aplicación (accesos y errores) de los distintos sitios web que tengamos configurados.

Para evitar que el tamaño de los logs crezca de forma incontrolada se opta por rotarlos, en caso de no hacerlo podremos quedarnos rápidamente sin espacio en disco.

No debemos olvidar que la información recopilada en los ficheros log se debe conservar al menos durante 1 año por eventuales necesidades legales, de este modo, además de rotarlos se opta habitualmente por comprimir logs.

A continuación detallaré como rotar logs de nuestro servidor web apache configurando logrotate pare desempeñar esta función. Los ejemplos mostrados han sido testeados en la distribución Debian de Linux, aunque en las distribuciones más comunes su configuración es similar.

Instalación logrotate - rotar logs de apache con logrotate

La herramienta logrotate ya se encuentra preconfigurada e instalada en la distribución Debian de Linux, de este modo en la mayoría de los casos nos podríamos saltar este paso.

Para instalar el logrotate usaremos la herramienta apt-get (sistema de gestión de paquetes de software):


apt-get update
apt-get install logrotate

Una vez finalizada la instalación de logrotate comprobamos que disponemos de todos los ficheros y carpetas necesarias para su correcto funcionamiento:


/var/lib/logrotate/
/etc/logrotate.d/
/usr/sbin/logrotate
/etc/logrotate.conf

Configurar logrotate - rotar logs de apache con logrotate

Para configurar nuestro logrotate actualizaremos el fichero logrotate.conf:


vi /etc/logrotate.conf

El contenido de nuestro logrotate.conf será similar al mostrado posteriormente:


# ejecutar "man logrotate" para más información

# rotar log semanalmente
weekly

# mantener logs durante 4 semanas
rotate 4

# rotar y crear nuevo log aunque esté vació el anterior
create
# descomentar si quieres comprimir logs
#compress

# ubicación de paquetes para el rotado de logs
include /etc/logrotate.d

# los logs wtmp o btmp los haremos rotar aquí
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0664 root utmp
    rotate 1
}

# los logs del sistema se pueden rotar aquí

Crearemos el fichero para rotar logs de apache con logrotate en la distribución Debian de Linux:


vi /etc/logrotate.d/apache2

Y le añadiremos el siguiente contenido al fichero creado anteriormente:

# ubicación de los logs del servidor web apache
/var/log/apache2/*.log {
        weekly
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        postrotate
                if [ -f /var/run/apache2.pid ]; then
                        /etc/init.d/apache2 restart > /dev/null
                fi
        endscript
}

# logs de acceso y errores de los sitios web
/var/www/logs/*.log {
        weekly
        missingok
        rotate 52
        compress
        notifempty
        create 640 root root
        sharedscripts
        postrotate
                if [ -f /var/run/apache2.pid ]; then
                        /etc/init.d/apache2 restart > /dev/null
                fi
        endscript
}

Ejecutar logrotate - rotar logs de apache con logrotate

Posteriormente comprobaremos manualmente el correcto funcionamiento de logrotate usando el siguiente comando:

/usr/sbin/logrotate /etc/logrotate.conf -f

Además, logrotate debe ir configurado en un cron para que se ejecute periódicamente, esto podremos hacerlo gracias a la herramienta crontab (ejecuta procesos o scripts a intervalos regulares):

crontab -e

Y agregamos en nuestro archivo crontab el siguiente contenido:

# Rotar logs de apache con logrotate a las 3 am
0 03 * * * root /usr/sbin/logrotate /etc/logrotate.conf > /dev/null 2>&1

Finalmente reiniciaremos el proceso cron para que los cambios surtan efecto:

/etc/init.d/cron restart

No debemos olvidar rotar logs de apache posteriormente de actualizar nuestro sistema de estadísticas web (por ejemplo a la 1 am), ya que de no hacerlo perderíamos información.

El rotado de logs descrito anteriormente lo podemos aplicar a cualquier otra herramienta del sistema. De este modo, espero que este artículo os sea de gran utilidad no sólo para este caso sino para muchos otros.

Cualquier duda que tengáis podemos tratarla a través de los comentarios.

Administración remota, escritorio remoto con UltraVNC

software libre, windows 37 Comentarios »

UltraVNC es un programa de software libre basado en el protocolo VNC (Virtual Network Computing) que permite el acceso remoto a ordenadores mediante una interfaz gráfica fácil e intuitiva. Además su estructura es del tipo cliente/servidor la cual nos permite tomar el control del ordenador servidor remotamente a través de un ordenador cliente (también llamado software de escritorio remoto).

Además, UltraVNC permite que el sistema operativo en cada ordenador sea distinto: es posible compartir la pantalla de una máquina con “cualquier” sistema operativo (como Windows, MacOS X y Linux corriendo una interfaz gráfica) conectando desde cualquier otro ordenador o dispositivo que disponga de un cliente VNC.

Escritorio remoto UltraVNC

A continuación detallaré los pasos comunes en la instalación y configuración del software de escritorio remoto UltraVNC para la mayoría de las distribuciones VNC para Windows.

Para comenzar con la instalación del software de escritorio remoto UltraVNC, previamente has de descargar la versión más reciente (y a poder ser la versión estable del mismo).

Una vez descargada la última versión estable de UltraVNC para la administración remota, ejecuta el fichero de instalación de UltraVNC y selecciona alguna de las siguientes opciones según requieras:

  • Full installation (instalación completa de Ultra VNC):
    Se instalarán los módulos cliente y servidor.
  • Viewer Only (Sólo módulo cliente de Ultra VNC):
    Se instalará únicamente el módulo cliente, por lo que esta máquina podrá administrar remotamente máquinas que tengan instalado el módulo servidor. También se encuentra disponible el modo silencioso.
  • Server Only (Sólo módulo servidor de Ultra VNC):
    Se instalará únicamente el módulo servidor, por lo que esta máquina podrá recibir peticiones para que sea administrada remotamente por otra que tenga instalada el módulo cliente.

Una vez finalizada la instalación, procederemos a realizar la configuración de UltraVNC según nuestras necesidades, para ello tenemos varias opciones disponibles de configuración del UltraVNC como las que se muestran en la siguiente imagen:

ultravnc - Administración remota, escritorio remoto con UltraVNC

Recuerda agregar una contraseña de autentificación para que la conexión VNC sea posible, y no olvides descargarte la traducción al español del módulo cliente.

Administración de sistemas remotos con UltraVNC

Posteriormente y una vez configurado UltraVNC en las máquinas pertinentes realizaremos una primera conexión para la administración remota, por lo que ya sólo nos faltará introducir la IP o el nombre del host de la máquina que queramos administrar (y en caso de tener un firewall deberemos habilitar los puertos usados, por defecto el UltraVNC usa los puertos 5800 para Web y el 5900 para VNC):

ultravnc1 - Administración remota, escritorio remoto con UltraVNC

Una vez realizada la conexión con la máquina remota nos aparecerá en pantalla su escritorio remoto con una barra de herramientas de acceso rápido a las opciones más comunes para la administración remota de la máquina:

ultravnc2 - Administración remota, escritorio remoto con UltraVNC

  1. Ejecuta  [Ctrl] + [Alt] + [Supr] en la máquina remota.
  2. Modo de administración a pantalla completa.
  3. Opciones de la conexión remota.
  4. Refresca la pantalla de la máquina remota.
  5. Ejecuta [Ctrl] + [Esc] en la máquina remota.
  6. Permite que ejecutemos otras secuencias de teclas en la máquina remota.
  7. Muestra el estado de la conexión remota.
  8. Cerramos la conexión remota.
  9. Oculta la barra de herramientas.
  10. Elimina el escritorio de la máquina remota, muy útil mientras trabajamos en la máquina remota.
  11. Nos permite transferir ficheros entre las máquinas, muy útil para instalar programas en la máquina remota.
  12. Nos permite seleccionar una ventana activa y que sólo esta sea visualizada.
  13. Muestra el escritorio de la máquina remota.
  14. Nos permite intercambiar mensajes con la máquina remota.

Hemos tratado en este artículo la descarga, instalación, configuración y conexión remota mediante el protocolo VNC y más concretamente usando la aplicación de software libre UltraVNC. De este modo podremos facilitarnos la administración de sistemas, mediante la conexión remota a distintas máquinas de una forma rápida e intuitiva.

Fuente: Alejandro Arco

Redirección web con el mod_rewrite de apache

servidores web 11 Comentarios »

mod_rewrite - Redirección web con el mod_rewrite de apacheA continuación detallaré algunas de las opciones que tenemos actualmente para realizar una redirección web utilizando el módulo mod_rewrite de Apache (servidor web) y el archivo de configuración .htaccess.

Además, comentaré cuales son los usos más comunes en la administración de sistemas de estas redirecciones web.

Redirecciones web

  • Redirección 301 Permanente:
    [Uso práctico] Redirección permanente de nuestros dominios secundarios (.com, .net) a nuestro dominio principal (.es), para que los motores de búsqueda no interpreten a nuestros dominios secundarios como contenido duplicado y nos penalicen.
  • Redirección 302 Temporal:
    [Uso práctico] Redirección temporal de nuestra sección de inicio, mientras se están realizando tareas de actualización y/o mantenimiento.

Redireccion con .htaccess

Las redirecciones web se pueden agregar directamente en el fichero de configuración del dominio del servidor web Apache o dentro del fichero .htaccess ubicado en la raíz del sitio.

RewriteEngine On

# Redireccion web permanente 301 de dominios secundarios con y sin las www
RewriteCond %{HTTP_HOST} !^(.*)\.alejandroarco\.es$ [NC]
RewriteRule ^(.*)$ http://www.alejandroarco.es/$1 [R=301,L]

# Redireccion web temporal 302 para tareas de mantenimiento
RewriteRule ^$ /mantenimiento.html$1 [R=302,L]

Si tenéis alguna duda acerca del funcionamiento del ejemplo mostrado en el .htaccess para la redirección web no dudéis en agregar un comentario a este artículo.

Fuente: Alejandro Arco

Publicado por Alejandro Arco.Gracias WordPress & N.Design Studio.