User Tools

Site Tools


informatica:linux:zabbix

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
informatica:linux:zabbix [2013/10/02 13:11] javiinformatica:linux:zabbix [2015/03/31 13:36] (current) – removed jose
Line 1: Line 1:
-======= zabbix ======= 
  
-monitor snmp graphs 
- 
-====== Instalacion ====== 
-===== Por repositorio ===== 
-Fuente: https://www.zabbix.com/documentation/2.0/manual/installation/install_from_packages#debian_ubuntu \\ 
-Nos descargamos el paquete de configuración: 
-  http://repo.zabbix.com/zabbix/2.0/debian/pool/main/z/zabbix-release/zabbix-release_2.0-1squeeze_all.deb 
-Y lo instalamos: 
-  dpkg -i zabbix-release_2.0-1squeeze_all.deb  
- 
- 
-Esto crea la siguiente entrada en los repositorios: 
-  /etc/apt/sources.list.d/zabbix.list 
- 
-  deb http://repo.zabbix.com/zabbix/2.0/debian squeeze main 
-  deb-src http://repo.zabbix.com/zabbix/2.0/debian squeeze main 
- 
- 
- 
- 
-===== 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 
- 
-5.1 Si lo hemos instalado de la versión oficial, ejecutamos el volcado de los ficheros de: 
-  /usr/local/bin/zabbix-2.0.6/database/mysql 
-En el siguiente orden: 
-  mysql zabbix -u zabbix -p < schema.sql 
-  mysql zabbix -u zabbix -p < images.sql 
-  mysql zabbix -u zabbix -p < data.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: 
- 
-<code> 
-DBHost=mysql-1.dev.jj.com 
-DBName=zabbix 
-DBUser=zabbix 
-DBPassword=contrasenya 
-</code> 
- 
-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: 
- 
-<code> 
-$DB["SERVER"   = "mysql-1.dev.jj.com"; 
-$DB["DATABASE" = "zabbix"; 
-$DB["USER"     = "zabbix"; 
-$DB["PASSWORD" = "contrasenya"; 
-$ZBX_SERVER      = "monitor.dev.jj.com"; 
-</code> 
- 
-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: 
- 
-<code> 
-$DB["SERVER"   = "mysql-1.dev.jj.com"; 
-$DB["DATABASE" = "zabbix"; 
-$DB["USER"     = "zabbix"; 
-$DB["PASSWORD" = "contrasenya"; 
-$ZBX_SERVER      = "monitor.dev.jj.com"; 
-</code> 
- 
-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 ===== 
- 
-http://www.zabbix.com/forum/showthread.php?t=26503 
- 
- 
- 
-===== 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: 
- 
-<code> 
-EnableRemoteCommands=1 
-Hostname=test-5.dev.jj.com.dev.jj.com 
-ListenPort=10050 
-ServerActive=monitor.dev.jj.com 
-</code> 
- 
-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' 
- 
-{{informatica:linux:01.png|}} 
- 
-**Trigger** 
- 
-Buscamos la cadena 'ERROR': 
- 
-{{informatica:linux:02.png|}} 
- 
-**Action** 
- 
-En este caso generica, pero se puede personalizar: 
- 
-{{informatica:linux:03.png|}} 
-{{informatica:linux:04.png|}} 
-{{informatica:linux:05.png|}} 
- 
- 
- 
-====== 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: 
- 
-[[https://support.zabbix.com/browse/ZBXNEXT-276|ZBXNEXT-276]] 
- 
-[[https://support.zabbix.com/browse/ZBXNEXT-1138|ZBXNEXT-1138]] 
- 
-[[https://support.zabbix.com/browse/ZBXNEXT-1390|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 | ldaps://ldap.example.com | 
-| Port | 636 | 
-| Base DN | ou=people,dc=example,dc=com | 
-| Search attribute | uid | 
-| Bind DN | cn=readonly,dc=example,dc=com | 
-| Bind password | El password del usuario LDAP  "cn=readonly,dc=example,dc=com" | 
- 
-El campo "Login" esta en gris, y es el valor del usuario con el que hemos hecho login 
- 
-7. Pulsar sobre el boton "Save". Si ha ido bien, podemos revertir la autenticacion a local, hacer login como superusuario "admin", quitarle los permisos de superusuario al usuario creado en el paso 2, y repetir de nuevo todo el proceso. (No lo he probado) 
- 
-====== Parches ====== 
- 
-^ Version ^ Funcionalidad ^ Recurso ^ 
-| 2.0.2 | Mostrar todas las graficas de un host a la vez | https://support.zabbix.com/browse/ZBXNEXT-75 |  
-| 2.0.2 | Soporte a OID dinamicos para SNMP LLD | https://support.zabbix.com/browse/ZBX-3449 |  
- 
- 
-====== Bugs ====== 
- 
-1. Cuando activo/desactivo alguna 'Discovery rule' tengo que recargar la cache de la configuracion en el servidor 
- 
-  ssh monitor.dev.jj.com 
-  sudo zabbix_server -R config_cache_reload 
- 
- 
-====== Errores ====== 
- 
-  * **snmp_build: unknown failure ** 
- 
- 
-  sudo aptitude install snmp-mibs-downloader 
- 
-Aparentemente NO hace falta: 
-<code> 
-sudo /usr/bin/download-mibs 
-sudo sed -i 's/^mibs/#mibs/g' /etc/snmp/snmp.conf 
-sudo /etc/init.d/snmpd restart 
-</code> 
- 
-====== Notificaciones ====== 
- 
-===== Correo (ssmtp) ===== 
- 
-https://www.zabbix.com/documentation/2.0/manual/config/notifications/media/script 
- 
-1. Crear un script: 
- 
-  sudo vim /opt/zabbix_email.sh 
-   
-Con el siguiente contenido: 
- 
-<code> 
-#!/bin/bash 
-  
-to=$1 
-subject=$2 
-body=$3 
-  
-cat <<EOF | mail -s "$subject" "$to" 
-$body 
-EOF 
-</code> 
- 
-2. Dar permisos: 
- 
-  sudo chgrp zabbix /opt/zabbix_email.sh 
-  sudo chmod 0775 /opt/zabbix_email.sh 
- 
-3. Editar el archivo de configuracion: 
- 
-  sudo cp /etc/zabbix/zabbix_server.conf /etc/zabbix/zabbix_server.conf.bak 
-  sudo vim /etc/zabbix/zabbix_server.conf 
- 
-Y escribir la siguiente linea: 
- 
-  AlertScriptsPath=/opt 
-   
-4. Recargar la cache de configuracion: 
- 
-  sudo service zabbix-server force-reload  
- 
-5. (Interfaz web) Iniciar sesion con un usuario con permisos de administracion 
- 
-6. Ir a "Administration / Media types" 
- 
-7. Pulsar sobre el boton "Create media type" 
- 
-8. Dejar los valores asi: 
- 
-| Description | Email ssmtp | 
-| Type | Script |  
-| Script name | zabbix_mail.sh | 
-| Enabled | (marcado) | 
- 
-Pulsar el boton "Save". 
- 
-9. Comprobar que todo ha ido bien: 
- 
-9.1. Ir a "Administration / Users" 
- 
-9.2. Seleccionar un usuario cualquiera 
- 
-9.3. Pulsar en la solapa "Media" 
- 
-9.4. Pulsar en el enlace "Add" 
- 
-9.5.Dejar los valores asi: 
- 
-| Type | Email ssmtp | 
-| Send to | destination@example.com | 
- 
-Pulsar el boton "Add" 
informatica/linux/zabbix.1380719485.txt.gz · Last modified: 2015/04/13 20:19 (external edit)