rss
twitter
  •  

Instalar y configurar monit para linux

| en General |

0

Monit

No hace mucho puse en marcha en varios servidores un interesante monitor de servicios que es capaz de ejecutar comandos y lanzar alertas que nosotros programemos ante determinadas condiciones que fijemos.

Es capaz de monitorizar cualquier tipo de servicio o demonio, archivos de disco o sistema, vigilar espacios de discos, identificadores de proceso PID, realizar checksum y muchísimas cosas más, su forma de configurar es tan potente que configurarlo resulta en casi un lenguaje de programación.

Sin embargo no hay que asustarse, ya que es tremendamente intuitivo.

La maravilla de que les hablo se llama MONIT y es de licencia libre.

Advertencia: Este artículo es para profesionales que están plenamente familiarizados con servidores Linux. No me hago responsable de ningún daño en su sistema.

Lo primero es bajarnos una copia del programita, al momento de redactar este tutorial la versión estable es la 5.1.1. (no olvides que todo esto has de realizarlo como ROOT del sistema)


wget http://mmonit.com/monit/dist/monit-5.1.1.tar.gz
tar zxvf monit-*
cd monit*
./configure --without-ssl
make && make install

Bien, ya lo hemos instalado… la opción –without-ssl es opcional pero yo la prefiero para evitar que el monitor web que veremos más adelante tenga que necesariamente usar un protocolo HTTPS.

Bien, ya está instalado pero debemos saber que aunque esté instalado faltan 2 cosas: el archivo de configuración y colocarlo como demonio (servicio que se auto-ejecuta cada vez que arranquemos nuestro servidor).

Primero, vamos a preparar a monit como un servicio activo:


cp contrib/rc.monit /etc/init.d/monit
chmod 755 /etc/init.d/monit
ln -s /usr/local/bin/monit /usr/bin/monit
chkconfig --add monit
chkconfig monit on

Y ahora nuestro archivo de configuración principal /etc/monitrc y la carpeta /etc/monit donde colocaremos de forma ordenada e independiente cada ‘monitor’ que deseamos establecer :


touch /etc/monitrc
chmod 700 /etc/monitrc
mkdir /etc/monit

Y nuestro archivo de configuración /etc/monitrc:


# Monit control file
# ==================

# Monit global settings:
# ----------------------
set daemon  60
set logfile syslog facility log_daemon
set mailserver localhost
set alert usuario@dominio.com # direccion a donde enviaremos las alertas del sistema
set mail-format {
from: monit@localhost
subject: $SERVICE $EVENT
message: $ACTION $SERVICE at $DATE on $HOST: $DESCRIPTION.
}

set httpd port 2812 and
allow xxx.xxx.xxx.xxx # La IP remota que tendrá permiso para poder ver el monitor web
allow usuario:clave #pues eso... los permisos que necesitas para poder entrar al monitor vía web

include /etc/monit/server.monit
include /etc/monit/httpd.monit
include /etc/monit/mysqld.monit

Como podrán ver este archivo de configuración permite establecer cada cuanto tiempo realizar la revisión, el formato de correo, remitente y destinatario, servicios que activaremos (con include), y acceso al puerto 2812 vía web con usuario y clave (no olvides abrir este puerto en tu firewall)

Listo, ahora vienen los archivos de configuración de cada servicio:

server.monit:


# Monit Server  settings:
# ----------------------
check system xxx.xxx.xxx.xxx #IP de tu host
if loadavg (1min) > 5 then alert
if loadavg (5min) > 10 for then alert
if memory usage > 90% then alert
if cpu usage (user) > 70% for 3 cycles then alert
if cpu usage (system) > 30% for 3 cycles then alert
if cpu usage (wait) > 20% for 3 cycles then alert

httpd.monit:


#
# Monitor Apache (httpd)
#
check process httpd with pidfile /var/run/httpd.pid
start program = "/etc/init.d/httpd start"  with timeout 60 seconds
stop program  = "/etc/init.d/httpd stop"
if totalcpu > 90% for 3 cycles then restart
if totalmem > 95% for 3 cycles then restart
if children > 250 for 3 cycles then restart
if cpu > 70% for 3 cycles then restart
if failed host xxx.xxx.xxx port 80 protocol http then restart #IP de tu host

mysqld.monit:


check process mysql with pidfile  /var/run/mysqld/mysqld.pid
group database
start program = "/etc/init.d/mysqld start"
stop program = "/etc/init.d/mysqld stop"
if cpu > 95% for 2 cycles then restart
if memory usage > 75% then restart
if failed host xxx.xxx.xxx port 3306 protocol mysql then restart #IP de tu host

