User Tools

Site Tools


informatica:linux:zabbix

This is an old revision of the document!


zabbix

monitor snmp graphs

Instalacion

Resumen de maquinas:

Hostname Comentarios
monitor-1.dev.jj.com Servidor Zabbix
mysql-1.dev.jj.com Servidor de bases de datos
www-1.dev.jj.com Frontend web para el servidor zabbix

NOTA ahora mismo el paquete 'zabbix-server-mysql' de los repositorios oficials de Debian se queda colgado

Servidor Zabbix

Version 2.0.2 repositorio no oficial

1. (monitor-1.dev.jj.com) Anyadir al sources list el repositorio de http://guruhub.com.uy:

sudo su
echo "deb http://repo.guruhub.com.uy/debian/ squeeze main" >/etc/apt/sources.list.d/guruhub-squeeze.list

2. Anyadir sus claves. A mi no me funciono, me sigue dando un warning:

wget -q -O - http://repo.guruhub.com.uy/guruhub.apt.gpg | sudo apt-key add -

3. Actualizar e instalar el paquete (probablemente dara un warning):

sudo aptitude update; sudo aptitude install zabbix-server-mysql

Indicar que se quiere instalar la base de datos en local, y asignarle un usuario y una contrasenya. Luego haremos unos cambios para apuntar a 'mysql-1.dev.jj.com'.

Quiza haya que reconfigurar el paquete:

sudo dpkg-reconfigure zabbix-server-mysql

4. Para el servidor zabbix:

sudo /etc/init.d/zabbix-server stop

5. Hacer un volcado de la base de datos (el nombre se especifica en el paso 3, asumo que es 'zabbix'):

sudo mysqldump --add-drop-table -e zabbix > /tmp/zabbix_dump.sql -u mi_usuario -p

Le anyadimos que use la base de datos zabbix:

sudo vim /tmp/zabbix_dump.sql

Teclear al inicio:

use zabbix;

6. Copiar el volcado a la base de datos (mysql-1.dev.jj.com en el ejemplo):

scp /tmp/zabbix_dump.sql mysql-1.dev.jj.com:/tmp/

7. Desinstalar mysql server y dependencias:

sudo aptitude remove mysql-server libhtml-template-perl mysql-server mysql-server-5.1 mysql-server-core-5.1

Compilar fuentes

http://www.zabbix.com/documentation/2.0/manual/installation/install

1. Descargar

http://www.zabbix.com/download.php

2. Descomprimir

tar xvfz zabbix-2.0.2.tar.gz

3. (Opcional) Instalar dependencias

sudo aptitude update; sudo aptitude install build-essential libmysqlclient-dev libcurl4-openssl-dev libsnmp-dev snmp-mibs-downloader

4. Crear usuario y grupo:

sudo groupadd zabbix; sudo useradd -g zabbix zabbix

5. Configurar

cd /ruta/zabbix-2.0.2
./configure --enable-server --enable-agent --with-mysql --with-net-snmp --with-libcurl

6. Instalar

sudo make install

7. Crear el script de arranque:

sudo ln -s /ruta/zabbix-2.0.2/misc/init.d/debian/zabbix-server /etc/init.d/

8. Editar el archivo de configuracion (importante ajustar entre otros los valores de la conexion a la BD):

sudo vim /usr/local/etc/zabbix_server.conf

9. Arrancar

sudo /etc/init.d/zabbix-server restart

Servidor de Bases de Datos

https://www.zabbix.com/documentation/2.0/manual/appendix/install/db_scripts

1. (mysql-1.dev.jj.com) Instalar mysql server:

sudo aptitude update; sudo aptitude install mysql-server

2. Crear la base de datos:

mysql -u root -p
create database zabbix;

3. Crear el usuario 'zabbix' que se conectara tanto desde el servidor Zabbix como desde el frontend web. En este caso le permito que se conecte desde maquinas cuyo nombre coincida con el patron '%.dev.jj.com':

grant usage on *.* to 'zabbix'@'%.dev.jj.com' identified by 'contrasenya';
grant all on zabbix.* to 'zabbix'@'%.dev.jj.com';
flush privileges;

4. Permito conectividad desde todas las maquinas (se puede hacer mas restrictivo si se quiere):

sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.old
sudo vim /etc/mysql/my.cnf

Y anyado/edito la siguiente linea:

bind-address            = 0.0.0.0

5. Ingesta inicial del volcado de la base de datos del servidor Zabbix:

mysql -u root -p < /tmp/zabbix_dump.sql

6. Reinicio la base de datos:

sudo /etc/init.d/mysql restart

7. (monitor-1.dev.jj.com) Ajusto la configuracion del servidor Zabbix para que apunte a la basae de datos:

sudo cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.old
sudo vim /etc/zabbix/zabbix_server.conf

