Instalar MRTG y Snmp en Raspberry

mrtg

MRTG (Multi router traffic grapher) es una aplicación de libre distribución desarrollada  inicialmente para Unix/Linux, y comunmente utilizada para la monitorización de la carga/tráfico de routers y servidores de red a través del protocolo Snmp.

capt1

Instalación de Snmp en Raspberry:

El servicio Snmp no viene instalado por defecto en Raspbian, por lo que si queremos activarlo necesitaremos instalarlo:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install snmpd snmp

Para que nuestra Raspberry sea accesible desde  cualquier otro equipo de la red necesitaremos abrir el fichero de configuración:

sudo nano /etc/snmp/snmpd.conf

Y hacer un par de cambios:

Sustituiremos la línea

agentAddress udp:127.0.0.1:161

por

agentAddress 161

Una vez hecho esto, en la línea siguiente a ‘#rocommunity public localhost‘ insertaremos:

recommunity public

Saldremos guardando los cambios con CTRL + X, confirmando a continuación con S ó Y.

Para que la nueva configuración surta efecto bastará con reiniciar el servicio con:

service snmpd restart

Instalación y configuración de MRTG en Raspberry:

Para insalar MRTG:

sudo apr-get install mrtg

Durante la instalación se nos preguntará si queremos que el fichero de configuración sea accesible únicamente por el ‘root’ , en nuestro caso por motivos de seguridad indicaremos que si.

MRTG necesita tener instalado un servidor web, si no lo tenemos instalado, podemos instalar Apache con:

sudo apt-get install apache2

creando a continuación el directorio en el que posteriormente se publicarán los datos de MRTG:

mkdir /var/www/html/mrtg

Configuración de MRTG:

La forma más fácil de añadir un dispositivo configurando MRTG de manera automática es a través de la herramienta  cfgmaker , que forma parte del paquete MRTG y accesible desde la línea de comandos.

Siguiendo nuestro ejemplo, para añadir a MRTG una Raspberry que tiene como dirección IP la 192.168.2.29 y tiene Snmp instalado:

sudo cfgmaker  public@192.168.2.29 >> /etc/mrtg.cfg

Accesible y modificable con:

sudo nano /etc/mrtg.cfg

Del que podemos salir e cualquier momento con  CTRL + X, pulsando a continuación  S ó si hemos realizado cambios y queremos guardarlos.

(*) En del momento de preparar este tutorial MRTG no había ajustado su ruta de trabajo a la utilizada en las versiones más reciente de Apache. Usando /var/www/mrtg en lugar de /var/www/html/mrtg  , por lo que para que MRTG funcionara correctamente he tenido que modificar la ruta de trabajo a /var/www/html/mrtg en varios apartados del fichero de configuración. Por favor tenedlo en cuenta o os podéis encontrar con que MRTG no os funciona.

Una vez hecho lo anterior, necesitaremos generar un nuevo index.html,   que nos permita tener acceso a los datos del dispositivo que hemos añadido, mediante de la siguiente instrucción:

indexmaker /etc/mrtg.cfg > /var/www/html/mrtg/index.html

Podremos ver el resultado iniciando mrtg manualmente con:

service mrtg start

Aunque lo suyo sea crear un servicio de manera que MRTG se ejecute automáticamente cada vez que se reinicie el sistema:

sudo nano /etc/init.d/mrtg

Se abrirá el editor de texto y en su interior pegaremos lo siguiente:

#! /bin/sh
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="MRTG"
NAME="mrtg"
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="/etc/mrtg.cfg –user root --logging /var/log/mrtg.log"

case "$1" in
  start)
        echo "Starting $DESC..."
        env LANG=C $DAEMON $DAEMON_ARGS
        echo "$NAME started."
        ;;
  stop)
        echo "Stopping $DESC..."
        pkill $NAME &> /dev/null
        echo "$NAME stopped."
        ;;
  *)
        FULL_NAME=/etc/init.d/$NAME
        echo "Usage: $FULL_NAME {start|stop}." >&2
        ;;
esac
exit

Guardando a continuación los cambios con CTRL + X, pulsando continuación S ó Y para confirmar.

Una vez hecho le daremos al fichero permisos de ejecución con:

sudo chmod +x /etc/init.d/mrtg

Y programaremos su ejecución automática cada vez que se reinicie el sistema con:

update-rc.d mrtg defaults

Llegados a este punto podemos reiniciar el sistema con:

sudo shutdown -r now

O reiniciar el servicio para que los cambios tomen efecto con:

sudo service mrtg restart

Una vez hecho esto habrá llegado el momento de probar si todo funciona, abriendo nuestro navegador e informando la siguiente URL:

http://ipderaspberryservidormrtg/mrtg

Que en el caso de mi Raspberry muestra lo siguiente:

capt2

Si queremos profundizar más en las estadísticas podemos hacerlo  haciendo click en el gráfico, lo cual nos mostrará algo parecido a lo siguiente:

capt3

Voy a ver como sacarle partido a MRTG para sacar gráficos de las estadísticas de mi servidor NTP stratum 1 (alteageek.homelinux.org) .  En cuando lo tenga en marcha publicaré como hacerlo.

Saludos y hasta el próximo post.

Santi