En esta oportunidad vamos a tratar un tema muy interesante para nuestro rol como administradores TI, y éste tiene que ver con la herramienta Zabbix, vamos a usar la versión 2.4.5 y analizaremos su función principal, cómo nos puede ayudar en nuestra gestión y en general sus múltiples facetas. En muchas ocasiones cometemos el error de instalar aplicaciones y no nos detenemos a analizar su alcance, sus características y otras tareas que podemos realizar con las mismas y, quizás por desconocimiento, no las explotamos al máximo.
Vamos a hablar un poco acerca de Zabbix, la herramienta Zabbix es un software de código abierto que nos brinda la posibilidad de monitorear en tiempo real los servidores, la red y las diversas aplicaciones en nuestra organización y nos permite generar gráficos para tener un concepto más claro de nuestra infraestructura.
Otras de sus muchas características son las siguientes
- Recolección de datos
- Verificación de rendimiento
- Soporta SNMP, IPMI, JMX y VMware
- Reportes personalizados
- Podemos crear reportes por servidor o por agente
Además Zabbix tiene una gran escalabilidad, ya que permite monitorear hasta 100.000 dispositivos, más de un millón de métricas, entre otras. Como vemos es una herramienta muy poderosa que nos permitirá llevar un control preciso de cada recurso que tengamos disponible.
En este estudio vamos a conocer su instalación en los siguientes entornos:
- Debian 8
- RED HAT 7
- CentOS 7
Zabbix tiene la capacidad de monitorear los servicios de red estándar como HTTP, FTP, SMTP, etc sin tener que instalar paquetes adicionales. Vamos a proceder con la instalación y configuración de Zabbix teniendo presente los siguientes parámetros:
Comenzaremos el proceso de instalación de Zabbix usando un entorno de Debian 8 Jessie el cual puede ser descargado desde su web.
El primer paso a ejecutar será realizar la instalación de los paquetes necesarios para ejecutar Zabbix, para ello ingresaremos los siguientes comandos:
En Debian 8:
sudo apt-get install build-essential gcc curl wget libsnmp-dev libcurl4-gnutls-dev libxml2-devEn RED HAT / CentOS 7:
yum install gcc gcc-c++ make openssl-devel curl wget net-snmp net-snmp-utils net-snmp-libs net-snmp-devel gnutls gnutls-devel libxml2 libxml2-devel
Vemos que se procederá a la descarga y respectiva instalación de los paquetes, aceptamos la descarga.
El siguiente paso que debemos ejecutar es instalar la base de datos, allí se almacenarán nuestros reportes, instalaremos MariaDB (Es la que está reemplazando actualmente a MySQL) y sus librerías. Para instalar MariaDB ejecutaremos el siguiente comando:
En Debian 8:
sudo apt-get install mariadb-server mariadb-client libmysqld-dev (si estamos como root suprimir el sudo)En RED HAT / CentOS 7:
yum install mariadb-server mariadb-client mariadb-develComenzará el proceso de descarga, aceptamos la descarga para que el Sistema la realice e instale MariaDB en nuestro Sistema.
En un momento de la instalación de MariaDB el sistema nos solicitará la contraseña del usuario root de la base de datos, debemos ingresarla y confirmarla (recordemos que debe ser una contraseña segura).
Podemos ver que la instalación de MariaDB ha sido satisfactoria.
El siguiente paso que realizaremos es crear un parámetro de seguridad a nuestra base de datos, para ello ingresaremos el comando:
mysql_secure_installationVeremos que se despliega lo siguiente:
Debemos ingresar la contraseña que hayamos configurado para el usuario root.
A continuación vamos a configurar los parámetros de seguridad, simplemente debemos aceptar o no las preguntas que indica el sistema:
- La primer opción nos indica si deseamos cambiar la contraseña del usuario root, en este caso ingresaremos la letra n (No).
- La siguiente pregunta tiene que ver con los usuarios anónimos, es recomendable borrarlos por temas de seguridad, ingresaremos la letra y (Yes).
- La siguiente opción tiene que ver con el acceso remoto del usuario root, igual por temas de acceso y seguridad lo mejor es deshabilitar esta opción, ingresamos la letra y (Yes).
- En la siguiente pregunta, vemos que el sistema nos indica que MariaDB trae por defecto una base de datos llamada “test” donde cualquiera puede tener acceso, el sistema nos pregunta si deseamos remover esa base de datos, ingresamos la letra y (Yes).
- La última pregunta hace referencia a si deseamos cargar los privilegios de la tabla en ese momento, indicamos que sí, ingresamos la letra y (Yes).
Finalmente vemos la confirmación que todo fue configurado de manera satisfactoria.
A continuación vamos a instalar PHP y Apache, PHP nos permitirá acceder a la funcionalidad de Zabbix. Para instalar dichos lenguajes ingresaremos los siguientes comandos:
En Debian 8:
sudo apt-get install apache2 php5 php5-mysql php5-gd php5-cli php5-xmlrpcEn RED HAT / CentOS 7:
yum install httpd php php-mysql php-gd pgp-cli php-xml php-bcmath php-mbstring mod_ssl opensslVeremos que comienza el proceso de descarga, debemos aceptar para que el sistema descargue los paquetes y realice la instalación de los mismos.
A continuación debemos configurar algunos parámetros en el archivo php.ini; Para abrir este archivo ejecutaremos los siguientes comandos:
En Debian 8:
sudo nano /etc/php5/apache2/php.iniEn RED HAT / CentOS 7:
nano /etc/php.iniVeremos que se despliega la siguiente ventana con toda la información relacionada a PHP:
En dicha ventana podemos usar la combinación de teclas CTRL + C para buscar y modificar estos valores:
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Continent/City
always_populate_raw_post_data = -1
Vemos que en la línea date.timezone falta ingresar el país y ciudad donde nos encontramos ubicados, debemos ingresar nuestra ubicación.
En la línea max_execution_time el valor por defecto es 30, podemos ajustarlo en 300 para tener un margen más amplio de ejecución.
Guardamos los cambios usando la combinación CTRL + O.
El siguiente paso que debemos realizar es reiniciar el servicio de Apache, recordemos que cada vez que se haga una modificación en el archivo php.ini es necesario reiniciar el servicio para aplicar los cambios. Ejecutaremos lo siguiente:
En Debian 8:
sudo systemctl restart apache2.serviceEn RED HAT / CentOS 7:
systemctl restart httpd.serviceVeremos cómo Apache se reinicia.
A continuación vamos a descargar, compilar e instalar Zabbix, para ello ejecutaremos el siguiente comando:
wget http://sourceforge.net/projects/zabbix/files/ZABBIX\ Latest\ \Stable/2.4.5/zabbix-2.4.5.tar.gz
Ejecutamos el comando y se inicia el proceso de descarga.
wget http://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/2.4.5/zabbix-2.4.5.tar.gz
Finalmente vemos que la descarga fue correcta.
El siguiente paso en nuestro proceso es descomprimir y extraer los archivos, para ello vamos a introducir los siguientes comandos:
tar xfz zabbix-2.4.5.tar.gz cd zabbix-2.4.5/ lsPodemos ver lo que contiene dicha carpeta:
A continuación vamos a establecer ciertos parámetros usando el comando ./configure -h. Para configurar nuestro Zabbix ingresaremos el siguiente comando:
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2Ejecutamos el comando y comenzará todo el proceso de configuración.
Veremos finalmente que el proceso fue correcto.
Como vemos Zabbix nos indica que podemos correr el comando make, éste nos permite crear los binarios instalables e instalar Zabbix, recordemos que debe ser ejecutado como root, ingresaremos lo siguiente:
make make installPrimero ejecutamos el comando make:
Una vez completada la operación ejecutaremos el comando make install:
Una vez hayamos ejecutado estos comandos vamos a crear una cuenta sin privilegios del sistema la cual ejecutará el demonio de Zabbix, para ello ingresaremos los siguientes comandos:
groupadd zabbix useradd -g zabbix -d /usr/local/share/zabbix -s /bin/false zabbixYa tenemos nuestra cuenta.
A continuación configuraremos nuestra base de datos MariaDB para Zabbix, vamos a crear un usuario con privilegios para gestionar la base de datos, ingresemos lo siguiente:
mysql -u root -p create database zabbix; grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'your_password'; flush privileges; exit
grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'your_password';
El siguiente paso es ingresar al directorio de Zabbix y extraer los recursos, en este caso debemos ingresar los siguientes comandos:
cd zabbix-2.4.5/ ls database/mysql/ 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
Procedemos ahora a configurar el servidor web de Apache para Zabbix, para ello debemos copiar todos los recursos de PHP Frontend dentro de Apache, para ello ingresaremos lo siguiente:
rm /var/www/html/index.html cp -rf frontends/php/* /var/www/html/Avanzamos al siguiente paso.
Aquí nuestro objetivo es agregar el usuario Zabbix al grupo del sistema de Apache www-data, habilitar el módulo SSL y el host para poder correr Zabbix de manera segura, recordemos que debemos reiniciar el servicio después de aplicar estos cambios. Ejecutaremos lo siguiente:
En Debian 8:
usermod -aG www-data zabbix a2enmod ssl a2ensite default-ssl systemctl restart apache2.serviceEn RED HAT / CentOS 7:
usermod -aG apache zabbix systemctl restart httpd.service
Nuestra siguiente tarea será configura el servidor de Zabbix, para ello debemos editar el archivo zabbix_server.conf, para realizar esta ingresaremos el siguiente comando:
nano /usr/local/etc/zabbix_server.confVeremos que se despliega la siguiente información:
Es importante que para modificar este archivo sepamos cual es la dirección IP de nuestro servidor, esto lo encontramos usando el comando ifconfig, en nuestro ejemplo es 192.168.0.8. Vamos a editar la línea DBHost la cual viene con el texto localhost e ingresaremos nuestra IP:
Guardamos los cambios y salimos del editor.
Necesitamos crear un archivo de logs y brindar los permisos necesarios para que Zabbix pueda escribir en ellos, para eso ingresaremos el siguiente comando:
touch /var/log/zabbix_server.log chmod 775 /var/log/zabbix_server.log chgrp zabbix /var/log/zabbix_server.logUna vez creamos este archivo avanzamos.
Ahora debemos iniciar el agente y el servidor Zabbix, ejecutaremos los siguientes comandos:
/usr/local/sbin/zabbix_server /usr/local/sbin/zabbix_agentd /usr/local/sbin/zabbix_agentPara obtener el estado de Zabbix y de los puertos de escucha ejecutamos el comando netstat:
netstat -tulpn
Vamos ahora a instalar la interfaz Frontend de Zabbix para ello debemos ingresar en nuestro navegador la dirección IP de la máquina http:192.168.0.8/setup.php. Veremos que se despliega la siguiente ventana para proceder a realizar la instalación:
[color=rgb(169,169,169)]Pincha en la imagen para ampliar[/color]
Damos clic en Next y se desplegará la ventana de los prerrequisitos, aquí podemos observar los que tienen alguna falla:
Ajustamos los cambios indicados en el sistema, reiniciamos el servicio de Apache y ya podemos ver que todo está correcto. Damos clic en Next y ahora es necesario configurar los parámetros de la base de datos, vemos que el usuario con el cual ingresaremos será el root (el cual fue creado durante la instalación de MySQL).
Como vemos contamos con la opción de probar la conexión a la base de datos (Test Connection).
En la siguiente ventana podremos observar los detalles del servidor Zabbix.
Damos clic en Next y ahora veremos un resumen de la instalación. A continuación damos clic en Next para iniciar el proceso de instalación:
Una vez finalizada la instalación podremos ingresar con nuestras credenciales:
[color=rgb(169,169,169)]Pincha en la imagen para ampliar[/color]
Al ingresar a la plataforma de Zabbix podremos observar las diferentes opciones que tenemos para la gestión de nuestra infraestructura. Desde esta plataforma podremos realizar todas las tareas de gestión tales como:
Monitoreo
[color=rgb(169,169,169)]Pincha en la imagen para ampliar[/color]
Reportes
[color=rgb(169,169,169)]Pincha en la imagen para ampliar[/color]
Configuración
[color=#a9a9a9]Pincha en la imagen para ampliar[/color]
Administración
[color=rgb(169,169,169)]Pincha en la imagen para ampliar[/color]
Como hemos podido observar Zabbix es una herramienta muy poderosa que nos puede ser muy útil en nuestras tareas de gestión ya que cuenta con diversas funcionalidades muy prácticas y dinámicas de administración.
Permite monitorear desde cualquier lugar los siguientes elementos:
- Actividad de los Agentes
- Dispositivos de red
- Monitoreo de VMware
- Servicios web
- Monitoreo a todo el hardware
Con Zabbix tendremos en nuestra organización:
- Una gran posibilidad de escalamiento (hasta 100.000 dispositivos)
- Monitoreo distribuido
- Alto rendimiento
- Alta disponibilidad
- Cero mantenimiento
- Fácil integración con otro software
- Compatibilidad con IPv6
Dentro de las capacidades de monitoreo encontramos:
- Rápida solución a los problemas
- Administración de los problemas
Con Zabbix podemos obtener:
- Fácil planeamiento
- Cero desperdicio de recursos
Zabbix ofrece a las organizaciones:
- Soporte Comercial
- Desarrollo personalizado
- Consultas 7 X 24