Y anyado/edito las siguientes lineas:

DBHost=mysql-1.dev.jj.com
DBName=zabbix
DBUser=zabbix
DBPassword=contrasenya

8. Reinicio el servidor Zabbix y le echo un vistazo a los logs a ver si todo va bien:

sudo /etc/init.d/zabbix-agent restart
sudo tail -F /var/log/zabbix-server/zabbix_server.log

Frontend web

Compilando fuentes

1. Repetir los pasos 1. y 2. del Servidor Zabbix (Compilar fuentes)

2. Crear un enlace simbólico del Document Root de Apache (asumimos '/var/www') al directorio 'frontends/php':

cd /srv/www; sudo ln -s cd /ruta/zabbix-2.0.5/frontends/php zabbix
sudo chown -R www-data:www-data *

3. Ajustar la configuración de la Base de Datos:

cd /srv/www/zabbix/conf; sudo cp zabbix.conf.php.example zabbix.conf.php
sudo vim zabbix.conf.php

Con el siguiente contenido:

$DB["SERVER"]    = "mysql-1.dev.jj.com";
$DB["DATABASE"]  = "zabbix";
$DB["USER"]      = "zabbix";
$DB["PASSWORD"]  = "contrasenya";
$ZBX_SERVER      = "monitor.dev.jj.com";

4. Deberiamos poder acceder (usuario 'Admin', contrasenya 'zabbix') al frontend web:

http://www-1.dev.jj.com/zabbix

Paquete

1. Repetir los pasos 1. y 2. del Servidor Zabbix

2. Actualizar e instalar el paquete (probablemente dara un warning):

sudo aptitude update; sudo aptitude install zabbix-frontend-php

3. Editar el archivo de configuracion para indicar servidor Zabbix y de bases de datos:

sudo cp /etc/zabbix/dbconfig.php /etc/zabbix/dbconfig.php.old
sudo vim /etc/zabbix/dbconfig.php

Anyadir/editar las siguientes lineas:

$DB["SERVER"]    = "mysql-1.dev.jj.com";
$DB["DATABASE"]  = "zabbix";
$DB["USER"]      = "zabbix";
$DB["PASSWORD"]  = "contrasenya";
$ZBX_SERVER      = "monitor.dev.jj.com";

4. Deberiamos poder acceder (usuario 'Admin', contrasenya 'zabbix') al frontend web:

http://www-1.dev.jj.com/zabbix

Cliente

Es similar a un agente SNMP. Para instalar

1. Repetir los pasos 1. y 2. del Servidor Zabbix

2. Actualizar e instalar el paquete (probablemente dara un warning):

sudo aptitude update; sudo aptitude install zabbix-agent

3. Para arrancar/para… el servicio:

/etc/init.d/zabbix_agentd {start|stop|restart|force-reload}

Proxy

Esta receta es para Ubuntu server.

Resumen de maquinas:

zabbix.dominio.com Servidor donde esta instalado Zabbix
proxy.dominio.com Servidor donde esta instalado Zabbix proxy
maquina.dominio.com Maquina que server.dominio.com monitoriza a traves de proxy.dominio.com

1. Instalar

sudo aptitude install zabbix-proxy-mysql

Te pregunta usuario y contrasenya de MySQL etc…

2. Editar config:

sudo vim /etc/zabbix/zabbix_proxy.conf

Yo ajuste los siguientes valores:

Server zabbix.dominio.com
Hostname proxy.dominio.com

IMPORTANTE Por defecto esta configurado en modo activo, es decir, proxy.dominio.com se conecta de vez en cuando a zabbix.dominio.com y le pregunta si hay alguna peticion que hacer. En caso de que la haya, proxy.dominio.com las hara y devolvera el resultado, a traves del puerto TCP 10051, a zabbix.dominio.com

3. Arrancar (si no lo estuviera ya):

sudo /etc/init.d/zabbix-proxy restart
sudo tail -F /var/log/zabbix-proxy/zabbix_proxy.log

Monitorizar una maquina a traves de zabbix proxy

Resumen de maquinas:

zabbix.dominio.com Servidor donde esta instalado Zabbix
proxy.dominio.com Servidor donde esta instalado Zabbix proxy
maquina.dominio.com Maquina que server.dominio.com monitoriza a traves de proxy.dominio.com

1. (Opcional) Permitir conexiones entre zabbix.dominio.com y proxy.dominio.com a traves del puerto TCP 10051. Ejemplo:

$IPTABLES -A INPUT -d $KVM_LAN_IP -s proxy.dominio.com -i $EXT_IF -p tcp --dport 10051 -j ACCEPT

Base de datos en profundidad

Construyendo

