Buscar


imprimir pdf Español

Añadir gráficos de vigilancia en su servidor


Introducción

El sistema MRTG es un proceso que genera a intervalos regulares uno o varios gráficos.

Cada gráfico necesita una serie de 4 valores para estar siempre al día.
El sistema MRTG hace uso a través de un fichero de configuración, a un script que se encarga de interrogar el valor que necesitamos monitorizar y devuelve la serie de 4 valores a partir de él.

Procedimiento

Si ya ha instalado las gráficas MRTG con ayuda de nuestra guía, debería tener un fichero de configuración del tipo: mrtg_nsXXXXX.ovh.net.cfg
En el cual nsXXXXX representa el nombre de su servidor dedicado.


Para cada nuevo elemento que necesitamos añadir al gráfico, basta con añadir una sección del tipo:


[root@nsXXXXX /]# more /home/ovh/www/mrtg/mrtg-sys/mrtg_nsXXXXX.ovh.net.cfg


Target[nsXXXXX.ovh.net_dns]: `/home/ovh/www/mrtg/mrtg-sys/dns.pl`
PageTop[nsXXXXX.ovh.net_dns]: <h1>Peticiones DNS</h1>
Options[nsXXXXX.ovh.net_dns]: growright, perhour, noi
MaxBytes[nsXXXXX.ovh.net_dns]: 1000000
Title[nsXXXXX.ovh.net_dns]: Peticiones DNS
YLegend[nsXXXXX.ovh.net_dns]: pet/hora
LegendO[nsXXXXX.ovh.net_dns]: Peticiones DNS
Legend2[nsXXXXX.ovh.net_dns]: Peticiones DNS a la hora
ShortLegend[nsXXXXX.ovh.net_dns]: /hora



Y el gráfico aparecerá en nuestra página de MRTG.

Target[nsXXXXX.ovh.net_dns] especifica el nuevo gráfico que deseamos generar con MRTG


El script /home/ovh/www/mrtg/mrtg-sys/dns.pl será el que se llame a cada vez que MRTG necesite actualizar el gráfico, deberá devolver los 4 valores que representan la actividad del elemento monitorizado.

El resto de campos de la sección son las diferentes opciones del gráfico.

Para que los gráficos añadidos en MRTG se muestren a través de la página habitual, deberá regenerar el index a cada nueva modificación.

Para ello deberá repetir la secuencia de comandos siguiente:

Instalación a partir de fuentes:

# cd /home/ovh/www/mrtg
# /usr/local/mrtg-2/bin/indexmaker --output=index.html /home/ovh/www/mrtg/mrtg-sys/mrtg_nsXXXX.ovh.net.cfg



Instalación a partir de RPM:

# cd /home/ovh/www/mrtg
#/usr/bin/indexmaker --output=index.html /home/ovh/www/mrtg/mrtg-sys/mrtg_nsXXXX.ovh.net.cfg



Ejemplo de nuevos gráficos

Cualquier script puede utilizarse para monitorizar su servidor.

La mayoría de los que existen están ya en la carpeta /home/ovh/www/mrtg/mrtg-sys/ están realizados en Perl, pero se puede utilizar Bash, Python, etc...


La única condición es que el resultado sean 4 valores en 4 líneas, uno por línea.

Puede emplazar sus nuevos scripts en el mismo directorio y darle los permisos adecuados:


# chown ovh.ovh /home/ovh/www/mrtg/mrtg-sys/nouveau_script.pl
# chmod 705 /home/ovh/www/mrtg/mrtg-sys/nouveau_script.pl



Los siguientes scripts son ejemplos de gráficos que puede añadir.

Es fácil monitorizar otros elementos como la temperatura del procesador o el tamaño de la cola del servidor de correo.

Para ello basta con crear el script que devuelve los valores adecuados.

Peticiones DNS

Este gráfico nos permite monitorizar el número de peticiones tratadas por su servidor DNS cada hora.
Vamos a utilizar el comando /usr/sbin/rdnc stats.

Si este comando nos devuelve un error, deberá solucionar el problema a través de la guía del servidor DNS : BindServidorDns


Este comando crea un fichero /var/named/named.stats que contiene las estadísticas del servidor DNS.

Basta recuperar el valor del parámetro recursion para conocer el número de peticiones tratadas.