Listo, cada quien se puede ajustar sus monitores a su gusto, hay muy buena documentación y muchos ejemplos

Respecto a monit, sólo resta ponerlo a andar:


/etc/init.d/monit restart

Verificar las sintaxis de nuestros archivos de configuración:


monit -t

Y si queremos “recargar” nuestro monitor para releer los archivos de configuración sin necedad de parar el servicio, podemos hacer:


monit reload

Ce tout !, para ver nuestro monitor vía web: http://xxx.xxx.xxx.xxx:2812 (IP del servidor)

Lo demás es lectura, experimentación y curiosidad… las posibilidades son casi infinitas !

Compartir:
  • Facebook
  • Twitter
  • Digg
  • Meneame
  • StumbleUpon
  • del.icio.us
  • Google Bookmarks
  • Technorati
  • Netvibes

Descarga Gratis: jQuery – Novice to ninja

| en General |

2

Jquery Ninja

Y aquí lo tienen… y libro que SitePoint regaló por 24 horas, tras hacerse España con la copa del mundial de fútbol 2010.

El libro podía descargarse desde este enlace http://sale.sitepoint.com/ (yo me he bajado el mío) pero por si acaso llegaron tarde a la piñata, acá les dejo el cotillón: http://www.mediafire.com/?uez2d0m2dm2

Compartir:
  • Facebook
  • Twitter
  • Digg
  • Meneame
  • StumbleUpon
  • del.icio.us
  • Google Bookmarks
  • Technorati
  • Netvibes

Tener siempre a mano el último y más reciente Jquery

| en General |

0

Para mí, es mucho mejor cargar el JQuery directamente desde un servidor remoto (más rápido, siempre actualizado y mejor manejo de caché).

Habrá quien piense distinto, pero este artículo lo pongo (como suele ser costumbre) como una nota mental ;-) ya que el enlace es bastante escurridizo y no suele encontrarse fácilmente al buscarlo por allí.


<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

También podríamos valernos de google para cargar remotamente, pero con la desgracia de que debemos especificar a mano la versión deseada, en este ejemplo la versión 1.4.2:


<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

Seguro le será de ayuda a alguno.

Compartir:
  • Facebook
  • Twitter
  • Digg
  • Meneame
  • StumbleUpon
  • del.icio.us
  • Google Bookmarks
  • Technorati
  • Netvibes

Buscar en archivos .htaccess por contenido y en forma recursiva

| en General |

0

Hace poco me vi en la necesidad de buscar entre todos los dominios de un servidor, determinada “cadena” contenida entre todos los archivos .htaccess que pudieran existir.

Como muchos saben un archivo con la forma .xxx en Linux representa a un archivo “oculto” y por tanto una simple instrucción GREP o FIND no nos servirían de mucho a no ser que las usemos combinadas.

Así pues que la solución la dejo por acá en forma de nota mental para mis usos futuros (y el de ustedes).


find . -name ".htaccess" -exec grep -r -n -H -I 'cadena-a-buscar' {} \;

Esta instrucción la ejecutamos desde luego desde el directorio donde deseamos iniciar la recursividad, en mi caso:
/var/www/vhosts (plesk)

Compartir:
  • Facebook
  • Twitter
  • Digg
  • Meneame
  • StumbleUpon
  • del.icio.us
  • Google Bookmarks
  • Technorati
  • Netvibes

Deshabilitar mod_security por dominio

| en General |

0

El mod_security es un gran addon a nuestro Apache para ayudarnos a proteger nuestros dominios hospedados en el servidor contra ataques DDOS, inyección de SQL, y muchos otros más, pero …

Sucede mucho que ante ciertos CMS como foros, blogs, portales, etc… el mod_security dispara incómodos falsos-positivos, y por ende dichos sistemas instalados dejan de funcionar como esperamos que lo hagan.

La solución es simple: Analizar los logs en búsqueda de la razón de estos falsos positivos y ajustar las reglas del mod_security pero, siempre hay una opción mucho más rápida: deshabilitar el mod_security (Aunque evidentemente esto deja sin protección al sistema)

Pero ¿cómo hacemos esto si el mod_security al ser un plugin del Apache que afecta en general y por igual a todos los dominios hospedados en un mismo servidor?

Pues fácil:
Creamos (o editamos) el archivo .htaccess el cual está en la raíz del dominio que queremos deshabilitarle el mod_security y ya está:


<IfModule mod_security.c>
SecFilterEngine Off
</IfModule>
Compartir:
  • Facebook
  • Twitter
  • Digg
  • Meneame
  • StumbleUpon
  • del.icio.us
  • Google Bookmarks
  • Technorati
  • Netvibes