jueves, 28 de febrero de 2013

Monitorizar Apache con mod_status


Para monitorizar Apache en tiempo real podemos utilizar el módulo mod_status. Como normalmente ya viene compilado con Apache, únicamente tendremos que activar y configurar el módulo según nuestras necesidades.

Instalación del módulo


Para habilitar el módulo de Apache, lanzar el siguiente comando desde consola:

# a2enmod status

O modificar directamente el fichero /etc/sysconfig/apache2, añadiendo el módulo:

# vi /etc/sysconfig/apache2

APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex dir env expires include log_config setenvif ssl suexec proxy proxy_connect proxy_http cache mime rewrite  unique_id status"

# service apache2 reload


Configuración del módulo


Definir desde que dirección o red permitiremos el acceso a la información mostrada por el módulo, por ejemplo la red 192.168.0.0/24. Además, activaremos ExtendedStatus para obtener información adicional como el uso de cpu y estadísticas de tráfico y accesos.


# vi /etc/apache2/mod_status.conf
   


# service apache2 reload

Una vez tenemos el modulo configurado solamente nos queda abrir un navegador y acceder a la url:

http://direccion-ip/server-status
http://www.url.com/server-status



Cómo forzar el refresco de la página cada N segundos:

http://direccion-ip/server-status?refresh=3


Cómo mostrar valores en formato máquina, útil para tratar los datos con algún script:

http://direccion-ip/server-status?auto


Cómo mostrar valores en otro formato:

http://direccion-ip/server-status?notable

viernes, 22 de febrero de 2013

Instalación de plugins de Nagios



Procedimiento para instalar o actualizar los plugins oficiales de Nagios, válido tanto para el servidor de Nagios que sea Linux como para los clientes Linux que utilicen NRPE.
La última versión del paquete de plugins es la 1.4.16, del 27-06-2012.

Descarga del paquete


Descargar la última version del paquete desde la página oficial de Nagios:

O acceder directamente a la página del proyecto en SourceForge:

Para ver las mejoras que incorpora la última versión:

Instalación


Compilar e instalar los plugins indicando el directorio de instalación del Core de Nagios,  en nuestro caso /usr/local/nagios. Ejecutar los siguientes comandos en la consola, desde el directorio donde hayamos descargado el paquete:

su - nagios
tar xvfz nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16/
./configure --prefix=/usr/local/nagios
make
make install

La compilación, como siempre, es recomendable realizarla con un usuario sin permisos de administrador, por eso lo hacemos con el propio usuario nagios. Como el usuario nagios es el propietario del directorio /usr/local/nagios, además de la compilación, también puede llevar a cabo la instalación de los plugins.


lunes, 28 de enero de 2013

Cactiplug: Acceder a gráficas de Cacti desde Nagios


catiplug-logo

Cactiplug es un sencillo plugin hecho en php que sirve para enlazar Nagios con Cacti, de forma que desde el interfaz de Nagios se pueda acceder a las gráficas de Cacti con un solo click.

Este plugin nos vendrá muy bien si nuestro entorno de monitorización está basado en Cacti + Nagios y tenemos los clientes monitorizados en ambas plataformas.

Cactiplug  aprovecha la funcionalidad que ofrece Nagios de poder realizar acciones adicionales en sus clientes, a través del parámetro de configuración action_url. Para poder generar las url que servirán de enlaces a Cacti, el plugin consulta los id de los clientes en la base de datos de Cacti.

Preparación del entorno


Por defecto., así es como vemos el estado de un servidor desde la vista Host Groups del interfaz de Nagios:

cactiplug1


Para crear el enlace hacia Cacti, en el fichero hosts.cfg  añadiremos la siguiente línea en las definiciones de aquellos hosts que también tengamos definidos en Cacti:


define host {
    …
    action_url /nagios/cactiplug/cactiplug.php?ip=$HOSTADDRESS
}



Al aplicar este cambio y reiniciar o recargar Nagios, la vista del cliente será esta:

cactiplug2


Si además queremos cambiar el icono de action_url por el de Cacti, tendremos que crear una imagen de 20x20 pixels y guardarla como /usr/local/nagios/share/images/action.gif
Al aplicar este cambio y reiniciar o recargar Nagios, la vista del cliente será esta:


