Instalar y configurar Zabbix en Debian 8


Zabbix es un software Open Source diseñado para monitorizar redes, servidores y aplicaciones a tiempo real. Está basado en la arquitectura cliente-servidor. Zabbix es capaz de recolectar información de los  hosts clientes y crear un histórico de su estado. Tiene la habilidad de comprobar servicios de red tales como HTTP, SMPT, IMAP y FTP entre otros, sin la necesidad de instalar software extra en los hosts monitorizados. Sin embargo tendremos que instalar el Zabbix agent en los hosts clientes.

En esta entrada vamos a instalar el servidor Zabbix version 3.0.1  en nuestro Debian GNU/Linux 8.7 (jessie) desde 0 y paso a paso.

 

Paso 1: Instalar software requerido y dependencias.

Zabbix no se encuentra aun en los repositorios de Debian, así que tendremos que instalar los paquetes necesarios para descargarlo (como wget, etc) y recopilarlo de sus propias fuentes.

Este es el comando:

apt-get install build-essential gcc curl wget libsnmp-dev libcurl4-gnutls-dev libxml2-dev
 

Paso 2: Instalar MariaDB y librerías.

En este paso vamos a instalar MariaDB como base de datos, donde Zabbix guardará la información. Al instalarlo nos pedirá que asignemos una clave al usuario root para MariaDB.

apt-get install mariadb-server mariadb-client libmysqld-dev

Una vez instalado ejecutaremos mysql_secure_installation para securizar nuestra base de datos.

mysql_secure_installation

Durante la instalación tendremos que responder algunas preguntas:

Change the root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
 

Paso 3: Instalar servidor apache y PHP.

Ahora vamos a instalar el servidor apache y PHP como lenguaje de programación para que Zabbix pueda trabajar.

apt-get install apache2 php5 php5-mysql php5-gd php5-cli php5-xmlrpc

Una vez instalado tendremos que modificar el archivo php.ini para cumplir los requisitos de Zabbix. Tendremos que buscar y modificar los valores conforme vemos a continuación.

Abrimos php.ini que en nuestro caso se encuentra en:

nano /etc/php5/apache2/php.ini

Y ahora buscamos las siguientes líneas:

post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Europe/Madrid  
always_populate_raw_post_data = -1

Guardamos cambios (ctrl+o) y cerramos (ctrl+x). Para finalizar este paso reiniciamos apache para que se apliquen los cambios.

service apache2 restart
 

Paso 4: Descargar, compilar e instalar Zabbix.

Ahora ya tenemos listo nuestro sistema para compilar e instalar nuestro servidor Zabbix. Entramos en el repositorio de Zabbix y elegimos la versión que nos interesa (botón derecho/copiar enlace). Y ahora lo descargamos. En nuestro caso el wget será el siguiente:

wget http://repo.zabbix.com/zabbix/3.0/debian/pool/main/z/zabbix/zabbix_3.0.1.orig.tar.gz

Ahora descomprimiremos el .tar.gz que nos hemos descargado.

tar -xfz zabbix_3.0.1.orig.tar.gz

y entramos a la carpeta que se acaba de crear.

cd zabbix-3.0.1/

Si lanzamos el comando

./configure -h

podremos ver los parámetros de configuración para nuestro servidor, para un servidor standard de Zabbix usaremos este comando:

./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2

Una vez el software ha sido configurado ejecutaremos un make para crear los binarios de instalación y después make install.

make  
make install
 

Paso 5: Configuración post-instalación.

A continuación vamos a crear una cuenta sin privilegios administrativos y un grupo en el sistema para correr el demonio de Zabbix durante todo el tiempo.

groupadd zabbix
useradd -g zabbix -d /usr/local/share/zabbix -s /bin/false zabbix
 

Paso 6: Configurar MariaDB para Zabbix

Ahora vamos entrar en la base de datos con un usuario con privilegios (root) para preparar la base de datos para que Zabbix pueda usarla, crearemos una base de datos nueva, un usuario y sus privilegios. //OJO con la contraseña//

mysql -u root -p 
MariaDB> create database zabbix;
MariaDB> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'tu_contraseña';
MariaDB> flush privileges;
MariaDB> exit

