Monitoreando servidores con Zabbix
escrito por joniux el 8-abril-2008, en Internet, Linux
El 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.
septiembre 9th, 2008 on 11:02 pm
ya po y que mas sigue explicando …
diciembre 15th, 2008 on 12:58 pm
Excelente info. Luego de probar zabbix, monit, nagios, cacti, me quedo con zabbix
diciembre 16th, 2008 on 5:45 pm
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.
diciembre 19th, 2008 on 11:09 pm
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.
enero 26th, 2009 on 12:21 pm
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.
febrero 19th, 2009 on 9:51 am
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
febrero 21st, 2009 on 1:27 pm
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
febrero 21st, 2009 on 8:12 pm
Henry: ya viene la segunta parte, ahi explicare como configurar la interfaz web y como agregar alarmas personalizadas.
febrero 22nd, 2009 on 7:44 pm
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.
marzo 4th, 2009 on 1:51 pm
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
marzo 7th, 2009 on 9:40 am
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.
abril 1st, 2009 on 1:07 pm
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.
abril 12th, 2009 on 6:04 pm
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.
enero 28th, 2010 on 11:32 am
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.
abril 15th, 2010 on 10:52 am
Parece que nunca saco la segunda version… o esta en otro luager seria bueno que la pulicara…
junio 14th, 2010 on 6:56 am
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
septiembre 18th, 2010 on 11:43 pm
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!
marzo 28th, 2011 on 7:44 pm
Consulta.
El Sabbix es posible instalarlo en Centos o Ubuntu.
Saludos,
mayo 31st, 2012 on 12:50 pm
Se ve interesante el proyecto.
junio 18th, 2013 on 1:10 pm
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.
junio 18th, 2013 on 3:18 pm
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.