Está en la página 1de 17

MONITOREO DE REDES LINUX · Capítulo 04

Monitoreo: Capítulo 4

ZABBIX

blog.carreralinux.com.ar 1
MONITOREO DE REDES LINUX · Capítulo 04

Capítulo 04 - ZABBIX

ÍNDICE

Zabbix 3
Instalación de paquetes necesarios 4
Requisitos previos 5
Descargando fuentes 6
Creación esquema 7
Configurar, compilar e instalar 8
Configuración de scripts de inicio 9
Instalación de frontend 10
Instalación Zabbix 11
Instalación en cliente 12
Instalar agente en el servidor 15
Agregando elementos a monitorear 17

blog.carreralinux.com.ar 2
MONITOREO DE REDES LINUX · Capítulo 04

Capítulo 04 - ZABBIX

Zabbix

Zabbix es una solución de código abierto que


nos ofrece características de monitoriza-
ción, alertas y visualización que no tienen
otros sistemas de monitorización aún comer-
ciales.

Puede realizar:
1.- Monitorización distribuída.
2.- Detección tanto de rangos como de servicios y SNMP.
3.- Notificaciones por correo y SNMP.
4.- Visualización de mapas, gráficos, vistas personalizadas.
5.- Almacenamiento en diferentes bases de datos.

Es una solución bastante versátil y al mismo tiempo potente siendo que no tiene cos-
to. Dispone de mucha documentación. No tanto lo que es la documentación oficial,
sino que también en foros y en comunidades.

Es válida tanto en Debian, como en cualquier plataforma de


virtualización.

Dentro de lo que es la arquitectura de Zabbix podremos encontrar un servidor que es


el componente central a donde los agentes reportarán si se encuentran disponibles.
Este servidor es el repositorio centran en donde toda la configuración, estadística y
operacional se encuentra almacenada.

blog.carreralinux.com.ar 3
MONITOREO DE REDES LINUX · Capítulo 04

También tendremos un storage de base de datos donde toda la información de confi-


guración es recolectada y una interfaz web para una acceso a Zabbix desde cualquier
plataforma. Esta interfaz es parte del servidor Zabbix y usualmente; pero no necesa-
riamente, corre en la misma máquina física que el servidor o la base de datos.

Instalación de paquetes necesarios

Zabbix necesita un servidor web con soporte para PHP y un motor de BBDD. Tiene la
capacidad de soportar varios; siendo que en este caso utilizaremos MySQL. Sumado
a esto, necesita un arsenal de librerías para poder operar en su total capacidad. Para
todo esto va a pedir instalar los siguientes paquetes:
#apt-get update
#apt-get install apache2 php5 libapache2-mod-php5 php5-gd php5-mys-
ql mysql-server libmysql++-dev libsnmp-dev libcurl4-openssl-dev
libiksemel-dev openssh-server libssh2-1-dev build-essential fping
libphp-jabber

Durante este proceso de instalación va a pedir de crear el usuario de MySQL root


junto con su contraseña.

Esto lo tenemos que recordar ya que Zabbix


lo utilizará por única vez para crear su
propia base de datos con su propio usuario.

blog.carreralinux.com.ar 4
MONITOREO DE REDES LINUX · Capítulo 04

Requisitos previos

Ya tenemos todos los requisitos previos para instalar Zabbix. Recuerden que esta-
mos instalando el NMS y no la interfaz web aún. En muchas aplicaciones vamos a
observar este patrón donde la interfaz web es una aplicación totalmente separada del
motor NMS.

Esto se hace así para que la experiencia de usuario, o inter-


faz, pueda ser modificada sin necesidad de modificar el funcio-
namiento de la aplicación. Algo así como cambiar de pintura
sin cambiar el auto.

Ahora vamos a proceder a la instalación de Zabbix. Lo primero que necesitamos ha-


cer es crear un usuario de Zabbix que no tenga login y que lo único que haga sean los
chequeos correspondientes.