Después iremos a la carpeta donde extrajimos Zabbix y exportaremos unos archivos .sql que se encuentran en el directorio mysql. Tendremos que ir poniendo la contraseña que habíamos puesto en el paso anterior.

cd zabbix-2.4.5/
mysql -u zabbix -p zabbix < database/mysql/schema.sql
mysql -u zabbix -p zabbix < database/mysql/images.sql
mysql -u zabbix -p zabbix < database/mysql/data.sql

 

Paso 7: Configurar servidor Apache para Zabbix.

Una vez exportadas las tablas, copiaremos todos los archivos de configuración de frontend de php. Nosotros vamos a crear una carpeta en nuestro servidor para Zabbix, aunque esta parte es opcional, podemos copiar los archivos donde queramos.

mkdir /var/www/html/zabbix
cp -rf frontends/php/* /var/www/html/zabbix

Ahora vamos a añadir al ususario zabbix al grupo www-data (grupo de apache) para que pueda hacer cambios en el servidor web. Además habilitaremos los módulo ssl para mayor seguridad. Por último reiniciamos el servidor apache

usermod -aG www-data zabbix 
a2enmod ssl
a2ensite default-ssl
service apache2 restart

 

Paso 8: Configurar Zabbix server.

En este paso vamos configurar Zabbix para su buen funcionamiento. Abrimos su archivo de configuración y descomentamos o añadimos estos valores.

nano /usr/local/etc/zabbix_server.conf

Y una vez abierto, lo dejamos como vemos a continuación.

ListenPort=10051
LogFile=/var/log/zabbix_server.log
DBHost=localhost   ## Reemplazar por la IP si tenemos la base de datos en otro host
DBName=zabbix  ## Usar el nombre de la base de datos que hemos creado para Zabbix
DBUser =zabbix   ## Usamos el nombre del usuario que hemos creado 
DBPassword=contraseña  ## contraseña de Zabbix MYSQL base de datos.
DBSocket=/var/run/mysqld/mysqld.sock
DBPort=3306

Ahora crearemos un log para que sea usado por Zabbix y le daremos los permisos necesarios.

touch /var/log/zabbix_server.log
chmod 775 /var/log/zabbix_server.log
chgrp zabbix /var/log/zabbix_server.log

Finalmente iniciaremos el servidor y agente Zabbix.

/usr/local/sbin/zabbix_server
/usr/local/sbin/zabbix_agentd

Con el siguiente comando podremos ver como los demonios de Zabbix están activos y escuchando.

netstat -tulpn

 

Paso 9: Instalar Zabbix desde la interfaz gráfica.

El siguiente paso consistirá en entrar mediante nuestro navegador a nuestro servidor web y acceder a la carpeta donde hemos movido los archivos de configuración de PHP.

http://tu_ip/zabbix
o
https://tu_ip/zabbix

Se nos iniciará el asistente de configuración de Zabbix. Tan sólo tenemos que leer lo que nos pide.

Aquí veremos los cambios que hemos hecho en el php.ini, si lo hemos hecho bien estará todo en verde y le daremos a next. En el caso contrario nos tocará revisar nuestro php.ini.

En la siguiente pantalla veremos la configuración de la base de datos.

Y ahora configuraciones como el puerto, host y nombre de la instalación (opcional).

Antes de continuar, es muy importante modificar los permisos necesarios para que Zabbix pueda guardar dicha configuración.

chown -R www-data /var/www/

A continuación de darle a next veremos el resumen de la instalación, si todo está bien le daremos a next.

Y como vemos que se ha creado el archivo con éxito le damos a finish.

Una vez creado el archivo dejamos los permisos como estaban.

chown -R root /var/www/

Ahora si entramos a http://tu_ip/zabbix veremos un login el cual será por defecto:

Username: admin
Password: zabbix

Recomendamos cambiar la contraseña por defecto y poner algo más seguro.

Y aquí tendremos nuestro servidor Zabbix en funcionamiento.

Para acabar esta guía vamos a hacer que los demonios de Zabbix se pongan en marcha cada vez que se inicie el sistema, para ello abrimos el archivo /etc/rc.local.

nano /etc/rc.local

Y añadimos esto antes del exit 0:

/usr/local/sbin/zabbix_server
/usr/local/sbin/zabbix_agentd

Y esto es todo, espero que os sirva de ayuda! Saludos.

3 comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.