Esta vez tendremos una completa guia de como instalar zabbix 2.4.5 en Servidores Centos/Red Hat versiones 7 o posterior.
Es un Sistema de Monitoreo de Redes creado por Alexei Vladishev. Está diseñado para monitorear y registrar el estado de varios servicios de red, Servidores, y hardware de red.
Usa MySQL, PostgreSQL, SQLite, Oracle o IBM DB2 como base de datos. Su backend está escrito en C y el frontend web está escrito en PHP. Zabbix ofrece varias opciones de monitoreo:
- Chequeos simples que pueden verificar la disponibilidad y el nivel de respuesta de servicios estándar como SMTP o HTTP sin necesidad de instalar ningún software sobre el host monitoreado.
- Un agente Zabbix puede también ser instalado sobre máquinas UNIX y Windows para monitorear estadísticas como carga de CPU, utilización de red, espacio en disco, etc.
- Como alternativa a instalar el agente sobre los host, Zabbix incluye soporte para monitorizar vía protocolos SNMP, TCP y ICMP, como también sobre IPMI, JMX, SSH, telnet y usando parámetros de configuración personalizados. Zabbix soporta una variedad de mecanismos de notificación en tiempo real, incluyendo XMPP.
- Alto rendimiento y capacidad de monitoreo de dispositivos (Servidores, Hardware como Impresoras, Routers, entre otros).
- Monitoreo centralizado a través del administrador Web (FrontEnd).
- Agentes que puede instalarse en diferentes sistemas operativos ejemplo: Linux, Solaris, HP-UX, AIX, FreeBSD, OpenBSD, OS X, Tru64/OSF1, Windows 2000, Windows Server 2003, Windows XP, Windows Vista, Windows Server 2008, Windows 7, Windows 8 y recientemente Windows 2012
- SLA que le permite analizar la calidad de los servicios prestados de su IT a su organización.
Zabbix le ofrece monitoreo para “LAN, Redes locales” y “WAN, redes de área amplia”. La aplicación se instala en un servidor (Linux) y luego es dedicado a “Recolectar información”. Proporciona un interfaz WEB en el cual presenta de forma gráfica toda la información que recolecta. Cuenta con agentes para Linux, Mac y Windows que se instalan en los “Servidores” o “Estaciones de trabajo” que le interese monitorear. Adicional esta solución le permite ver el estado de Impresoras, Routers, Switches, sensores de temperatura y humedad entre otros.
Las tres aplicaciones se presenta como soluciones Open Source sin embargo el único 100% libre es Zabbix. Tanto Nagios y Zenoos su modelo de negocio lo basan en venta de plugins o versiones extendidas del producto. En cambio Zabbix vive de Certificaciones a profesionales IT, libros y soporte.
En el caso de Zabbix todo lo que necesite para monitoreo está disponible de forma libre, con el detalle que la configuración es un poco más técnica sin embargo es fácil de comprender.
Nos centraremos en la instalación sistemas Centos y RedHat en otra entrada hablaré de su instalación en Ubuntu/Debian. Al momento de escribir el tutorial Zabbix no ofrece un paquete precompilado debemos descargar el source y compilarlo a mano.
1. Instalar Dependencias
Para poder compilar debemos instalar todas las dependencias y herramientas necesarias. Para la versión 2.4.5 necesitamos: build-essentials, development tools, GCC, curl, wget y algunas dependencias para el soporte de SNMP.
Entramos en nuestra terminal como root y lanzamos.
yum install gcc gcc-c++ make openssl-devel curl wget net-snmp net-snmp-utils net-snmp-libs net-snmp-devel gnutls gnutls-devel libxml2 libxml2-devel
2. Instalar la base de datos MariaDB y sus Librerías
Debemos instalar MariaDB y la librería MySQL development.
yum install mariadb-server mariadb-client mariadb-develiniciamos el servicio:
systemctl start mariadb.serviceCuando terminemos la instalación debemos asegurar la Base de datos usando mysql_secure_installation con privilegios administrativos.
mysql_secure_installationSe inicia un asistente para configurar la Base de datos debemos responder de la siguiente manera:
Enter current password for root ##Presionamos enter Set root password? (Y/n) ##Decimos no Remove anonymous users? ##Decimos yes Disallow root login remotely? ##Decimos yes Remove test database and access to it ? ##Decimos yes Reload privilege tables now? ##Decimos yes All done! If you’ve completed all of the above steps, your MariaDB installation should now secure.Con esto estaría todo.
3. Instalar Servidor Apache y PHP
El siguiente paso será instalar el servidor Web con PHP. (En centos el Paquete Apache es httpd).
yum install httpd php php-mysql php-gd pgp-cli php-xml php-bcmath php-mbstring mod_ssl opensslDebemos configurar el intérprete PHP y ajustar algunos valores para que pueda utilizar con el servidor Zabbix. Abrimos php.ini en mi caso usare el editor vim y cambiaremos algunos valores mostraré el valor por defecto a la izquierda y el modificado a la derecha.
vim /etc/php.ini
post_max_size = 8M → post_max_size = 16M max_execution_time = 30 → max_execution_time = 300 max_input_time = 60 → max_input_time = 300 ;date.timezone = Continent/City → date.timezone = America/Caracas #Recuerden eliminar el ; ;always_populate_raw_post_data = On → always_populate_raw_post_data = -1En mi caso he colocado el horario de venezuela, pueden ver la lista de Zonas horarias compatibles con PHP en ----> http://php.net/manual/en/timezones.php
Cerramos el archivo guardando los cambios y reiniciamos el servicio de apache.
systemctl restart httpd.serviceEstará reciniciando.
4. Descargar y Compilar Zabbix Server
Luego de haber preparado el sistema podemos descargar la versiones de Zabbiz desde su pagina oficial, Al momento de escribir el tutorial la versión estable es la 2.4.5 podemos descargarla con wget.
wget http://sourceforge.net/projects/zabbix/files/ZABBIX\ Latest\ \Stable/2.4.5/zabbix-2.4.5.tar.gzPuedes ver otras versiones desde su Repositorio Oficial ---> http://sourceforge.n...s/zabbix/files/
Despues de descargar el comprimido procedemos a descomprimir
tar xfz zabbix-2.4.5.tar.gz # cd zabbix-2.4.5.tar.gz/ # lsPodemos ver todas las opciones al momento de compilar el binario con ./configure -h en el caso de este laboratorio usare una instalación típica usando los siguientes parametros.
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2Esperamos un tiempo luego corremos con make para crear el ejecutable. (Este paso puede tardar más que cuando configuramos) ya para finalizar usamos make install.
# make # make installMake install.
5. Ajustes luego de la Instalación
Después de instalado debemos crear un usuario sin privilegios administrativos para correr los procesos de Zabbix como un demonio. Podremos usar useradd.
groupadd zabbix useradd -g zabbix -d /usr/local/share/zabbix -s /bin/false zabbix useradd: warning: the home directory already exists. Not copying any file from skel directory into it.
6) Configurar Base de Datos MariaDB para Zabbix
Crearemos una Base de Datos para Zabbix y que pueda tener acceso desde el usuario zabbix.
mysql -u root -p MariaDB> create database zabbix; MariaDB> grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'tu contraseña'; MariaDB> flush privileges; MariaDB> exitRecuerda cambiar la contraseña por una propia para la base de datos. En caso que queremos usar una BD externa a nuestro servidor usamos.
MariaDB> grant all privileges on zabbix.* to 'zabbix'@'%' identified by 'your_password';Debemos volver al directorio del instalador de Zabbix en caso de no estar en el, Lista las tablas MySQL y las importas a las nueva Base de Datos que hemos creado usando.
[root@Joncak1 zabbix-2.4.5]# mysql -u zabbix -p zabbix < database/mysql/schema.sql Enter password: [root@Joncak1 zabbix-2.4.5]# mysql -u zabbix -p zabbix < database/mysql/images.sql Enter password: [root@Joncak1 zabbix-2.4.5]# mysql -u zabbix -p zabbix < database/mysql/data.sql Enter password: [root@Joncak1 zabbix-2.4.5]#
7. Configurar el Servidor Apache para Zabbix
Ya hemos importados las carpetas ahora debemos hacer lo mismo para los archivos del servidor web. Debemos eliminar todo el Contenido que este en /var/www/html/
rm /var/www/html/index.html cp -rf frontends/php/* /var/www/html/Debemos añadir el usuario zabbix que hemos creado al grupo de apache, adicional habilitar SSL Apache para poder correr Zabbix en https
usermod -aG apache zabbix a2enmod ssl a2ensite default-sslDebemos reiniciar el servidor web para que puedan aplicarse los cambios.
systemctl restart httpd.serviceEstarán aplicados.
8. Configurar Servidor Zabbix
Ahora debemos modificar el archivo de configuración de Zabbix recuerden usar el editor de texto que prefieran en mi caso usare vim.
vim /usr/local/etc/zabbix_server.conf #ListenPort=10051 → ListenPort=10051 LogFile=/tmp/zabbix_server.log → LogFile=/var/log/zabbix_server.log #DBHost=localhost → DBHost=localhost #En caso que la DB sea Remota colocar la ip aca. DBName=zabbix → #Colocar el nombre de la Base de Datos. DBUser=root → DBUser=zabbix #DBPassword= → DBPassword='svradm2010' DBSocket=/tmp/mysql.sock → DBSocket=/var/run/mysqld/mysqld.sock #DBPort=3306 → DBPort=3306Debemos crear el archivo donde Zabbix arrojará los logs y añadir permisos para que el Zabbix pueda escribir en el.
touch /var/log/zabbix_server.log chmod 775 /var/log/zabbix_server.log chgrp zabbix /var/log/zabbix_server.logFinalmente luego de concluir con todas las configuraciones podemos iniciar el Servidor Zabbix y su Agente para que pueda recolectar información en local.
/usr/local/sbin/zabbix_server /usr/local/sbin/zabbix_agentd /usr/local/sbin/zabbix_agentPodemos verificar que está corriendo usando netstat.
[root@Joncak1 local]# netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 13512/mysqld tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 977/Xvnc tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 591/rpcbind tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 977/Xvnc tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 962/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1005/master tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 23811/zabbix_agentd tcp6 0 0 :::111 :::* LISTEN 591/rpcbind tcp6 0 0 :::80 :::* LISTEN 23778/httpd tcp6 0 0 :::6001 :::* LISTEN 977/Xvnc tcp6 0 0 :::22 :::* LISTEN 962/sshd tcp6 0 0 ::1:25 :::* LISTEN 1005/master tcp6 0 0 :::443 :::* LISTEN 23778/httpd tcp6 0 0 :::10050 :::* LISTEN 23811/zabbix_agentd udp 0 0 0.0.0.0:68 0.0.0.0:* 815/dhclient udp 0 0 0.0.0.0:23110 0.0.0.0:* 815/dhclient udp 0 0 0.0.0.0:111 0.0.0.0:* 591/rpcbind udp 0 0 0.0.0.0:123 0.0.0.0:* 592/chronyd udp 0 0 0.0.0.0:41601 0.0.0.0:* 583/avahi-daemon: r udp 0 0 0.0.0.0:5353 0.0.0.0:* 583/avahi-daemon: r udp 0 0 0.0.0.0:752 0.0.0.0:* 591/rpcbind udp 0 0 127.0.0.1:323 0.0.0.0:* 592/chronyd udp6 0 0 :::111 :::* 591/rpcbind udp6 0 0 :::123 :::* 592/chronyd udp6 0 0 :::18132 :::* 815/dhclient udp6 0 0 :::752 :::* 591/rpcbind udp6 0 0 ::1:323 :::* 592/chronydAhora pasamos a la instalción.
9. Instalar Interfaz Web de Zabbix
Ya para finalizar debemos instalar y configurar la interfaz web de Zabbix. Debemos usar un navegador y entrar en la dirección del servidor que hemos configurado.
http://direccion_IP/setup.php
o ingresar por SSL
https://direccion_IP/setup.php
Tildamos next luego verifica varios pasos en caso de ser correcto podremos proseguir.
Anexo la lista de todos los Requisitos por si llega a faltar algo.
Colocamos los credenciales de la Base de Datos que habíamos creado.
Añadimos los detalles del servidor Backend de Zabbix.
Nos dará un resumen de las opciones que hemos colocado importante antes de presionar next debemos cambiar los valores del archivo para que puedan ser modificados por el grupo apache.
chown -R apache /var/www/html/conf/Y volvemos al navegador y presionamos next.
De estar correcto veremos esta pantalla.
Volvemos a la consola y cambiamos la permisología del archivo:
chown -R apache /var/www/html/conf/Felicidades has instalado Zabbix server y puedes entrar con el usuario por defecto.
usuario: admin contraseña: zabbix
Uff que interesante. Gracias.