Hay que recordar que Zabbix no es un demonio


y lo que hace es hacer un polling cada cier-
ta cantidad de tiempo y cuando retorna esa
consulta simplemente la guarda en la BBDD y
la muestra por pantalla. Pero es una apli-
cación en PHP, no es un demonio.

O sea, no es un proceso que corre en background y tiene asociado un puerto en el


cual se encuentra escuchando sino que se activará de manera periódica para la reco-
lección de datos; pero no es un demonio.

blog.carreralinux.com.ar 5
MONITOREO DE REDES LINUX · Capítulo 04

Luego lo que haremos es crear un usuario sin login y sin password y sin shell. De
manera que no se puede acceder al server usando user Zabbix:
adduser --disabled-password --disabled-login --shell /bin/false
zabbix

Descargando fuentes

Ahora vamos a cambiar a user Zabbix. Recuerden que la configuración anterior fue
para que no se pueda acceder como Zabbix, por lo que al momento de cambiar de
usuario, debemos forzar con el parámetro -s que utilice una shell en particular. Una
vez adentro, si podremos siendo root cambiar a ese perfil:
su -s /bin/bash zabbix

El -s se refiere a que utilice el bash como shell.

Recuerden que anteriormente habíamos seteado para que ese usuario no tenga shell.
Entonces, de esta manera, hacemos un bypass de esa opción:
cd /tmp
wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20La-
test%20Stable/<versión>/zabbix-<versión>.tar.gz

Esto lo que hace es descargar el fuente en el /tmp. La palabra


versión debe ser reemplazada por la versión correspondiente.

blog.carreralinux.com.ar 6
MONITOREO DE REDES LINUX · Capítulo 04

Creación esquema

Ahora vamos a crear lo que es el esquema de las bases de datos. O sea, dejaremos
creadas tablas y los elementos mínimos para que Zabbix comience a funcionar:
# mysql -plinux -uroot

Con este comando ingresaremos a la base de datos. El password


es el que colocamos durante la instalación.

En nuestro ejemplo NMS, interfaz web y base de datos se encontrarán dentro del
mismo host:
mysql> CREATE DATABASE zabbix CHARACTER SET utf8;
mysql> GRANT ALL PRIVILEGES ON zabbix.* TO ‘zabbix’@’localhost’
IDENTIFIED BY ‘zabbix’;

zabbix es la contraseña que utilizará el NMS para poder acceder a la base de datos
y de esa manera realizar el proceso de escritura correspondiente:
mysql> quit

Ahora tenemos que colocar las plantillas. Lo que hicimos fue crear la base de datos
y darle privilegios al usuario Zabbix para que pueda hacer cualquier operación sobre
la BBDD; pero solo sobre la BBDD.

No hay que confundir este usuario con el usuario de login del


sistema.

Bien, carguemos las plantillas. Esto lo que hará será crear el esquema de la base de
datos, o sea, creará las tablas con sus relaciones y los datos mínimos para que Zab-
bix arranque. -u es el usuario, -p la password y zabbix se refiere a la base de datos.
# tar -zxvf zabbix-version-.tar.gz
# cd /tmp/zabbix-version/database/mysql
# mysql -uzabbix -pzabbix zabbix < schema.sql
# mysql -uzabbix -pzabbix zabbix < images.sql
# mysql -uzabbix -pzabbix zabbix < data.sql

blog.carreralinux.com.ar 7
MONITOREO DE REDES LINUX · Capítulo 04

Configurar, compilar e instalar

Vamos a configurar las fuentes para dar soporte como servidor, instalar el agente en
el servidor Zabbix, usar MySQL como contenedor de datos; soporte para SNMP y
CURL. El agente es una aplicación que sirve para monitorear de manera activa los
recursos y aplicaciones locales del host donde se encuentre corriendo.

01 Para ello ejecutamos el siguiente comando como Zabbix:


# cd /tmp/zabbix-version
# ./configure --enable-server --with-mysql –with-net-snmp --wi-
th-libcurl

