domingo, 1 de noviembre de 2015

INSTALACIÓN DE ZABBIX EN NUESTRA RASPBERRY PI

"Zabbix "es una solución de monitorización de redes, de software gratuito y de código abierto (“open source”), que puede monitorizar muchos de los parámetros que intervienen en la red y analizar el estado de salud de la misma.
Esto nos permite una rápida reacción ante cualquier problema relacionado con nuestra red interna o externa, y también poder anticiparse ante cualquier fallo crítico.

"Zabbix" nos permitirá monitorizar todos los dispositivos que sean más críticos de nuestra red doméstica (un "nas",  un "router",  la propia Raspberry,..).

Personalmente, lo considero el mejor software de monitorización gratuito, muy lejos de otros competidores como por ejemplo Nagios.

En este tutorial instalaremos y configuraremos la versión 2.4 de "Zabbix" en Raspbian. 

Para el correcto funcionamiento de Zabbix necesitaremos un servidor Web con soporte PHP, y para registrar y depositar los datos utilizaremos un servidor MySQL. Además es necesario que PHP tenga soporte GD y las librerías para CURL, JABBER y SNMP así como los elementos necesarios para la compilación.

Empezaremos instalando todos los paquetes necesarios que este necesita:

$ sudo apt-get install make gcc libc6-dev libmysqlclient-dev libcurl4-openssl-dev libssh2-1-dev libsnmp-dev libiksemel-dev mysql-server libopenipmi-dev fping php5-gd snmp libsnmp-base openjdk-6-jdk unixodbc unixodbc-dev libxml2 libxml2-dev snmp-mibs-downloader snmpd python-pywbem php5-ldap php5-mysql

En un momento determinado de la instalación se nos pedirá que asignemos una contraseña para el usuario "root" en "MySQL". Introducimos la que mas nos plazca. En nuestro ejemplo es "zabbix":












Una vez instalados, pasaremos a descargar desde el código fuente la aplicación "Zabbix".
Nos vamos al directorio donde lo instalaremos:

$ sudo /usr/src

Descargamos el repositorio desde la web:

$ sudo wget "http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.4.4/zabbix-2.4.4.tar.gz"

Descomprimimos el archivo con el comando tar:

$ sudo tar -xzvf zabbix-2.4.4.tar.gz

Se nos habrá creado un nuevo directorio llamado "Zabbix-2.4.4" .

Para nuestra configuración introducimos el siguiente script (tenemos que estar dentro del nuevo directorio Zabbix-2.4.4 ):

$ sudo ./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-openipmi --with-ssh2 --with-libxml2 --enable-ipv6 --enable-java --with-jabber --with-unixodbc --with-ldap


Para compilar el código usamos "make":



$ sudo make



Ahora instalamos los programas con el comando "make install":

$ sudo make install



El siguiente paso será crear el usuario "zabbix". Este se encarga de la ejecución y de las secuencias de comandos del entorno "Zabbix". 
Con el  siguiente comando se crea el usuario con una "UID" de sistema, se deniega el inicio de sesión interactivo y dirige su directorio principal al directorio de la instalación Zabbix:

$ sudo adduser --system --home /usr/local/sbin --no-create-home zabbix

Nos logueamos ahora en la base de datos MYSQL como root:

$ mysql –u root -p

Creamos una base de datos con el nombre de "zabbix":

>create database zabbix;

Otorgamos los permisos necesarios para que el usuario "zabbix" pueda controlar la base de datos creada desde nuestra Raspberry:

>grant all on zabbix.* to zabbix@localhost identified by 'zabbix';

Salimos de MYSQL:

>quit

Una vez creada la base de datos, vamos a importar las plantillas, construir las tablas y poblar la base de datos:

$ sudo mysql -u zabbix --password=zabbix zabbix </usr/src/zabbix-2.4.4/database/mysql/schema.sql

$ sudo mysql -u zabbix --password=zabbix zabbix </usr/src/zabbix-2.4.4/database/mysql/images.sql

$ sudo mysql -u zabbix --password=zabbix zabbix </usr/src/zabbix-2.4.4/database/mysql/data.sql

