Zabbix es una herramienta (como varias) de monitoreo, muy
bien desarrollado y que en lo personal considero una de las mejores en el
mercado. Desde mi punto de vista es una herramienta muy flexible y que te permite
crear tus propias métricas.
He usado Zabbix desde la versión 2.4 y he de decir que desde
esa versión hasta la que vamos a instalar (Zabbix 5.0) ha dado un salto muy
grande en cuanto a prestaciones y todo lo que nos permite hacer.
Antes de entrar de lleno con la instalación, debemos
entender el concepto de herramienta de monitoreo en el mundo IT, ya que toda
empresa que tenga una infraestructura (servidores, storages, redes, aplicaciones,
ect) en algún punto necesitan saber cómo se comportan cada una de esas partes
dentro de su infraestructura.
Ahí es donde entran las diferentes herramientas de monitoreo
que existen en el mercado y del cual podemos dividirlos en 2 modalidades: opensource
y de paga. Dependiendo de las necesidades optarás por alguna de ellas.
Zabbix entra en la categoría de Open Source y si instalas esta
herramienta nos va a permitir monitorear lo siguiente:
Servidores (CPU, Memoria, procesos, puertos, aplicaciones)
Redes
Servicios Web
Java JMX
Balanceos (nginx, Apache, F5)
Bases de datos.
Claro, nos permite hacer más monitoreos, los que te puedas
imaginar, pero dependiendo de las necesidades es lo que incorporarás a tu
herramienta. En todo este tutorial, vamos a ver como instalarlo en las siguientes distribuciones: SUSE, CentOS y Ubuntu, del cual la parte 1 será en openSUSE. Así que
sin más que decir comencemos con la instalación.
Antes de continuar con la instalación, no olviden checar los requerimientos que se necesitan para poder instalar Zabbix en un servidor y dependiendo de la arquitectura que vayamos a implementar, dependerá de muchos factores como el número de servidores o equipos a monitorear, etc.
Instalación en SUSE.
Nuestra VM que usaremos para nuestra instalación es un
openSUSE Leap 15.2 y usaremos una instalación de Zabbix 5.0 con una base de
datos MySQL configurado en NGINX.
Debemos primero antes que nada asegurar que tenemos
instalado MySQL:
cosvernauta@localhost:#
rpm -qa | grep -i mysql
cosvernauta@localhost:#
rpm -qa | grep -i maria
Dependiendo de que si vas a usar mariadb o MySQL es lo que
debes instalar, pues muchos sabemos que mariadb es un “derivado” de MySQL,
vamos a instalar mariadb en openSUSE:
cosvernauta@localhost:#
zypper search mariadb
cosvernauta@localhost:#
zypper install mariadb
Una vez que ya hemos instalado nuestra base de datos, a continuación,
vamos a levantarla y ponerlo de manera permanente:
cosvernauta@localhost:#
systemctl enable mariadb.service
cosvernauta@localhost:#
systemctl start mariadb.service
Ya que tenemos nuestra base de datos, vamos a probar su
acceso:
cosvernauta@localhost:#
mysql -uroot -p
password
Si nos arroja el prompt como en la imagen anterior, entonces
nuestra base está arriba y lista para usar.
Instalando el repositorio.
Vamos a comenzar cargando el repositorio en nuestros repos
de sistema, con el fin de que sea más fácil instalar y actualizar a futuro:
cosvernauta@localhost:#
rpm -Uvh --nosignature
https://repo.zabbix.com/zabbix/5.0/sles/15/x86_64/zabbix-release-5.0-1.el15.noarch.rpm
cosvernauta@localhost:#
zypper --gpg-auto-import-keys refresh 'Zabbix Official Repository'
Instalar Zabbix server,
frontend y agente.
A continuación, vamos a realizar la instalación de los
paquetes necesarios para Zabbix:
cosvernauta@localhost:#
zypper install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf
zabbix-agent
Instalar los schemas en la Base y demás privilegios.
Ahora, vamos a crear los schemas necesarios en nuestra base
de datos MariaDB y un usuario con los privilegios necesarios:
cosvernauta@localhost:# mysql -uroot -p
password
MariaDB
[(none)]> create database zabbix character set utf8 collate utf8_bin;
MariaDB
[(none)]> create user zabbix@localhost identified by 'ElPasswordQueTuQuieras';
MariaDB
[(none)]> grant all privileges on zabbix.* to zabbix@localhost;
MariaDB
[(none)]> quit;
Una vez que tenemos los privilegios necesarios para el
usuario zabbix, ahora vamos a cargas los schemas en la nueva base de datos
creada:
cosvernauta@localhost:# zcat
/usr/share/doc/packages/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p
zabbix
En el comando anterior nos va a solicitar el password del
usuario zabbix, el que le pusimos al momento de crearlo en la base de datos.
Este proceso puede tardar un poco, así que no se desesperen.
Archivos de configuración.
Ya que tenemos instalado los schemas en la base de datos, es
tiempo de configurar nuestro Zabbix Server.
Vamos a configurar el usuario y password de la base de datos
en el archivo zabbix_server.conf
cosvernauta@localhost:# vi /etc/zabbix/zabbix_server.conf
DBPassword=ElPasswordQueTuQuieras
Si configuraste un usuario diferente a “zabbix” en los
privilegios de usuario en la base de datos de MariaDB, tendrás que editar el “DBUser=zabbix”
ya que por default viene puesto el usuario “zabbix”
Vamos a editar el archivo de configuración de Zabbix puesto
en el NGINX y vamos a descomentar las siguientes líneas:
# listen
80;
#
server_name example.com;
cosvernauta@localhost:# vi /etc/nginx/conf.d/zabbix.conf
Posteriormente vamos a copiar el archivo php-fpm.conf como
default:
cosvernauta@localhost:# cp -n
/etc/php7/fpm/php-fpm.conf{.default,}
o también de la siguiente forma:
cosvernauta@localhost:# cp -rp /etc/php7/fpm/php-fpm.conf /etc/php7/fpm/php-fpm.conf.default
Cualquiera de las 2 formas para copiarlo. Por último, vamos
a ajustar nuestra zona horaria dependiendo del tuyo en el archivo /etc/php7/fpm/php-fpm.d/zabbix.conf
cosvernauta@localhost:# vi /etc/php7/fpm/php-fpm.d/zabbix.conf
Debemos descomentar la línea 24 o buscar en el vi la variable
“php_value[date.timezone]” quitando el signo de punto y coma para descomentar,
luego colocarás tu zona horaria:
; php_value[date.timezone] = America/Mexico_City
Levantar Zabbix y sus componentes.
Es momento de levantar el agente de Zabbix, el Zabbix Server
y el NGINX junto con php y habilitar los servicios:
cosvernauta@localhost:#
systemctl restart zabbix-server zabbix-agent nginx php-fpm
cosvernauta@localhost:#
systemctl enable zabbix-server zabbix-agent nginx php-fpm
Hasta este punto, si todo salió bien y no recibimos errores
al momento de ejecutar el restart con systemctl, vamos a entrar a la consola o
al frontend de Zabbix desde un navegador web y de la siguiente forma:
http://ip_de_tu_servidor/
Vamos a obtener una pantalla para hacer el setup de Zabbix:
Vamos a dar click en Siguiente, si todo sale bien en nuestra
configuración a lo largo del setup.
En ocasiones, puede que el archivo zabbix.conf.php no lo
pueda copiar, entonces tendremos que descargar el archivo que nos proporciona
el setup y colocarlo en /etc/web
Una vez que hemos copiado dicho archivo, daremos click en "Finish"
Ya que hayamos terminado de configurar todo bajo el setup del
front, nos aparecerá la página para entrar a la consola web de Zabbix, el
usuario y password por default son los siguientes:
Usuario: Admin
Password: zabbix
Recomendamos que, una vez accedas a tu consola, cambies el
password que viene por default. Hasta aquí ya hemos terminado la instalación de
Zabbix en SUSE, por lo cual en la siguiente parte o post hablaremos de como
instalar Zabbix en centOS, así que estén al pendiente del siguiente post.
Como nota adicional, los puertos que están por default en
Zabbix en este punto son los 10050 y 10051, así como el puerto 80 del NGINX. Si
tienen alguna duda, no olviden dejar sus comentarios al final de este post.
“Hello and…Byte”