..:: JoNiuX ::..

Monitoreando servidores con Zabbix

escrito por el 8-abril-2008, en Internet, Linux

viewmap2.pngEl monitoreo de servidores y servicios es una de las actividades más importantes cuando se administran sistemas informáticos. Actualmente existen varios softwares de monitoreo opensource disponibles en internet como Nagios, Groundwork, Zenoss y Zabbix.

En este artículo abordaré la instalación de Zabbix, que es una herramienta de monitoreo de servidores y redes que permite hacer polling: los datos son solicitados por el servidor de monitoreo, y trapping: los datos son enviados por es servidor monitoreado cuando se genera un evento.

¿Porqué Zabbix? No me pondré a comparar las bodades y defectos de cada software, básicamente seleccioné Zabbix porque las necesidades que tengo de monitorear estan cubiertas completamente, puedo ver estado de servicios, servidores, y equipos de red, graficar y ver un mapa con todos los nodos, y ante cualquier problema alarmar.

Zabbix es un desarrollo opensource y lo puedes bajar desde www.zabbix.com, esta desarrollado en C++ y en PHP para su interfaz gráfica, requiere de Apache, MySQL (Postgress u Oracle), PHP y librerías PHP de gráficos o de SNMP si deseas habilitar esa opción.

Zabbix posee tres componentes:

– zabbix_server: es el servidor principal que verifica el estado de todos los agentes.

– zabbix_agentd: agente instalado en cada servidor.

-interfaz web: permite configurar y ver el estado del sistema.

Lo primero que debes hacer es crear un usuario llamado zabbix bajo el cual correran los arhivos necesarios para correr el servicio, ya que eldemonio servidor esta programado para no correr bajo ningun demonio de superusuario.

Shell> adduser zabbix

Depués debes bajar el código fuente desde http://www.zabbix.com/download.php

Luego lo descomprimes con

shell> gzip -d zabbix-1.4.tar.gz

shell> tar -xvf zabbix-1.4.tar

Con esto se generará un directorio donde se encuentra todo el código fuente.

Como esta desarrollado en C++ antes de instalar debes compilar (que terrible!!! compilar siempre suena a problemas), pero como siempre antes de compilar debes configurar las opciones de compilación con el programa «configure». En el ejemplo se configuró para habilitar el servidor, el agente, una base de datos mysql, el protocolo snmp con net-snmp y libcurl para la interfaz web. Para compilar te posicionas en el directorio donde se descomprimió el fuente de Zabbix y ejecutas el configure.

shell> cd zabbix-1.4

shell> ./configure --enable-server
--enable-agent
--with-mysql
--with-net-snmp
--with-libcurl

Si la configuración es exitosa entonces puedes compilar haciendo un make

shell> make install

Esta instrucción instala los binarios en /usr/local/bin

Se debe crear la base de datos asumiendo que ya creamos un usuario con los permisos necesarios para utilizar la base de datos zabbix.

shell> mysql -u<username> -p<password>
mysql> create database zabbix;
mysql> quit;

Donde <username> y <password> es el usuario y password del usuario en mysql.

Para crear el esquema de la base de datos se debe ir al directorio create/schema y ejecutar el script mysql según las siguientes instrucciones:

shell> cd create/schema
shell> cat mysql.sql | mysql -u<username> -p<password> zabbix
shell> cd ../data
shell> cat data.sql | mysql -u<username> -p<password> zabbix
shell> cat images_mysql.sql | mysql -u<username> -p<password> zabbix

Antes de ejecutar el servidor y el agente es necesario agregar estas líneas al archivo /etc/services donde se indican los puertos que se utilizarán, y si lo existe configurar el firewall para que permita el acceso a esos puertos.

zabbix_agent 10050/tcp
zabbix_trap 10051/tcp

Para configurar el agente se debe editar el archivo /etc/zabbix/zabbix_agentd.conf, lo principal aqui es configurar la ip del servidor zabbix y los puertos por los cuales se comunicará.

Para configurar el servidor se debe editar el archivo /etc/zabbix/zabbix_server.conf, existe un archivo en misc/conf/zabbix_server.conf que contiene un ejemplo de configuración.