Ahora haremos algunos ajustes en el fichero de configuración de "Zabbix":

$ sudo nano /usr/local/etc/zabbix_server.conf

Cambiaremos los siguientes parámetros:

DBHost=localhost # Servidor de la base de datos.
DBName=zabbix # Nombre de la base de datos.
DBUser=zabbix # Usuario de la base de datos
DBPassword=zabbix # Contraseña de la base de datos
Timeout=30 # Tiempo en segundos que tiene que esperar el agente.
ExternalScripts=/usr/local/share/zabbix/externalscripts # Archivo para los scripts externos.
AlertScriptsPath=/usr/local/share/zabbix/alertscripts # Archivo para los scripts de alertas.
FpingLocation=/usr/bin/fping # Directorio del binario "Fping" para comprobar la conectividad de los "hosts".

Es importante que "Zabbix" se inicie automáticamente en el arranque del sistema. Para ello copiaremos los scripts de inicio de Zabbix en el directorio "/etc/init.d":

$ sudo cp /usr/src/zabbix-2.4.4/misc/init.d/debian/zabbix-* /etc/init.d/

Posteriormente abrimos el archivo "/etc/rc.local" y añadimos los scripts para que el servidor y el agente se ejecuten al iniciar el sistema:

$ sudo nano /etc/rc.local

Insertamos estas líneas:

/etc/init.d/zabbix-server start
/etc/init.d/zabbix-agent start 

Reiniciamos la Rasperry y ejecutamos el siguiente comando para comprobar que los servicios se han iniciado correctamente:

$ sudo ps aux | grep zabbix

 

Lo último que nos falta configurar es el "Frontend".
"Zabbix" se apoya en la interfaz web con la que el usuario puede administrar fácilmente el servidor. Para configurar "apache2" copiaremos los archivos necesarios en la carpeta que por defecto utiliza dicho programa:


$ sudo cp -R /usr/src/zabbix-2.4.4/frontends/php/* /var/www



Ahora asignaremos los permisos de los directorios y archivos para el usuario y grupo "www-data", y eliminaremos el archivo "index.html" del servidor Web:

$ chown -R www-data:www-data /var/www/*
$ sudo rm /var/www/index.html



Para que todo funcione correctamente debemos cambiar ciertos parámetros de "PHP" que por defecto son insuficientes para que el servicio funcione correctamente. Editamos el archivo "php.ini":

$ sudo nano /etc/php5/apache2filter/php.ini

Modificamos los siguientes parámetros:

post_max_size = 16M
max_execution_time = 600
max_input_time = 600
date.timezone = Europe/Madrid

Para que estos ajustes tomen efecto, reiniciamos "apache2"

$ sudo apache2ctl restart


Ahora procederemos a la configuración del "Frontend". Para ello, accederemos a él mediante la ip o con el nombre de nuestro servidor con el navegador que deseemos.

http://ip_o_nombre_de_la_raspberry/


Se nos mostrará un asistente de configuración.















Observamos que cumplimos todos los requisitos. En caso de que no cumpliéramos alguno, deberíamos modificarlo en el archivo "php.ini".
















Tenemos ahora que especificar la base de datos, usuario y password , además del tipo de base de datos y el puerto de escucha, que configuramos en "zabbix-server.conf".





























Ya tenemos nuestro nuestro "Frontend" listo.
















 

Nos aparecerá una ventana para introducir nuestras credenciales, que serán "admin/zabbix", y ya podremos configurar las alertas,"triggers", gráficos,... a nuestro antojo.














Es importante resaltar que el rendimiento de "Zabbix" depende directamente de la capacidad hardware de nuestra Rapsberry, por lo que al estar manejando constantemente una base de datos es aconsejable solo monitorizar una pequeña red local. En mi caso, tengo monitorizados 5 host dentro de mi LAN.
En el siguiente tutorial veremos como instalar los agentes "Zabbix" en Windows y Linux, para monitorizar host basados en esas dos plataformas.

Hasta otra....

No hay comentarios:

Publicar un comentario