02 Luego debemos volver a transformarnos en root y ejecutar lo siguiente:


# cd /tmp/zabbix-version
# make && make install

03 Ahora vamos a agregar los puertos de Zabbix en el /etc/services, seguramen-


te ya vienen; pero no está de más revisar. Aparte para saber los puertos cono-
cidos que utilizará Zabbix:
# cat /etc/services
zabbix_agent 10050/tcp
zabbix_trap 10051/tcp

04 Tenemos también que crear los directorios de configuración y le asignamos


como propietario a Zabbix ya que precisa leer de los mismos:
# mkdir /etc/zabbix
# cp -rfv conf/zabbix_* /etc/zabbix
# chown -R zabbix:zabbix /etc/zabbix

blog.carreralinux.com.ar 8
MONITOREO DE REDES LINUX · Capítulo 04

05 Y editamos el archivo de configuración del servidor Zabbix para colocarle nues-


tros parámetros de conexión a la BBDD. Ojo con esto, tengamos cuidado
con quien accede a nuestro server. Y mucho menos haber puesto la misma
password de administración como la de Zabbix:
vi /etc/zabbix/zabbix_server.conf
--> DBUser=zabbix
--> DBPassword=zabbix

Configuración de scripts de inicio

01 Para que el server y el agente arranquen de forma predeterminada durante el


inicio tendremos que ejecutar los siguientes comandos como root:
# cd /tmp/zabbix-version
# cp misc/init.d/debian/zabbix-* /etc/init.d/

02 Nos queda por asignar los permisos a los scripts y el nivel de arranque a iniciar.
Para ello como root ejecutamos:
# chmod 755 /etc/init.d/zabbix-*

03 Y ahora debemos agregarlo al inicio:


# update-rc.d zabbix-server defaults
# update-rc.d zabbix-agent defaults
# rm /usr/local/etc/zabbix_server.conf
# ln -s /etc/zabbix/zabbix_server.conf /usr/local/etc/zabbix_
server.conf

blog.carreralinux.com.ar 9
MONITOREO DE REDES LINUX · Capítulo 04

04 Y ahora nos resta iniciar Zabbix tanto el server:


# /etc/init.d/zabbix-server start
# ps -auxw | grep zab
zabbix 15641 /usr/local/sbin/zabbix_server
zabbix 22325 /usr/local/sbin/zabbix_server
zabbix 22326 /usr/local/sbin/zabbix_server
zabbix 22327 /usr/local/sbin/zabbix_server
zabbix 22328 /usr/local/sbin/zabbix_server

Como el agente:
# /etc/init.d/zabbix-agent start
# netstat -putan | grep zab

05 Y veremos los puertos en escucha.

Instalación de frontend

01 Ahora vamos a instalar nuestra interfaz web para nuestro server Zabbix. En
este ejemplo lo haremos en el sitio por defecto de apache; pero tranquilamente
puede hacerse en un virtualhost customizado:
# cd /var/www/html
# rm index.html
# cp -Rfv /tmp/zabbix-<version>/frontends/php/* /var/www/html

02 Bien, ahora veamos para modificar ciertas opciones de PHP que precisa el
frontend para poder arrancar:
# vi /etc/php5/apache2/php.ini

blog.carreralinux.com.ar 10
MONITOREO DE REDES LINUX · Capítulo 04

03 Y modificamos lo siguiente. La zona horaria dependerá del lugar donde se en-


cuentren:
--> max_execution_time = 300
--> max_input_time = 600
--> post_max_size = 32M

04 Luego tenemos que descomentar lo siguiente:


--> always_populate_raw_post_data = -1
--> date.timezone = America/Argentina/Buenos_Aires

Instalación Zabbix

01 Cambiaremos de owner la carpeta por default, ya que apache precisará escri-


bir dentro de esta para guardar los cambios de configuración:
# chown -R www-data:www-data /var/www/html
# /etc/init.d/apache2 restart

