Zabbix es un programa para la monitorización de redes
Autor: Javier Arencibia Díaz
Correo: arencibia88@hotmail.com
- Instalamos los paquetes que necesitaremos:
# yum install zlib-devel mysql-devel glibc-devel curl-devel gcc automake mysql libidn-devel openssl-devel net-snmp-devel rpm-devel OpenIPMI-devel
- Obtenemos los source de zabbix:
# wget http://dag.wieers.com/rpm/packages/iksemel/iksemel-1.3-1.el5.rf.i386.rpm # wget http://dag.wieers.com/rpm/packages/iksemel/iksemel-devel-1.3-1.el5.rf.i386.rpm
- Instalamos:
# rpm -ivh iksemel-1.3-1.el5.rf.i386.rpm # rpm -ivh iksemel-devel-1.3-1.el5.rf.i386.rpm
- Dependencias:
# wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/1.8.1/zabbix-1.8.1.tar.gz?use_mirror=freefr
- Descomprimimos:
# gunzip zabbix-1.8.1.tar.gz && tar -xvf zabbix-1.8.1.tar
- Entramos y creamos configuración:
# cd zabbix-1.8.1
# ./configure --enable-server --with-mysql --with-net-snmp --with-jabber --with-libcurl --with-openipmi --enable-agent
Enable server: yes With database: MySQL WEB Monitoring via: cURL Native Jabber: yes SNMP: net-snmp IPMI: openipmi Enable agent: yes
- Ejecutamos “make”:
# make
No usaremos el comando “make install”, utilizaremos el comando checkinstall que nos da la opción de hacer primero un RPM y luego instalarlo.
- Esto nos da la ventaja de ser capaz de desinstalar de nuevo con zabbix rpm. Procedemos a instalarlo ya que no se encuentra en los repositorios de Centos.
# rpm -ivh checkinstall-1.6.0-3.el5.rf.i386.rpm # yum install rpm-build
- Usamos el comando checkinstall:
# cd zabbix-1.8.1 # checkinstall --nodoc --install=yes -y
Ya que estamos en Centos elegiremos la opción [R]:
- Si todo ha salido bien tendríamos que ver el siguiente mensaje:
********************************************************************** Done. The new package has been installed and saved to /usr/src/redhat/RPMS/i386/zabbix-1.8.1-1.i386.rpm You can remove it from your system anytime using: rpm -e zabbix-1.8.1-1 **********************************************************************
Ya esta instalado Zabbix en el PC.
- Comprobamos estado de MySQL:
# service mysqld status
- Iniciamos:
# service mysqld start
- Si esta es la primera vez que iniciamos MySQL, probablemente tendrás un mensaje que indica que el root no tiene contraseña. Cambiamos la contraseña para root:
# mysqladmin –u root password ‘nueva_contraseña_aquí’
- Usaremos el siguiente comando para hacer una instalación segura de MySQL:
# mysql_secure_installation
1º Nos pide la contraseña de root.
2º Nos pide que si queremos cambiar la contraseña de root.
3º Nos pide que si queremos quitar el usuario anónimo.
4º Nos dice que si queremos prohibir el logueo de root remotamente.
5º Nos dice que si queremos quitar la base de datos “test” que viene por defecto.
6º Nos pide que si queremos actualizar los privilegios ahora.
- Conectamos con la base de datos:
# mysql -u root -p
- Cuando introduzcamos la contraseña crearemos una base de datos con el siguiente comando:
mysql> create database zabbix character set utf8;
- Aplicamos privilegios:
mysql> grant all privileges on zabbix.* to ‘zabbix‘@‘localhost‘ identified by ‘establecer_contraseña_aqui‘;
mysql> quit;
Nota: Recordar siempre la contraseña para la configuración de los ficheros del Zabbix mas adelante.
- Dentro del directorio que nos encontrábamos anteriormente entramos en el siguiente directorio e importamos comandos de SQL:
# cd create/schema # cat mysql.sql | mysql -u zabbix -p zabbix # cd ../data # cat data.sql | mysql -u zabbix -p zabbix # cat images_mysql.sql | mysql -u zabbix -p zabbix
- Entramos de nuevo en MySQL y ejecutamos los siguientes comandos:
mysql> use zabbix; mysql> show tables; mysql> quit;
- Si existe algún problema ejecutamos el comando siguiente para borrar la base de datos (No creo que sea nuestro caso), en caso de ejecutarlo habría que empezar de nuevo este apartado:
mysql> drop database zabbix;
- Creamos una carpeta para Zabbix donde se alojaran los ficheros de configuración y copiamos ficheros en ese nuevo directorio:
# mkdir /etc/zabbix # cd ../.. # cp misc/conf/{zabbix_server.conf,zabbix_agentd.conf} /etc/zabbix/
- Abrimos el fichero zabbix_server.conf, ponemos el nombre de la base de datos en el primer parámetro, el usuario en el segundo y la contraseña en el tercer parámetro de abajo:
# vim /etc/zabbix/zabbix_server.conf
DBName=zabbix DBUser=zabbix DBPassword=tu_zabbix_mysql_contraseña
- Es recomendable cambiar los permisos de este fichero de configuración ya que en el se encuentra la contraseña:
# chmod 400 /etc/zabbix/zabbix_server.conf # chown zabbix /etc/zabbix/zabbix_server.conf
- Zabbix sabrá ahora con quien tiene que conectar.
- Creamos usuario:
#useradd -m -s /bin/bash zabbix
- Ingresamos como ese usuario:
#su - zabbix
- Ejecutamos los scripts para iniciar los servicios:
$ /usr/local/sbin/zabbix_agentd $ /usr/local/sbin/zabbix_server
Nota importante: En un principio para hacer un “service zabbix_server restart” me daba error porque no encontraba el script de arriba en la dirección que se pedía. Lo solucioné copiándolo en el lugar que te dice cuando te pone error la primera vez. Si no se hace eso se tiene que volver a ejecutar los comandos de arriba para poder iniciar luego el servidor y agente.
- Con el siguiente comando deberíamos ver los procesos arrancados para zabbix_server y zabbix_agentd:
$ ps -e | grep zabbix
- Nos logueamos como root:
$ su -
- Copiamos los scripts de nuestra fuente Zabbix en /etc/init.d/
# cd zabbix-1.8.1 # cp misc/init.d/redhat/8.0/zabbix_* /etc/init.d/
- Tras copiar zabbix_server y zabbix_agentd, abrimos este último y cambiamos progdir=”/usr/local/sbin/”:
# vim /etc/init.d/zabbix_agentd
- Añadimos los 2 servicios para que se inicien al encender el PC:
# chkconfig --add zabbix_server # chkconfig --add zabbix_agentd
Nota: El zabbix_server puede que haya que arrancarlo SIEMPRE con el comando “service zabbix_server start”.
- Verificamos que se han añadido correctamente:
# chkconfig --list # chkconfig --list | grep zabbix
- Damos permisos:
# chmod 755 /etc/init.d/zabbix_server # chmod 755 /etc/init.d/zabbix_agentd
- Comandos para este servicio:
# service zabbix_server {start|stop|restart|condrestart}
Tenemos Zabbix Server y el Agente instalado y funcionando en nuestro servidor, podemos controlar los servicios a éstos y el inicio cada vez que la máquina arranca en el nivel 3 o 5, pero todavía no tenemos nuestra interfaz web.
Aquí es donde Apache y PHP entran en juego. Tendremos que instalar algunos paquetes adicionales php para funcionalidad completa:
# yum install php-mysql php-gd php-bcmath php-mbstring
- Creamos la carpeta para los archivos web en /var/www/html/ y copiamos ficheros:
# mkdir /var/www/html/zabbix # cp -r frontends/php/ /var/www/html/
Decir que “frontends” es una carpeta que se localiza en el lugar donde descomprimimos las carpetas del zabbix.
- Para poder acceder a la página a través http://localhost/zabbix tendremos que cambiar el nombre de la carpeta a zabbix.
# mv /var/www/html/php/ /var/www/html/zabbix
Nota: Para entrar yo en enlace web tuve que poner la siguiente dirección: http://localhost/html/zabbix/. También modifique el fichero “httpd.conf” para poder acceder (Igual no hace falta pero así me funcionó):
vim /etc/httpd/conf/httpd.conf
- Cambie lo siguiente:
DocumentRoot "/var/www/html" a DocumentRoot "/var/www/"
- Comente las líneas siguientes:
# First, we configure the "default" to be a very restrictive set of # features. # ########Comente########<Directory /> ########Comente######## Options FollowSymLinks ########Comente######## AllowOverride None ########Comente########</Directory> ... # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.2/mod/core.html#options # for more information. # ########Comente######## Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # #########Comente####### AllowOverride None # # Controls who can get stuff from this server. # ########Comente######## Order allow,deny ########Comente######## Allow from all ########Comente########</Directory>
- Una vez ingresado la dirección web nos tiene que salir una imagen como la siguiente donde se nos da la bienvenida:
- Le damos a Next y veremos la pantalla de la licencia:
- Tras poner “I agree” le damos a siguiente para pasar a la pantalla de los pre-requisitos:
- Vemos que nos dará muchos failed la primera vez, es porque nos hace falta modificar un fichero para que este acorde con lo que pide el Zabbix.
- Entramos en el fichero a modificar:
# vim /etc/php.ini
- Cambiamos las líneas siguientes con los nuevos parámetros:
max_execution_time = 600 memory_limit = 256M post_max_size = 32M date.timezone = Atlantic/Canary mbstring.func_overload = 2
- Reiniciamos “httpd” para efectuar cambios:
# service httpd restart
- Tras dar a “Retry” en la imagen anterior deberíamos ver una imagen como la siguiente, de no ser así comprobar que se cambiaron bien los parámetros anteriores:
- Damos a Next y pasamos a la pantalla de “Configuración de la base de datos”:
- Introducimos los datos que se nos pide y le damos a “Test connection” para comprobar que hay conexión del usuario con la base de datos. Si da “Ok” pasamos a la siguiente pantalla de “Detalles de Zabbiz Server”:
- En la siguiente página nos aparece los detalles de la instalación y tras comprobar que todo está correcto pasamos a la siguiente pantalla donde se instalará.
- Posiblemente nos saldrá un “fail”, esto se debe a que tenemos que instalarlo manualmente. Para ello cliqueamos sobre “Save configuration file” y el archivo que genera lo guardamos en “/var/www/html/zabbix/conf/zabbix.conf.php” y finalmente damos a “Retry” para que nos salga un “Ok” y se quite el “Fail”.
- Pasamos a la siguiente pantalla y solo nos queda dar a “Finish”.
- Ya tenemos zabbix instalado como agente y servidor. Ahora tendriamos que instalar el agente zabbix en los PCs que queramos monitorizar.
- Creamos usuario zabbix, descargamos e instalamos:
# useradd -s /sbin/nologin zabbix
# wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/1.8.1/zabbix-1.8.1.tar.gz?use_mirror=freefr
# gunzip zabbix-1.8.1.tar.gz && tar -xvf zabbix-1.8.1.tar
# cd zabbix-1.8.1 # ./configure --enable-agent --prefix=/usr/local/zabbix --enable-static
# make install
# echo 'zabbix_agent 10050/tcp' >> /etc/services &&
echo 'zabbix_trap 10051/tcp' >> /etc/services
- Copiamos la configuración estándar:
# mkdir /etc/zabbix # cp misc/conf/zabbix_agentd.conf /etc/zabbix/
- Editamos la configuración del segundo archivo /etc/zabbix/zabbix_agentd.conf
Server= "Ip del servidor instalado anteriormente"
- Di todos los permisos a /etc/zabbix/zabbix_agentd.conf para asegurarme que funcionará, aplicar los adecuados según la ocasión:
# chmod 777 zabbix_agentd.conf
- Copiamos los siguientes archivos:
# cp misc/init.d/redhat/zabbix_agentd_ctl /etc/init.d/zabbix_agentd
- Editamos /etc/init.d/zabbix_agentd
BASEDIR=/usr/local/zabbix
- En /etc/init.d/zabbix_agentd añadimos, justo debajo de #! /bin/sh
# chkconfig: 345 95 95 # description: Zabbix Agentd
- Ejecutamos comando para que el servicio se inicie al encender el PC:
# chkconfig --level 345 zabbix_agentd on
- Iniciamos los agentes:
# /etc/init.d/zabbix_agentd start
- Si sale un error como el de abajo ejecutar el siguiente comando e intentamos iniciar el servicio:
/etc/init.d/zabbix_agentd: line 84: /usr/local/zabbix/bin/zabbix_agentd: No such file or directory /etc/init.d/zabbix_agentd start: zabbix_agentd could not be started
-Si tenemos algún tipo de error así:
# ln -s /usr/local/zabbix/sbin /usr/local/zabbix/bin
Nota: Aun con el comando anterior puede seguir dando fallo, lo arregle de la siguiente manera:
# cd /usr/local/zabbix/bin/
- Copiamos el contenido de la carpeta sbin en el lugar donde nos encontramos ahora:
# cp sbin/* .
- Iniciamos ahora el servicio:
# service zabbix_agentd start
- Y nos tiene que salir el siguiente mensaje:
/etc/init.d/zabbix_agentd start: zabbix_agentd started
- Ya tenemos el agente zabbix instalado en el PC a monitorizar.
- Descargamos el agente desde la siguiente dirección:
- Descomprimimos el zip e ejecutamos el instalador.
- Configuramos el agente con la IP de nuestro servidor Zabbix. Habilitamos “Enable Remote Commands” si queremos que el servidor Zabbix pueda ejecutar comandos sobre este PC.
- Instalamos. En este momento el servicio Zabbix Agentd ya está configurado y es visible en la sección “Servicios” de nuestro servidor.
Si algún servicio de un PC cae, este puede ser iniciado nuevamente sin necesidad de ir al PC correcto para ejecutar el comando ya que zabbix puede hacerlo, para ello necesitamos que en cada PC que vayamos a ejecutar comandos remotos tenga la siguiente configuración:
1. Editar el fichero de configuración de Zabbix:
# vim /etc/zabbix/zabbix_agentd.conf
2. Descomentar la siguiente linea:
EnableRemoteCommands=1
3. Reiniciamos Zabbix:
# /etc/init.d/zabbix_agentd restart
4. Editar los permisos de sudo para zabbix:
# visudo
5. Cometar la siguiente linea:
# Defaults requiretty
6. Añadir la siguiente linea al final del fichero (para dar permisos al usuario zabbix de ejecutar comandos como root sin preguntar contraseña):
# allows ‘zabbix’ user to run all commands without password. zabbix ALL=NOPASSWD: ALL
Nota: Para poder ejecutar comandos en equipos Windows tenemos que habilitar la casilla de “Enable remote commands” cuando estamos instalando el agente, tal y como hicimos en el apartado 8.
Ahora podemos crear una acción que cuando un iniciador cambie de estado se ejecute un comando concreto por ejemplo.
Antes que nada decir que el usuario ADMINISTRADOR de zabbix viene con una contraseña ya establecida es:
Usuario: admin
Contraseña: zabbix
Esta contraseña se puede cambiar en la pestaña de “Administración” del zabbix y señalando luego “usuarios”. Destacar que dentro de los usuarios podremos poner el lenguaje en español.
La aplicación Zabbix está compuesta por 5 menús que dependiendo del usuario que creamos podremos verlos todos o no. Estos 5 menús poseen a su vez una serie de submenús.
Ahora nombraremos cada uno de ellos:
1º Monitorización: En esta pestaña podremos ver todo lo que estamos monitorizando, en esta parte no se configura nada ya que para la configuración de todo lo que monitorizaremos esta la pestaña de “Configuración”.
-Dashboard : Es la pantalla principal del programa (si no la cambiamos), en ella vemos un resumen del estado de lo que estamos monitorizando como: El estado de zabbix, estado del sistema, estado de los equipos, los últimos 20 temas, estado de las páginas web que estamos monitorizando y el descubrimiento de la red según la regla que configuramos en la pestaña de configuración. En la parte izquierda de esta pantalla podemos agregar nuestros gráficos, pantallas y mapas favoritos.
Estado de zabbix:
Estado del sistema y estado de los equipos:
Últimos 20 temas:
Estado de las páginas web monitorizadas y descubrimiento de la red:
-Vistazo general: Aquí vemos detalles mas ampliados de los equipos que tenemos monitorizando.
-Web: Este submenú es para ver el estado de las web que estamos monitorizando, si entramos en ellas podremos ver unas graficas que nos muestra la velocidad y el tiempo de respuesta con la página web configurada.
-Última fecha: Vemos últimos datos de los PCs monitorizados con sus respectivas gráficas.
-Iniciadores: Los iniciadores son alertas que se ejecutan cuando cumplen una condición especifica como por ejemplo avisan de si un servicio esta apagado. En esta pantalla podremos ver las alertas que han surgido en cada ordenador dependiendo del PCs que seleccionemos. Podremos crear iniciadores para un grupo especifico o un PC en concreto en el apartado de “Configuración → Equipos” entrando en iniciadores.
-Eventos: Vemos el estado de los eventos configurados.
-Gráficos, pantallas y mapas: Podremos ver en cada uno de estos submenús las imágenes especificas de cada una de ellas que hayamos creado en los submenús de la pestaña de configuración. Ver las imágenes en este apartado tiene la ventaja de que se actualizan solas según el tiempo que hayamos puesto en el apartado de nuestro usuario. En la parte inferior tenemos una barra con el cual podemos movernos por el historial de las graficas tiempo atras.
Ejemplo de una gráfica:
Ejemplo de un mapa:
-Descubrimiento: Podemos ver los equipos que se han descubierta según la regla que hayamos puesto en la pestaña de configuración. Podremos ver cuanto tiempo hace que un equipo esta activo o cuanto tiempo hace que no lo esta.
-Servicios TI: En este submenú podemos ver el estado de los servicios que hemos creado y tambíen ver una gráfica del estado de cada servicio.
2º Inventario: En este apartado podemos ver el nombre del equipo, el grupo, nombre, sistema operativo, nº de serie, etiqueta y dirección MAC de los PC creados, para poder ver estos datos en este apartado hace falta que ingresemos estos datos en el apartado de “perfiles” a la hora de crear un nuevo equipo:
Lugar donde se ingresan estos datos (En la configuración de los equipos o cuando ser agrega un equipo nuevo):
3º Informes: Este menú posee 4 submenús en los que se puede ojear mas detenidamente lo que esta ocurriendo en los agentes, teniendo la posibilidad de filtrar informes para encontrar uno deseado.
4º Configuración: Este menú es prácticamente el más importante de la aplicación. Se divide en varios submenús:
-Grupos de equipos: En el se podrá crear grupos para luego ingresar PCs y monitores en ellos.
-Equipos: En este submenú es donde se crea los equipos, plantillas, monitores, iniciadores (alertas), gráficos y aplicaciones.
Cuando creas un equipo podrás ver si este esta disponible o no, debería estar disponible si tiene el agente instalado en el y además lo tiene iniciado.
Ejemplo de equipo disponible:
Ejemplo de equipo no disponible:
Como vemos si esta disponible para su monitorización veremos que la “Z” de la derecha esta en verde y si no lo esta estará en rojo.
Podemos crear también aplicaciones, monitores, iniciadores y gráficos para un equipo especifico entrando en los enlaces que tienen en la misma fila dicho equipo.
-Maintenance: Para crear mantenimientos.
-Web: Creando un escenario podemos monitorizar también páginas web.
-Acciones: Con las acciones podremos hacer que zabbix realice una serie de cosas cuando ocurra algún acontecimiento en cualquier PC. Por ejemplo: si se apaga un servicio podemos volver a activarlo indicándole a zabbix que ejecute un comando cuando este se apague. Para este caso anterior crearíamos una acción con un tipo de origen del evento llamada “Iniciadores”, elegimos esta opción porque la acción se ejecutará cuando la alarma o iniciador del servicio este apagado. Para crear la acción tenemos 3 cuadros: “Accion” (donde están los datos principales), “Action conditions” (donde pondremos los requisitos que se tienen que cumplir para que luego se ejecute la acción, y “Action operations” (donde elegiremos que acciones se ejecutara cuando salte la alarma en este caso).
En la imagen siguiente vemos que cuando el equipo sea igual a “Zabbix Server” y el Iniciador sea igual a “SSH server esta apagado en Zabbix Server” ejecutaremos un comando sudo /etc/init.d/sshd start para iniciar el servicio SSH. Pondremos delante del comando {HOSTNAME} o nombre del equipo seguido de dos puntos y luego el comando. En el siguiente enlace podremos ver las macros que podemos usar para las acciones o las alertas:
http://www.zabbix.com/wiki/howto/config/alerts/customizing_your_alerts
Imagen de como crear una acción para que cada vez que se apague el servicio SSH en “Zabbix Server” este se inicie automaticamente:
Destacar que hay 3 tipos de “Origen del evento”: Iniciadores, Descubrimiento y Auto registration. Para los “iniciadores” hace falta que salte una alarma para que se ejecute una acción. En “descubrimiento” se ejecutará una acción cuando se cumpla algún requisito del apartado de descubrimiento. Por último, para “auto registration” se ejecutará una acción cuando este cumpla una condición de las que posee esta opción.
-Pantallas: Aquí podemos crear un panel en el que puede contener todos los gráficos que queramos y así tener una agrupación de gráficos sin tener que movernos mucho por la aplicación para cambiar entre ellos.
-Mapas: Para crear un mapa de nuestra distribución de la red.
-Servicios TI: Aquí se crea servicios para calculen el estado de por ejemplo, si falla algún iniciador.
-Descubrimiento: Creando una regla podemos localizar los equipos que se encuentra en la red. Luego en la pestaña de “Monitorización” podemos ver si están activos o no.
-Exportar/Importar: Podremos guardar una copia de seguridad de los diferentes objetos de zabbix como son los PCs y tambíen importarlas.
5º Administración: En este apartado se centra mayormente en el control de zabbix, la creación de usuario, tipos de medios para enviar correos o sms, las auditorias para ver los sucesos, scripts para ejecutar en el apartado de “Monitorización –> mapas” sobre los objetos, “Authentication” para asegurarse una conexión segura, Colas de mensajes, Notificaciones e Instalation, para instalar de nuevo el zabbix.
http://www.zabbix.com/wiki/howto/install/centos/centosinstall
http://www.zabbix.com/documentation/1.8/complete
http://www.zabbix.com/documentation/1.8/manual/about/what_s_new
http://redes-privadas-virtuales.blogspot.com/2009/06/monitorizacion-de-servicios-con-zabbix_14.html
Instalar agente zabbix en Centos
Instalar agente zabbix en Windows
Ejecutar comandos remotos
http://zabbix-es.blogspot.com/
http://www.zabbix.com/
http://redes-privadas-virtuales.blogspot.com/2010/02/instalacion-del-servidor-zabbix-partir.html
http://redes-privadas-virtuales.blogspot.com/2009/06/monitorizacion-de-servicios-con-zabbix_09.html
http://blog.e2h.net/2010/05/07/instalando-zabbix-la-ultima-solucion-de-monitorizacion-de-codigo-abierto/#more-673