MRTG se encargará entonces de hacer una media de las peticiones cada hora.

El script que será utilizado es el siguiente :


[root@nsXXXXX mrtg-sys]# more dns.pl
#! /usr/bin/perl

$dummy = `rm -rf /var/named/named.stats`;
$dummy = `/usr/sbin/rndc stats`;
$data = `tail -3 /var/named/named.stats | head -1 | cut -f 2 -d " "`;
print $data;
print $data;
print "0
0"


Y la sección a añadir en el fichero de configuración de MRTG:


Target[nsXXXXX.ovh.net_dns]: `/home/ovh/www/mrtg/mrtg-sys/dns.pl`
PageTop[nsXXXXX.ovh.net_dns]: <h1>Peticiones DNS</h1>
Options[nsXXXXX.ovh.net_dns]: growright, perhour, noi
MaxBytes[nsXXXXX.ovh.net_dns]: 1000000
Title[nsXXXXX.ovh.net_dns]: Peticiones DNS
YLegend[nsXXXXX.ovh.net_dns]: pet/hora
LegendO[nsXXXXX.ovh.net_dns]: Peticiones DNS
Legend2[nsXXXXX.ovh.net_dns]: Peticiones DNS a la hora
ShortLegend[nsXXXXX.ovh.net_dns]: /hora


Donde nsXXXXX es su número de servidor.


Le indicamos a MRTG que deseamos trazar el número de peticiones a la hora mediante la opción perhour.
MRTG está preparado para trazar dos curbas en el mismo gráfico. Podemos forzar que sólo se trace una única curva mediante la opción noi.
Al mismo tiempo, para que la curba sea la azul, sólo le indicamos los parámetros LegendO et Legend2.

Temperatura del disco duro

Es posible monitorizar la temperatura de su disco duro.
Para ello, vamos a utilizar hddtemp.
Puede encontrar el procedimiento para instalar esta utilidad a través de un paquete RPM en el ejemplo de la guía: EjemplosCompilacion .

Una vez instalada, vamos a poner en marcha la base de discos duros reconocidos por hddtemp:
Une fois installé, nous allons mettre en place la base des disques durs reconnus


[root@nsXXXXX /]# cp /usr/share/misc/hddtemp.db /etc/hddtemp.db



Un pequeño test para el disco duro principal


[root@nsXXXXX /]# hddtemp -f /etc/hddtemp.db -n /dev/hda
32



Si usted obtiene un warning, significa que su disco no está reconocido en la base.
En ese caso, podremos determinar los parámetros gracias al comando:


[root@nsXXXXX /]# hddtemp -D /dev/hda

Model: ST340014A

field(1) = 90
field(7) = 87
field(9) = 237
field(12) = 22
field(194) = 39
field(195) = 90



Basta con conseguir el modelo del disco y el valor del campo que corresponde a la temperatura del disco y añadir la línea al final del fichero /etc/hddtemp.db.

En nuestro ejemplo, la línea será:

"Model: ST340014A" 194 C "ST340014A"



Y a continuación se construye el script que se utilizará por MRTG:


[root@nsXXXXX mrtg-sys]# more hddtemp.sh
#! /bin/sh

drive=$1

line=`/usr/bin/hddtemp -f /etc/hddtemp.db -n $drive`

echo $line
echo $line
uptimed=`uptime | awk '{print $3 $4}'`
echo $uptimed
echo $drive




Por último se añade la sección en el fichero de configuración de MRTG:


Target[nsXXXX.ovh.net_temphda]: `/home/ovh/www/mrtg/mrtg-sys/hddtemp.sh /dev/hda`
PageTop[nsXXXX.ovh.net_temphda]: <h1>Temperatura de /dev/hda</h1>
Options[nsXXXX.ovh.net_temphda]: growright, gauge ,noi
MaxBytes[nsXXXX.ovh.net_temphda]: 200
Title[nsXXXX.ovh.net_temphda]: Temperatura de /dev/hda
Ylegend[nsXXXX.ovh.net_temphda]: Temperatura
Legend2[nsXXXX.ovh.net_temphda]: Temperatura /dev/hda
LegendO[nsXXXX.ovh.net_temphda]: hda
ShortLegend[nsXXXX.ovh.net_temphda]: °C