Zabbix 2.x tiene un nuevo esquema de base de datos, con 103 tablas. Quiero determinar cuales de ellas contienen configuracion, para hacer un backup y poder restaurar Zabbix sin perder nada de lo que haya podido anyadir (templates, discovery rules, etc…)

Tabla Configuracion
acknowledges
actions
alerts
applications
auditlog
auditlog_details
autoreg_host
conditions
config
dchecks
dhosts
drules
dservices
escalations
events
expressions
functions
globalmacro
globalvars
graph_discovery
graph_theme
graphs
graphs_items
groups
help_items
history
history_log
history_str
history_str_sync
history_sync
history_text
history_uint
history_uint_sync
host_inventory
hostmacro
hosts
hosts_groups
hosts_templates
housekeeper
httpstep
httpstepitem
httptest
httptestitem
icon_map
icon_mapping
ids
images
interface
item_discovery
items
items_applications
maintenances
maintenances_groups
maintenances_hosts
maintenances_windows
mappings
media
media_type
node_cksum
nodes
opcommand
opcommand_grp
opcommand_hst
opconditions
operations
opgroup
opmessage
opmessage_grp
opmessage_usr
optemplate
profiles
proxy_autoreg_host
proxy_dhistory
proxy_history
regexps
rights
screens
screens_items
scripts
service_alarms
services
services_links
services_times
sessions
slides
slideshows
sysmap_element_url
sysmap_url
sysmaps
sysmaps_elements
sysmaps_link_triggers
sysmaps_links
timeperiods
trends
trends_uint
trigger_depends
trigger_discovery
triggers
user_history
users
users_groups
usrgrp
valuemaps

Comandos varios

Recargar la cache (util para recargar la configuracion sin reiniciar el demonio):

sudo zabbix_server -R config_cache_reload

Obtener un valor de una maquina con el cliente zabbix instalado:

zabbix_get -s www-1.dev -k system.cpu.load

Monitorizacion

MySQL

Logs

http://87.110.183.172/forum/showthread.php?t=20211 http://www.zabbix.com/forum/showthread.php?t=25551

Requisitos:

Maquina Elemento Comentario
Cliente Zabbix client Requiere configuracion, NO hay que anyadir entradas extra
Servidor Item -
Servidor Trigger -
Servidor Action (Trigger) Doy por hecho que ya existe una accion que envia un correo cuando se produce un trigger, pero se puede crear una para este caso

En este ejemplo:

test-5.dev.jj.com Maquina que contiene el archivo de log que vamos a monitorizar
monitor.dev.jj.com Maquina con el servidor Zabbix instalado

Cliente

1. Editar:

/etc/zabbix/zabbix_agentd.conf

Y anyadir/editar las lineas:

EnableRemoteCommands=1
Hostname=test-5.dev.jj.com.dev.jj.com
ListenPort=10050
ServerActive=monitor.dev.jj.com

2. Reiniciar el servicio:

sudo /etc/init.d/zabbix-agent restart

Item

En este caso lo he creado a pelo sobre el 'Host', pero lo suyo es crear un 'Template'

Trigger

Buscamos la cadena 'ERROR':

Action

En este caso generica, pero se puede personalizar:

Triggers

  • Trigger que se ejecuta solo en un determinado lapso de tiempo (solo de 05:00:00 a 05:01:10):
Expression {scheduler-1.dev.jj.com:logmatchNumFound[kvm_backup_finished].diff(0)}<1 & {scheduler-1.dev.jj.com:logmatchNumFound[kvm_backup_finished].time(0)}>050000 & {scheduler-1.dev.jj.com:logmatchNumFound[kvm_backup_finished].time(0)}<050110

Autenticacion LDAP

IMPORTANTE Hay que crear cuentas primero con el mismo 'uid' que el usuario en LDAP.

Ver:

ZBXNEXT-276

ZBXNEXT-1138

ZBXNEXT-1390

1. Hacer login con el superusuario 'admin'

2. Crear otro superusuario con el mismo usuario y contrasenya que un usuario LDAP ya existente

2.1. Ir a 'Administration/Users'

2.2. En el desplegable seleccionar 'Users' y pulsar sobre el boton “Create user”

2.3. Rellenar los campos “Alias” (sera el nombre de usuario) y el de “Password” con el mismo usuario y contrasenya que un usuario LDAP ya existente

2.4. En la pestanya “Permissions” nos aseguramos que este seleccionado “Zabbix Super Admin”

2.5. Pulsamos el boton “Save”

3. Hacemos un logout

4. Hacemos un login con las nuevas credenciales recien creadas en el paso 2.

5. Vamos a “Administration/Authentication”, y pulsamos sobre el boton “LDAP”

6. Ejemplo de config con LDAPS:

LDAP host
informatica/linux/zabbix.1367250133.txt.gz · Last modified: 2015/04/13 20:19 (external edit)