Llevo unos días informándome de algún sistema que permita la monitorización de servidores con la misma finalidad que siempre: aprender
.
Buscando por la red encontré distintas aplicaciones de código libre entre las cuales se encuentra zabbix. Mi principal objetivo es el de disponer de un sistema de monitorización que me avise por mail cuando se produce la caída de cualquier servicio del servidor (ssh, ftp, apache, bind, etc). Zabbix permite eso y mucho más.
A continuación os explico como instalar la última versión en linux debian:
Instalamos todos los requerimientos de zabbix:
aptitude -y install build-essential libmysqlclient-dev libssl-dev libsnmp-dev apache2 libapache2-mod-php5 php5-gd php5-mysql mysql-server
Añadimos el grupo y usuario zabbix ya que es necesario para la aplicación:
groupadd zabbix
useradd -c 'Zabbix' -d /home/zabbix -g zabbix -s /bin/bash zabbix
mkdir /home/zabbix
chown zabbix:zabbix /home/zabbix
Creamos la base de datos para zabbix:
mysql -p -u root
create database zabbix;
grant all on zabbix.* to 'zabbix'@'localhost' identified by 'PASSWORD';
quit;
Nota: debes substituir PASSWORD por la contraseña que le quieras asignar.
Descargamos y descomprimimos las fuentes
cd /home/zabbix
wget http://ovh.dl.sourceforge.net/sourceforge/zabbix/zabbix-1.6.2.tar.gz
tar zxvf zabbix-1.6.2.tar.gz
cd zabbix-1.6.2
Compilamos el código fuente y instalamos zabbix_server y zabbix_agentd.
./configure --prefix=/usr --with-mysql --with-net-snmp --enable-server --enable-agent --with-libcurl
make
make install
Añadimos los puertos a /etc/services y creamos algunos ficheros de configuración:
echo " zabbix_agent 10050/tcp # Zabbix ports
zabbix_trap 10051/tcp" >> /etc/services
mkdir -p /etc/zabbix
chown -R zabbix:zabbix /etc/zabbix
cp misc/conf/zabbix_* /etc/zabbix
Modificamos los datos de acceso a la base de datos:
nano /etc/zabbix/zabbix_server.conf
Modificamos lo siguiente:
DBHost=localhost o tu db host
DBName=zabbix
DBUser=zabbix
DBPassword=ZABBIX_PASSWORD
Nota: ZABBIX_PASSWORD corresponde con la contraseña que configuamos cuando dimos permisos con GRANT.
Copiamos los iniciadores de los servicios y hacemos una pequeña modificación:
cp /home/zabbix/zabbix-1.6.2/misc/init.d/debian/* /etc/init.d/
nano /etc/init.d/zabbix-agent
Buscamos la linea
DAEMON=/home/zabbix/bin/${NAME}
y la substituimos por
Ahora con el otro fichero:
nano /etc/init.d/zabbix-server
Buscamos la linea
DAEMON=/home/zabbix/bin/${NAME}
y la substituimos por
Subimos las tablas a la base de datos:
mysql -u root -p zabbix < /home/zabbix/zabbix-1.6.2/create/schema/mysql.sql
mysql -u root -p zabbix < /home/zabbix/zabbix-1.6.2/create/data/data.sql
mysql -u root -p zabbix < /home/zabbix/zabbix-1.6.2/create/data/images_mysql.sql
Modificamos la configuración de nuestro php:
nano /etc/php5/apache2/php.ini
Modificamos lo siguiente:
max_execution_time = 300
date.timezone = Europe/Madrid
Reiniciamos apache e iniciamos los servicios de zabbix:
/etc/init.d/apache2 restart
/etc/init.d/zabbix-server start
/etc/init.d/zabbix-agent start
Ya podemos acceder a zabbix desde http://tu_ip/zabbix/ y seguimos las instrucciones.