Como anteriormente, decimos a MRTG que trace una sola curva en azul sobre el gráfico.
La temperatura del disco está monitorizada en grados Celsius.

Por supuesto, es posible monitorizar otro disco cambiando el parámetro que se le pasa al script.
(El disco de backup por ejemplo)


Peticiones Apache

Su servidor dedicado se entrega con el módulo mod_status para Apache.

Este módulo nos permite ver un cierto número de cosas a propósito del servidor Apache en la URL:
http://nsXXXXX.ovh.net/ovh-status/

Vamos a utilizar la versión simplificada de esta página para monitorizar el número de peticiones por hora tratadas por Apache.

Para que nuestro script pueda acceder a esta página, basta con verificar que el fichero de configuración httpd.conf incluye una sección del tipo.



SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>



Para más detalles, consulte la guía : ConfigurarYUtilizarServerStatus

Necesitaremos también tener lynx isntalado en el servidor.


A continuación construimos el script que será utilizado por MRTG:


[root@nsXXXXX mrtg-sys]# more apache_hits.pl

#!/usr/bin/perl


$dummy = `lynx -dump http://localhost/ovh-status?auto`;

$dummy =~ /Total Accesses: (d+)/;
$d1 = int($1);

print "$d1
";
print "$d1
";
print "0
0";


Y por último añadimos el gráfico en el fichero de configuración de MRTG:



Target[nsXXXXX.ovh.net_apachehits]:`/home/ovh/www/mrtg/mrtg-sys/apache_hits.pl`
PageTop[nsXXXXX.ovh.net_apachehits]: <h1>Peticiones Apache</h1>
Options[nsXXXXX.ovh.net_apachehits]: growright, perhour, noi
MaxBytes[nsXXXXX.ovh.net_apachehits]: 1000000
Title[nsXXXXX.ovh.net_apachehits]: Tráffico Apache
Ylegend[nsXXXXX.ovh.net_apachehits]: peticiones/hora
Legend2[nsXXXXX.ovh.net_apachehits]: Peticiones por hora
LegendO[nsXXXXX.ovh.net_apachehits]: Peticiones por hora
ShortLegend[nsXXXXX.ovh.net_apachehits]: /hora



La presentación del número de peticiones por hora, está gestionada por el parámetro perhour

Tráfico Apache

Como para las peticiones, podemos monitorizar el débito del servidor Apache, es decir, el número de bytes por segundo que se tratan en el servidor.


Vamos a utilizar la misma página, luego hay que comprobar que los accesos están autorizados como en el ejemplo anterior.

Primero se construye el script que se utilizará por MRTG:


[root@nsXXXXX mrtg-sys]# more apache_traffic.pl
#!/usr/bin/perl

$dummy = `lynx -dump http://localhost/ovh-status?auto`;

$dummy =~ /Total kBytes: (d+)/;
$d1 = int($1*1024);

print "$d1
";
print "$d1
";
print "0
0";



Y a continuación la sección a añadir en el fichero de configuración de MRTG:


Target[nsXXXXX.ovh.net_apachetraffic]:`/home/ovh/www/mrtg/mrtg-sys/apache_traffic
PageTop[nsXXXXX.ovh.net_apachetraffic]: <h1>Tráfico Apache</h1>
Options[nsXXXXX.ovh.net_apachetraffic]: growright, noi
MaxBytes[nsXXXXX.ovh.net_apachetraffic]: 16000
Title[nsXXXXX.ovh.net_apachetraffic]: Tráfico Apache
Ylegend[nsXXXXX.ovh.net_apachetraffic]: Bytes/s
Legend2[nsXXXXX.ovh.net_apachetraffic]: Tráfico Apache
LegendO[nsXXXXX.ovh.net_apachetraffic]: Tráfico Apache
ShortLegend[nsXXXXX.ovh.net_apachetraffic]: Bytes/s



Más información

: SitoOficial :: El sitio oficial de MRTG
: ManualdeReferencia :: Manual de referencai para saber las opciones del fichero de configuración

: BindServidorDns :: Algunos trucos para el servidor dns bind (named).
: EjemplosCompilacion :: Algunos ejemplos de compilación RPM.
: ConfigurarYUtilizarServerStatus :: ¿Como configurar y utilizar el servidor status con Apache?