Monitorización del sistema con Cacti y Arduino (parte 1): Instalación
Cacti es un sistema de monitorización de sistemas basado en RRDtool, una herramienta de Tobias Oetiker. El funcionamiento es bastante simple: cada X tiempo se ejecuta la recogida de datos y se insertan en la base de datos RRD (se trata de colas circulares), y cuando se lo solicitamos, nos muestra los datos de forma gráfica. La recogida se puede hacer por SNMP, o por scripts.
Manos a la obra. ¿Cómo lo instalamos? Muy fácil:
apt-get install cacti cacti-spine snmpd snmp-mibs-downloader
Durante la instalación también nos instalará el servidor de bases de datos MySQL y nos pedirá dos veces la contraseña que queramos ponerle al usuario root de MySQL. También nos pedirá que le digamos que servidor web vamos a usar: apache2, y si queremos que nos autoconfigure la base de datos para cacti con la herramienta dbconfig-common, a lo que le responderemos que sí. Al hacerlo nos solicitará la contraseña del usuario root de MySQL, y la que queremos ponerle al usuario cacti que creará para usar la base de datos.
Una vez tenemos todo instalado la configuración inicial de cacti se lleva a cabo accediendo a su web: http://ip_servidor/cacti, donde veremos las siguientes pantallas:
Entramos la primera vez con admin/admin y nos forzará a cambiar la contraseña del usuario admin:
Antes de nada y después de los pasos anteriores, hay que configurar el demonio snmpd para que podamos obtener toda la información disponible del sistema local. Para ello vamos al fichero de configuración /etc/snmp/snmpd.conf y modificamos las lineas SysLocation y SysContact con la ubicación del sistema y nuestro correo electrónico. Además para que desde cacti podamos leer cualquier información que nos proporcione el demonio snmp debemos añadir la linea:
view systemonly included .1
Reiniciamos el servicio:
/etc/init.d/snmpd restart
Edición básica de un dispositivo
Hecho esta ya tenemos el sistema listo para ser monitorizado. Ahora debemos editar el host local y lo hacemos haciendo clic en Devices y luego en Localhost (que es el nombre que le da por defecto al sistema local):
Editamos el host de forma que las opciones marcadas con los recuadros queden como en la imagen siguiente:
Si todo ha funcionado correctamente, nos lo indicará en la siguiente pantalla con un Save successful, mostrándonos algo más de información del host, y varios tipos más de gráficas que podremos usar:
Primeras gráficas
Ahora vamos a crear alguna gráfica con los datos que cacti obtendrá mediante snmp del host local. El uso de CPU, la carga, el uso de memoria, las estadśticas de red, y el espacio libre de disco.
En la parte superior de la pantalla, a la derecha, en azul tenemos la opcion Create Graphs for this Host, hacemos clic en ella, y nos aparecerá una nueva ventana para que marquemos las nuevas gráficas que queremos crear:
En cuanto pulsemos en create, empezará el sistema a recopilar la información cada 5 minutos, y transcurridos unos minutos podremos visualizarlas con los primeros datos. Si tido ha ido bien en la parte superior de la pantalla deberíamos tener el siguiente mensaje de estado como resultado de la creación de las gráficas:
Cambiando el recolector de datos
Por defecto, en la instalación de cacti, la recolección de los datos que luego se mostrarán en las gráficas se hace con un script en PHP, que no es muy eficiente si tenemos mucha información que procesar. Como mejora existe un recolector (poller) programado en C que se llama spine y que funciona mucho mas rápido. Para usarlo debemos ir a Settings -> Poller y cambiarlo a spine:
Tras unas horas funcionando, tenemos estas gráficas de uso en una Odroid U3:
Espero que os haya gustado, yo le veo muchísima utilidad a este sistema. Si tenéis un servidor de descargas, os será útil para ver el consumo de espacio en disco, por ejemplo. En otras entradas os iré explicando como generar gráficas para cualquier información que podamos conseguir con un script, como el nivel de señal de un router 3G, la temperatura del procesador, o cualquier cosa que se os ocurra. Además existen utilidades para Android para ver las gráficas que generemos con el móvil como CactiViewer, vamos que el saber ya no ocupa lugar.
Muchas gracias por compartir tus conocimientos con los demás. Sigo muy de cerca todos tus proyectos y la verdad es que saco bastante utilidad y conocimientos de todos ellos.
Gracias y muy buen post 🙂
Gracias a ti por el comentario 🙂
Es lo menos que podía hacer por la comunidad, ya que yo también voy aprendiendo de lo que leo en otros blogs. Además, teniéndolo todo bien documentado aquí, cuando alguna cosa me falla no tengo mas que copiar y pegar comandos o ficheros (que es muchísimo mas rápido que tener que buscar otra vez toda la información, hacer pruebas, …)