cactiplug3

Instalación de cactiplug.php


Para acceder a la base de datos de Cacti crearemos un usuario nuevo otórgandole únicamente permisos de lectura:


# mysql -u root -p
mysql> GRANT SELECT ON cacti.* TO 'cactiplug'@localhost IDENTIFIED BY 'cactiplug';


Ahora descargamos el script php y recargamos la configuración de Nagios:


# mkdir /usr/local/nagios/share/cactiplug
# cd /usr/local/nagios/share/cactiplug
# wget http://svn.nicolargo.com/cactiplug/trunk/cactiplug.php
# chown -R nagios:nagios /usr/local/nagios/share/cactiplug
# service nagios reload


Configuración de cactiplug.php


Por último, configuramos estas líneas del script para que se puedan hacer las consultas a la BD:


# vi cactiplug.php
$cactiurl="http://ServidorMonitorizacion/cacti";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cactiplug";
$database_password = "cactiplug";


Con estos pasos ya es posible acceder a las gráficas de Cacti desde el interfaz gráfico de Nagios.


Referencias

viernes, 28 de diciembre de 2012

Liberar memoria caché en Linux

A partir de la versión 2.6.16 del kernel es posible liberar la memoria caché del sistema si tenemos privilegios de root, de la siguiente manera:

# sync && echo 3 > /proc/sys/vm/drop_cache
Con sync forzamos una sinrcornización de los datos que hay en caché con los datos que hay en disco. Cuando el comando sync acabe satisfactoriamente, se ejecutará la liberación de memoria caché. Para ver los resultados de vaciar la memoria caché, podemos ejecutar:

# free && sync && echo 3 > /proc/sys/vm/drop_caches && free
Y este es el resultado:

# free && sync && echo 3 > /proc/sys/vm/drop_caches && free
             total       used       free    shared   buffers    cached
Mem:       3986932    3868316     118616         0    145628   3037244
-/+ buffers/cache:     685444    3301488
Swap:      5229148        112    5229036 

             total       used       free    shared   buffers    cached
Mem:       3986932     764760    3222172         0       636     59216
-/+ buffers/cache:     704908    3282024
Swap:      5229148        112    5229036

Otras opciones de liberar memoria caché en Linux:

echo 0 > /proc/sys/vm/drop_cache # el kernel administra la memoria
echo 1 > /proc/sys/vm/drop_cache # liberar pagecache
echo 2 > /proc/sys/vm/drop_cache # liberar dentries e inodes
echo 3 > /proc/sys/vm/drop_cache # liberar pagecache, dentries e inodes

Definiciones:
  • Pagecache: Paginación en memoria caché
  • Dentries: Directory entries, relación estructurada entre directorios y ficheros
  • Inodes: Índice de archivos utilizado por el sistema de ficheros dónde almacena los metadatos de cada archivo (tipo, propietario, permisos, fecha de creación....)

martes, 18 de diciembre de 2012

Tamaño de la partición swap en Linux

La elección del tamaño óptimo para la partición swap dependerá de algunas características de la máquina como:

  • Tamaño de memoria RAM
  • Tamaño de disco
  • Aplicaciones ejecutadas
  • Arquitectura
  • Versión del Sistema Operativo

Debido a estas variantes, no existe una fórmula exacta para calcular el tamaño del espacio swap. Como fórmula general se podría considerar la siguiente como una buena configuración:

0 a 2 GB de RAM SWAP = 2 x RAM
2 a 8 GB de RAM SWAP = RAM
> 8 GB de RAM SWAP = 8 GB


Algunos ejemplos de configuración recomendada por Red Hat:

Red Hat Enterprise Linux 5

0 a 4 GB de RAM SWAP = 2 GB como mínimo
4 a 16 GB de RAM SWAP = 4 GB como mínimo
16 a 64 GB de RAM SWAP = 8 GB como mínimo
64 a 256 GB de RAM SWAP = 16 GB como mínimo
256 a 512 GB de RAM SWAP = 32 GB como mínimo

Red Hat Enterprise Linux 6

0 a 2 GB de RAM SWAP = 2 x RAM
2 a 8 GB de RAM SWAP = RAM
8 a 64 GB de RAM SWAP = 0.5 x RAM
> 64 GB de RAM SWAP = 4 GB