Con esto estamos listos para ejecutar el servidor, y esto se hace directamente con

/usr/local/bin/zabbix_server

El agente se ejecuta con

/usr/local/bin/zabbix_agentd

Con esto ya esta corriendo el servidor y el agente, falta configurar la interfaz web y agregar el servidor dentro de los servidores a monitorear, pero eso será para otro artículo.

:, , , ,

21 Comments for this entry

  • aldak

    ya po y que mas sigue explicando …

  • Osvaldo Paliz

    Excelente info. Luego de probar zabbix, monit, nagios, cacti, me quedo con zabbix

  • carlos

    un gusto en saludar, espero que me puedas ayudar, Instale zabbix 1.6.1 en Redhat Enterprise 4 resolvi el tema de las dependencias todo ok pero al instalar «make install» no me genero los directorios (/etc/zabbix/) tampoco copio los ejecutables por decirlo asi a su lugar de destino (/usr/local/bin/zabbix_server) ¿ ESTO SE DEBE HACER A MANO ?, o que procedimiento debo de hacer.

    al precer todo el proceso de make y make install lo realizo en la misma carpeta donde se descomprio el fuente de zabbix.

  • joniux

    Carlos: el «make install» lo debes hacer como usuario root para que pueda copiar los directorios a las ubicaciones específicas.

    En todo caso, puedes comenzar todo otra vez haciendo un «make clean» luego un «make» y finalmente el «make install».

    En mi caso personal, cuando instalo los agentes, copio los archivos a mano en su ubicacion final y funcionan perfecto.

  • Henry Mendez

    Hola, la explicación que has dado es muy completa, pero me gustaria que agregaras el tema relacionado a la configuracion de la interfaz Web y el agregado del servidor dentro de los servidores a monitorear.

  • nancy campos

    ya mo zabbix esta instalado pero al agregar la informacion de los equipos que quiero monitorear aparece en el campo «disponibilidad» = no disponible, que debo hacer

  • joniux

    Nancy: El error que mencionas se produce cuando el servidor Zabbix «no ve» al servidor que se desea monitorear. Esto puede ser porque no has instalado el agente o algún firewall bloquea el acceso a los puertos del agente.

    Zabbix requiere que tengas instalados agentes en los servidores o equipos a monitorear y que los puertos tcp/ip esten abiertos, normalmente el puerto es el 10050 (puerto en el equipo monitoreado para que el servidor zabbix haga pooling) y el 10051 para que los equipos monitoreados envien chequeos activos.

    Estos puertos se configuran tanto en el servidor zabbix como en los servidores monitoreados, para linux el directorio de configuracion es /etc/zabbix

  • joniux

    Henry: ya viene la segunta parte, ahi explicare como configurar la interfaz web y como agregar alarmas personalizadas.

  • Henry Mendez

    Hola joniux, tengo un problema como el que mencionaban en uno de los comentarios de este Website, ya compile Zabbix (como usuario Root) y al final de la compilacion me dice que todo esta bien que esta listo para el «make install», pero cuando ejecuto el «make install» voy directo a /etc para buscar la carpeta zabbix (donde se encuentran los archivos de configuracion) y la carpeta no esta, es decir, no se creó. Me gustaria saber si me pudiese ofrecer alguna alternativa de solucion y enviarmela a mi correo, te lo voy a agradecer mucho. Por cierto, se me olvidaba decirte que ya lo compile y lo traté de instalar muchas veces y sigue en lo mismo, no se si tenga algo que ver, pero al finalizar el «make install» aparecen mensajes como los siguientes:

    make [2]No se hace nada para «install-exec-am»
    make [2]No se hace nada para «install-data-am»

    El sistema operativo que estoy utilizando es CentOS.

    Espero tu respuesta y de antemano muchas gracias.

  • Henry Mendez

    Disculpa joniux otra vez, al momento de conectarme a SQL me sale el siguiente error:

    Access denied for user: ‘zabbixuser@localhost’ (Using password: NO), no se a que se deba, ya ingrese el nombre del usuario, nombre de host y contraseña dentro del archivo zabbix_server.conf al igual que en db.inc.php, no tengo la menor idea a que se deba. Si me pudieses ayudar te lo agradecería mucho.

    Posdata: El mensaje de acceso denegado aparece al ejecutar:
    cat /tmp/zabbix_server.log

  • joniux

    Henry: el error que mencionas se debe a un error de acceso a la base de datos. Revisa la configuración, revisa la cuenta en MySQL que creaste para zabbix, por lo que dice tu error la cuenta es «zabbixuser», el servidor de base de datos es «localhost» y la contraseña la debes conocer.

  • Henry Mendez

    Disculpa otra vez Joniux, la verdad es que soy nuevo usando linux y pues algunas cosas se me complican cuando trato de configurar zabbix.

    Ahora mis preguntas son dos, y espero que me puedas dar alguna alternativa de solucion:

    1. Como monitorear routers y switches via SNMP
    2. Como monitorear servidores y hosts sin utilizar el agente Zabbix

    Espero tu respuesta y gracias por ayudarme con mi duda anterior, me sirvio de mucho tu respuesta.

  • joniux

    Henry: para tus dos preguntas la respuesta es el protocolo snmp.

    Zabbix soporta el protocolo, la opcion al momento de compilarlo es –with-net-snmp

    Personalmente lo he intentando, pero nunca me ha funcionado bien, prefiero el agente zabbix, sobre todo considerando que los servidores que monitoreo estan en internet y no en una red local.

  • Angelo

    El monitoreo de Zabbix para equipos de enrutamiento es exelente, he configurado hasta 4000 interfaces con sus respectivos umbrales y escalamiento y las graficas de trafico son en tiempo online.

  • Aldemar

    Parece que nunca saco la segunda version… o esta en otro luager seria bueno que la pulicara…

  • jacob

    Interesante post, hay un artículo bastante completo sobre el proceso de instalación de zabbix con oracle, creo que puede resultar de utilidad, el artículo se llama:
    Instalación y Configuración de Zabbix 1.8.x – Oracle 10gR2 – OEL 5.x (CentOS 5.x – Red Hat 5.x)
    y está en la url:
    http://www.malagahabla.com/Blog/ViewPost.aspx?pageid=38&ItemID=63&mid=44

  • osorio88

    joni Ola mucho Gusto la verdad stoy en aprietos la verdad a la ora de crear un host lo monitoriza pero mi problema es cuando no qeda en verde la de Disponibilidad (Availabi) La de la Z no me qeda en verde otra cosa que note fue que me dice q el server no esta corriendo pero si ya lo instale en todo que crees q sea como activo esa casilla de Avalibi i la de SNMP waaa ayuda porfa.. Acepto todo tipo de ayuda jejej Gracias!! que tenga buen dia!

  • luis Poma

    Consulta.
    El Sabbix es posible instalarlo en Centos o Ubuntu.
    Saludos,

  • Hosting Chile

    Se ve interesante el proyecto.

  • Jonathan Ramirez

    hola que tal muy buenos días, veo que todos a qui conocen el manejo de zabbix espero me puedan ayudar en las dudas que surgirán en mi residencia que iniciara en agosto de este año para empesar no se si tengo que hacer una base de datos esa es mi duda tengo que crear una base de datos para meter los datos de la red o como o es nada mas MYSQL es para que zabbix pueda trabajar estare pendiente de sus respuestas gracias.

  • joniux

    Jonathan, Zabbix trabaja con una base de datos que es MySQL, aunque permite otros motores.

    La base de datos se crea con los scripts que vienen en los archivos de instalación, no es nada de complicado. Lo difícil es respaldarla, ya que con el tiempo comienza a crecer y ocupa mucho espacio en disco.

    Saludos.

¿Buscando algo?

Use este formulario para buscar en el sitio:

¿No encontraste lo que buscabas? Déjame un comentario y veré como puedo ayudarte!

Visita a mis amigos

Algunos amigos que tienen sus blogs...