02 Entrar a:
http://ip_del_servidor

03 Y se nos abrirá la pantalla de Setup. El primer punto es el Welcome. Hacien-


do click en Next revisará que tengamos todo correctamente configurado. De
quedar algo pendiente, nos lo marcará en color rojo para que nosotros lo mo-
difiquemos.

Recuerden que luego de cada modificación de-


bemos de realizar un restart del servidor de
apache para que refresque los cambios.

blog.carreralinux.com.ar 11
MONITOREO DE REDES LINUX · Capítulo 04

04 La pantalla siguiente es la de acceso a la base de datos. Solo debemos de


cargar el password del usuario zabbix que creamos anteriormente. Luego, el
puerto del Zabbix server para recibir los traps. Si quisiéramos también pode-
mos colocarle un nombre descriptivo.

05 Finalmente solo resta dar siguiente y habremos terminado la instalación. Au-


tomáticamente nos llevará a la pantalla de login cuyo usuario y password por
defecto es:
User admin
Pass: zabbix

Configuration → Hosts → Not monitored. Zabbix server


Monitoring → Maps

Instalación en cliente

01 Primero, debemos crear el host que vamos a monitorear y para esto vamos a:
Configuration → Hosts → Create Host

02 Llamaremos a nuestro nuevo host monitoreo-host:


DNS name: 8.8.8.8 [example dns name only]
IP address: ip_host Esta es la IP del host.
Port: 10050 Este es el puerto de escucha del agente.
SNMP Interfaces: aquí colocamos los datos del demonio SNMP.

03 Y salvamos.

blog.carreralinux.com.ar 12
MONITOREO DE REDES LINUX · Capítulo 04

Si queremos podremos desactivar el monitoreo podremos hacer


click en Disable, ya que nos dará error porque no está acti-
vado el agente.

04 Ahora debemos loguearnos en el cliente que es el equipo monitoreado y los


pasos a realizar para instalar el agente son:
# cd /tmp
# wget --no-check-certificate https://downloads.sourceforge.net/
project/zabbix/ZABBIX%20Latest%20Stable/3.2.3/zabbix-3.2.3.tar.gz

05 Y luego instalaremos el agente. Noten como en este caso, el configure es con


--enable-agente:
# tar -zxvf zabbix-version
# cd zabbix-version
# ./configure --enable-agent --prefix=/usr/local/zabbix && make
install

06 Agregamos el usuario zabbix:


# adduser --disabled-password --disabled-login --shell /bin/fal-
se zabbix

07 Luego copiamos el archivo de configuración:


# mkdir /etc/zabbix
# cp -rfv conf/zabbix_* /etc/zabbix
# chown -R zabbix:zabbix /etc/zabbix

08 Ahora lo configuramos:
# rm /usr/local/zabbix/etc/zabbix_agentd.conf
# rm /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_agentd.conf
# ln -s /etc/zabbix/zabbix_agentd.conf /usr/local/zabbix/etc/za-
bbix_agentd.conf
# ln -s /etc/zabbix/zabbix_agentd.conf /usr/local/zabbix/etc/za-
bbix_agentd.conf.d/zabbix_agentd.conf
# vi /etc/zabbix/zabbix_agentd.conf

blog.carreralinux.com.ar 13
MONITOREO DE REDES LINUX · Capítulo 04

09 Colocamos:
Server=ip_del_nms
Hostname=hostname_delnms
#ServerActive

10 Y ahora configuramos init.d:


# cp misc/init.d/debian/zabbix-agent /etc/init.d/
# update-rc.d zabbix-agent defaults

11 Y nos fijamos que coincida esto en el agentd:


# vi /etc/init.d/zabbix-agent
NAME=zabbix_agentd
DAEMON=/usr/local/sbin/${NAME}

12 Si hago:
# file /usr/local/sbin/zabbix_agentd

13 Si no devuelve nada no se debe haber copiado bien. Para esto haremos:


