Zabbix es un sistema de monitoreo de código abierto de nivel empresarial. Actualmente, Zabbix es uno de los sistemas de monitoreo gratuitos más populares y poderosos. Debido a su sencilla instalación y configuración, Zabbix puede usarse para monitorear grandes infraestructuras con cientos de hosts, así como pequeñas configuraciones. En este artículo, le mostraremos cómo instalar y configurar las funciones básicas de un servidor Zabbix 5.0 con una interfaz web en Linux Ubuntu y CentOS, y cómo instalar el agente Zabbix en un servidor que ejecuta Windows o Linux y agregar nuevos hosts para monitorear.
Puede ver la interfaz del panel del servidor Zabbix en una captura de pantalla a continuación.
Simple y fácil de configurar, Zabbix está escrito en C (un servidor, un proxy y un agente) y PHP (frontend). Servidor Zabbix y Proxy Zabbix solo funciona en sistemas Linux. El agente Zabbix se puede instalar en una amplia variedad de sistemas operativos y plataformas compatibles.
La instalación del servidor Zabbix consiste en:
- Un binario zabbix_server (por lo general, funciona como un servicio);
- base de datos MySQL/MariaDB/PostgreSQL;
- servidor web Apache2/Nginx con un controlador PHP;
- Archivos del sitio frontend (.php, .js, .css, etc.).
Por lo general, el esquema operativo se ve así:
- Un agente de Zabbix envía datos a un servidor;
- Un servidor Zabbix recibe y procesa los datos;
- Si los datos recibidos cumplen las condiciones especificadas, se activa un disparador;
- El gatillo activado indica que hay un problema. Aparece una notificación en la interfaz (en un sitio) y, según la configuración, se envía una notificación por correo electrónico o se realizan algunas acciones (por ejemplo, se reinicia un servicio monitoreado).
Zabbix puede trabajar con todos los protocolos conocidos. Gracias a la capacidad de usar scripts externos, Zabbix puede ejecutar y recibir datos de cualquier script/binario ejecutable.
¿Cómo instalar el servidor Zabbix en Linux (Ubuntu, CentOS)?
En este tutorial, mostraremos cómo instalar Zabbix Server en Linux (Ubuntu Server 18.4 y CentOS 8) usando un administrador de paquetes.
Ve a la página de descarga https://www.zabbix.com/download y seleccione el repositorio que coincida con su distribución de Linux. Hay paquetes listos para todas las distribuciones populares de Linux.
Por ejemplo, para instalar Zabbix en Ubuntu 18.04, seleccione lo siguiente a su vez:
Versión de Zabbix (5.0 LTS) -> Distribución del sistema operativo (Ubuntu) -> Versión del sistema operativo (18.04 Bionic) -> Base de datos (MySQL) -> Servidor web (Nginx o Apache).
Descarga y agrega el repositorio:
# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+bionic_all.deb
# dpkg -i zabbix-release_5.0-1+bionic_all.deb
# apt update
Luego puede instalar los paquetes necesarios:
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-nginx-conf zabbix-agent
Para instalar Zabbix en CentOS 8/RHEL 8, conecte el repositorio con la última versión de Zabbix (puede instalar Zabbix desde la rama 4.0/5.0 LTS o la última versión de Zabbix 5.2):
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all
Suponga que nginx, MySQL/MariaDB, php y php-fpm ya están instalados en el servidor. Use el administrador de paquetes dnf (yum) para instalar Zabbix Server y el agente:
# dnf install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-agent
Luego cree una base de datos para Zabbix en MySQL (puede usar PostgreSQL en lugar de MySQL, simplemente reemplace ‘mysql’ con ‘pgsql’ en los comandos anteriores).
Cree una base de datos y otorgue permisos a la cuenta de usuario, bajo los cuales Zabbix accederá a la base de datos:
mysql -uroot
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'ZabbixP@$$w0rd';
mysql> quit;
Importe la base de datos de Zabbix. Ingrese la contraseña que especificó cuando creó un usuario.
# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p Zabbix
Editar /etc/zabbix/zabbix_server.conf
especifique la contraseña del usuario que ha creado.
DBPassword=Zabbix_User_Password
Como en mi caso nginx se usa como servidor web, edite nginx.conf descomentando las siguientes líneas:
# listen 80; # server_name example.com;
Remover #
y reemplace example.com con el nombre de host del servidor Zabbix. En mi caso es test.zabbix.local.
Para Apache, edite /etc/httpd/conf.d/zabbix.conf
.
Establecer la zona horaria en PHP. Descomente la siguiente línea en /etc/zabbix/php-fpm.conf
:
php_value[date.timezone] = Canada/Pacific
También puede configurar estos parámetros de PHP en /etc/php.ini:
memory_limit 128M upload_max_filesize 8M post_max_size 16M max_execution_time 300 max_input_time 300 max_input_vars 10000
Agregue el servicio del servidor zabbix al inicio y ejecútelo:
# systemctl enable zabbix-server zabbix-agent nginx php7.2-fpm
# systemctl restart zabbix-server zabbix-agent nginx php7.2-fpm
Configuración de la interfaz web de Zabbix
Ahora debe configurar Zabbix frontent (interfaz web). Abra la URL del servidor Zabbix especificada anteriormente en un navegador. En mi caso es test.zabbix.local (o el dominio que hayas especificado. Recuerda registrarlo en tu archivo de hosts o en el servidor DNS). Asegúrese de que se muestre OK junto a todos los requisitos del instalador.
Especifique los parámetros de conexión de la base de datos y las credenciales de usuario para conectarse a la base de datos. Utilice el nombre de usuario y la contraseña creados anteriormente.
Especifique el nombre de su servidor Zabbix. Recomiendo dejar el puerto predeterminado: TCP 10051.
De forma predeterminada, Zabbix utiliza dos puertos de red:
- TCP 10050 — puerto de agente pasivo, que el servidor Zabbix utiliza para sondear a los clientes;
- TCP 10051 — puerto a través del cual el servidor Zabbix recibe datos de los clientes (agentes activos).
Recuerde abrir estos puertos en el firewall. Por ejemplo, en un servidor Zabbix que ejecuta CentOS, puede abrir los puertos en firewalld usando firewall-cmd:
# firewall-cmd --add-service={http,https} --permanentfirewall-cmd --add-port={10051/tcp,10050/tcp} –permanent
Basta con abrir el puerto 10050 en el agente:
# firewall-cmd --permanent --add-port=10050/tcp
Reinicie el cortafuegos:
# firewall-cmd –reload
Luego haga clic Próximo paso y Finalizar. Después de la instalación, se le pedirá que inicie sesión. El inicio de sesión predeterminado es Administraciónla contraseña predeterminada es Zabbix (cambialo).
La instalación del servidor Zabbix ha terminado.
Puede encontrar instrucciones paso a paso sobre la instalación del servidor Zabbix en otro sistema operativo y las guías sobre cómo compilar el servidor zabbix a partir del código fuente o ejecutarlo en contenedores docker en https://www.zabbix.com/download.
¿Cómo instalar el agente Zabbix en Windows?
Intentemos instalar un agente Zabbix en un servidor que ejecuta Windows y agregarlo a nuestro servidor de monitoreo Zabbix. Puede descargar una versión del agente Zabbix para Windows aquí: https://www.zabbix.com/download_agents.
Seleccione la versión del agente que necesita. elegiré msi (amd64) (sin OpenSSL). Si va a instalar Zabbix Agent en servidores de dominio/computadoras que usan GPO o SCCM, puede descargar un archivo ZIP con archivos binarios y de configuración.
Ejecute el instalador, acepte el acuerdo de licencia y especifique la configuración para conectarse al servidor Zabbix. Tenga en cuenta que en el campo «Servidor o Proxy para cheques activos» he ingresado una dirección IP en el IP:PORT
formato. Como dejé un puerto predeterminado, he ingresado 192.168.20.30:10051
.
Hacer clic próximo un par de veces, luego haga clic en Instalar.
Asegúrese de que el agente se haya instalado. Zabbix Agent debe aparecer en la lista de servicios.
Permita las conexiones entrantes desde la dirección IP de su servidor Zabbix en el Firewall de Windows en su host de Windows:
New-NetFirewallRule -DisplayName "ZabbixMonitoring" –RemoteAddress 192.168.20.30 -Direction Inbound -Protocol TCP –LocalPort 10050 -Action Allow
¿Cómo agregar un nuevo host en el servidor Zabbix?
Para asegurarse de que el agente esté operativo, agregue el host testnode2 a su servidor Zabbix y asígnele algunas comprobaciones (plantillas).
Nota. Hay 2 tipos de cheques en Zabbix:
- Pasivo: un servidor Zabbix solicita algunos datos del agente;
- Activo: el agente está enviando datos al servidor.
Durante la instalación del agente, especificamos el servidor como IP:PORT para comprobaciones activas.
Puede agregar un nuevo host de monitoreo a través de la interfaz web de Zabbix. Ir Configuración -> Hospedadores.
Hacer clic Crear anfitrión y completa los detalles. Tenga en cuenta que el nombre de host debe coincidir exactamente con el nombre de host del dispositivo o el valor del parámetro Nombre de host en el archivo de configuración del agente.
Agregue plantillas integradas de Windows en el Plantillas pestaña. Las plantillas en Zabbix son conjuntos de valores, disparadores, gráficos y reglas de descubrimiento que pueden asignarse a uno o más hosts.
Las plantillas integradas tienen una etiqueta «activa», lo que significa que se utilizarán cheques activos.
Hacer clic Agregar. Para no esperar hasta que el servidor y el agente se vean (generalmente toma un par de minutos), reinicie el servicio Zabbix Agent en testnode2 y vea el registro del agente (C:Program FilesZabbix Agentzabbix_agentd.txt
).
Los «started [active checks #1]
El mensaje «significa que se han encontrado algunas comprobaciones activas para el host en el servidor. Luego, eche un vistazo a los datos que su servidor Zabbix recibió del agente. Para hacerlo, vaya a Vigilancia -> Últimos datos y seleccione el host en el Hospedadores campo.
Esta sección muestra los datos más recientes sobre el host seleccionado o grupos de hosts que han llegado al servidor Zabbix.
Tenga en cuenta que, en mi caso, el panel de control de Zabbix contiene una notificación de que el servicio BITS no se está ejecutando. La notificación apareció desde que asignamos plantillas integradas a nuestro host. Una de las plantillas tiene una verificación de BITS y el disparador correspondiente se activa si el servicio de BITS no está en el estado En ejecución.
El Agente para Windows está configurado.
Instalación del agente Zabbix en Linux
Instalemos Zabbix Agent en Linux. Para instalar Zabbix Agent en Ubuntu Server 18.04 usando un administrador de paquetes, descargue e instale Zabbix repo. Luego instale Zabbix Agent desde el repositorio:
# wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
# sudo dpkg -i zabbix-release_5.0-1+$(lsb_release -sc)_all.deb
# sudo apt update
# sudo apt -y install zabbix-agent
# rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm
# dnf clean all
# dnf install zabbix-agent
Antes de iniciar el agente de Zabbix, edite el archivo de configuración /etc/zabbix/zabbix_agentd.conf. Especifique la dirección IP de su servidor Zabbix para verificaciones activas.
Server=IP ServerActive=192.168.20.30:10051 Hostname=testagent
A continuación, inicie el servicio de agente:
# service zabbix-agent start
Asegúrese de que el agente se haya iniciado correctamente.
# cat /var/log/zabbix/zabbix_agentd.log
La línea «no se puede analizar la lista de cheques activos” significa que no hay comprobaciones activas para el host en el servidor.
Al igual que con el agente de Windows, debe agregar su host Linux a Zabbix. Tenga en cuenta el parámetro de nombre de host en la configuración de host de su servidor Zabbix: debe coincidir con el parámetro de nombre de host que hemos especificado en el archivo de configuración del agente Zabbix. En el archivo de configuración anterior, especifiqué el nombre de host como agente de prueba.
Reinicie su agente Zabbix y verifique el registro. Asegúrese de que los datos del agente hayan aparecido en su servidor Zabbix. El agente Zabbix en Linux está configurado.
En el próximo artículo, veremos el monitoreo sin agente de la disponibilidad del host en Zabbix a través de ICMP Ping.
Artículos Interesantes
Contenido