# cp ./src/zabbix_agent/zabbix_agentd / /usr/local/sbin/

14 Ejecutamos lo siguiente para linkear todos los archivos de configuración al


mismo:
# cd /usr/local
# ln -s /usr/local/zabbix/sbin/zabbix_agentd

15 Lo iniciamos:
# /etc/init.d/zabbix-agent start
# netstat -nap | grep zabbix
tcp LISTEN 9455/zabbix_agentd

blog.carreralinux.com.ar 14
MONITOREO DE REDES LINUX · Capítulo 04

16 Y nos fijamos para ver que este activo:


cat /tmp/zabbix_agentd.log

17 Ahora si, dentro del servidor activamos monitor-host. Después de un rato va-
mos a poder ver la info en:
Monitoring → Latest data

Instalar agente en el servidor

01 Los pasos son los mismos que en el cliente. Primero ingresemos al código
fuente que ya tenemos descargado e instalamos:
# cd zabbix-version
# ./configure --enable-agent --prefix=/usr/local/zabbix && make
install

02 Luego copiamos el archivo de configuración:


# cp -rfv conf/zabbix_agentd /etc/zabbix

03 Ahora lo configuramos:
# rm /usr/local/zabbix/etc/zabbix_agentd.conf
# rm /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix_agentd.conf
# ln -s /etc/zabbix/zabbix_agentd.conf /usr/local/zabbix/etc/za-
bbix_agentd.conf
# ln -s /etc/zabbix/zabbix_agentd.conf /usr/local/zabbix/etc/za-
bbix_agentd.conf.d/zabbix_agentd.conf
# vi /etc/zabbix/zabbix_agentd.conf

04 Colocamos:
Server=127.0.0.1
Hostname=hostname_delnms

blog.carreralinux.com.ar 15
MONITOREO DE REDES LINUX · Capítulo 04

05 Y ahora configuramos init.d:


# cp misc/init.d/debian/zabbix-agent /etc/init.d/
# update-rc.d zabbix-agent defaults

06 Y nos fijamos que coincida esto en el agentd:


# vi /etc/init.d/zabbix-agent
NAME=zabbix_agentd
DAEMON=/usr/local/sbin/${NAME}

07 Si hago:
# file /usr/local/sbin/zabbix_agentd

08 Si no devuelve nada no se debe haber copiado bien. Para esto haremos:


# cp ./src/zabbix_agent/zabbix_agentd / /usr/local/sbin/

09 Ejecutamos lo siguiente para linkear todos los archivos de configuración al


mismo:
# cd /usr/local
# ln -s /usr/local/zabbix/sbin/zabbix_agentd

10 Lo iniciamos:
# /etc/init.d/zabbix-agent start
# netstat -nap | grep zabbix
tcp LISTEN 9455/zabbix_agentd

11 Y nos fijamos para ver que este activo:


cat /tmp/zabbix_agentd.log

12 Ahora si, dentro del servidor activamos monitor-host. Después de un rato va-
mos a poder ver la info en:
Monitoring → Latest data

blog.carreralinux.com.ar 16
MONITOREO DE REDES LINUX · Capítulo 04

Agregando elementos a monitorear

Ahora deberemos de agregar que elementos deseamos de monitorear de los hosts.


Por ejemplo, en nuestro cliente debemos ingresar a:
Configuration → Hosts

Y hacer click en el host. Luego, arriba nos aparecerán las solapas de Templates. Es-
tas son un set de entidades aplicables a varios hosts.

El objetivo de los templates es acelerar


el deploy de las tareas de monitoreo en un
Host.

Si hacemos click ahí, nos aparecerá una barra de búsqueda. Aquí ponemos, por
ejemplo, Template App Zabbix Agent y Template SNMP OS Linux.

Haremos click en Add y luego en Update. Cuando hagamos esto, si volvemos a la


pantalla de Hosts podremos seleccionar que aplicaciones monitorear.

blog.carreralinux.com.ar 17

También podría gustarte