Implementación de Zabbix como herramienta de monitorización de

Anuncio
IMPLEMENTACIÓN DE ZABBIX COMO HERRAMIENTA DE MONITORIZACIÓN DE INFRAESTRUTURA
INFORMÁTICA DE LA COMPAÑÍA SANTINI SYSTEM GROUP LTDA.
SANTIAGO MARTINEZ CLAVIJO
GABRIEL NARVÁEZ SALAZAR
UNIVERSIDAD SANTO TOMAS
FACULTAD DE INGENIERÍA ELECTRÓNICA
BOGOTA D. C.
2010
-1-
IMPLEMENTACIÓN DE ZABBIX COMO HERRAMIENTA DE MONITORIZACIÓN DE INFRAESTRUTURA
INFORMÁTICA DE LA COMPAÑÍA SANTINI SYSTEM GROUP LTDA.
Monografía presentada como requisito para optar al título de Ingeniero Electrónico
Director
JAVIER PEREZ SANDOVAL
Ingeniero Electrónico
UNIVERSIDAD SANTO TOMAS
FACULTAD DE INGENIERÍA ELECTRÓNICA
BOGOTA D. C.
2010
-2-
AUTORIDADES UNIVERSIDAD SANTO TOMAS
RECTOR GENERAL
PADRE JOSÉ ANTONIO BALAGUERA CEPEDA, O.P.
VICERRECTOR ACADÉMICO GENERAL
PADRE PEDRO JOSÉ DÍAZ CAMACHO, O.P.
VICERRECTOR ADMINISTRATIVO FINANCIERO
PADRE LUIS FRANCISCO SASTOQUE POVEDA, O.P.
DECANO DIVISIÓN DE INGENIERÍAS
PADRE VICENTE BECERRA REYES, O.P.
DECANO ACADÉMICO FACULTAD INGENIERÍA ELECTRÓNICA
ING. AGUSTO GUARÍN RODRÍGUEZ
-3-
NOTA DE ACEPTACIÓN
El trabajo de grado titulado IMPLEMENTACIÓN DE ZABBIX COMO HERRAMIENTA DE MONITORIZACIÓN
DE INFRAESTRUTURA INFORMÁTICA DE LA COMPAÑÍA SANTINI SYSTEM GROUP LTDA. COMO
DOCUMENTO DE CULMINACIÓN DE PASANTÍA DESARROLLADA EN LA COMPAÑÍA SANTINI SYSTEM
GROUP LTDA., presentado por Santiago Martínez Clavijo y Gabriel Narváez Salazar, ha sido aprobado por el
director del mismo, Ing. JAVIER PEREZ SANDOVAL, para optar al título de INGENIERO ELECTRÓNICO, de
acuerdo a lo estipulado por la facultad de Ingeniería Electrónica de la Universidad Santo Tomás.
_____________________________________
ING. JAVIER PEREZ SANDOVAL
Director
-4-
_______________________________
CESAR HUMBERTO ARIAS PABÓN
Revisor Metodológico
-5-
TABLA DE CONTENIDO
GLOSARIO
RESUMEN
INTRODUCCIÓN
1. PRELIMINARES
1.1 PLANTEAMIENTO DEL PROBLEMA
1.2 OBJETIVOS DEL PROYECTO
1.2.1
Objetivo General
1.2.2 Objetivos Específicos
1.3 JUSTIFICACIÓN
1.4 ALCANCE Y DELIMITACIÓN
2. CONTEXTO TEÓRICO.
2.1 PROTOCOLO SNMP, REDES SNMP y BASE DE DATOS MIB
2.2 SOFTWARE LIBRE
2.2.1 Proyecto GNU
2.2.2 Software Libre
2.2.3 Licencia GPL GNU
2.2.4 Sobre la licencia de Zabbix
2.3 UBUNTU
2.4 ZABBIX
2.5 MONITORIZACIÓN DE REDES
2.6 ¿POR QUÉ MONITORIZAR?
3. IMPLEMENTACIÓN: INSTALACIÓN DE SOFTWARE
3.1 INSTALACIÓN DE UBUNTU
3.2 INSTALACIÓN ZABBIX
3.2.1 Requerimientos de Hardware
3.2.2 Requerimientos de Software
3.2.3 Instalación de requisitos previos
3.2.4 Instalación Zabbix
3.2.4.1 Creación usuario zabbix
3.2.4.2 Descarga de fuentes
3.2.4.3 Creación del esquema
3.2.4.4 Configurar, compilar e instalar
3.2.4.5 Configuración post-instalación
3.2.4.6 Configuración scripts de inicio
3.2.5 Instalación front-end
3.2.5.1 Configuración PHP
3.2.5.2 Configuración interfaz Web
3.2.6 Probando Zabbix
3.3 INSTALACIÓN AGENTE ZABBIX EN WINDOWS
4. IMPLEMENTACIÓN: INTERFAZ WEB DE ZABBIX
4.1 CREACIÓN DE UN HOST
4.1.1 Agregando un Servidor en Windows Server como Host
4.1.2 Adición de Hosts Monitorizados Mediante Agentes SNMP
4.1.2.1 Instalación de paquete snmp para Ubuntu
4.1.2.2 Impresora en Red
4.1.2.3 Switch Cisco Catalyst 2960
4.1.2.4 Router Cisco 2801
4.2 CREACIÓN DE UN ÍTEM
4.3 CREACIÓN DE UN TRIGGER
-6-
Página
13
14
15
16
16
18
18
18
19
20
21
21
22
22
22
24
24
25
28
29
29
30
30
31
31
32
32
35
35
35
36
37
38
40
42
42
44
49
50
54
54
57
58
58
59
62
65
68
70
4.4 CREACIÓN GRÁFICAS
4.5 CREACIÓN MAPA
4.6 PLANTILLAS
4.7 CONFIGURACIÓN NOTIFICACIONES VÍA EMAIL
5. ANÁLISIS DOFA.
6. CONCLUSIONES.
7. REFERENCIAS Y BIBLIOGRAFÍA.
ANEXOS
-7-
72
79
84
86
94
95
96
97
LISTA DE FIGURAS
Figura 1. Red SNMP.
Figura 2. Mapa conceptual sobre software libre.
Figura 3. Escritorio GNOME de GNU (a), Acerca de GNOME Desktop (b)
Figura 4. Imagen de ZABBIX
Figura 5. Instalación de Ubuntu, elección de idioma.
Figura 6. Instalación de Ubuntu, zona horaria y distribución de teclado.
Figura 7. Instalación de Ubuntu, administración espacio en disco y configuración de usuario.
Figura 8. Instalación de Ubuntu, reporte de opciones escogidas y proceso de instalación .
Figura 9. Comando de instalación de requisitos previos.
Figura 10. Confirmación de instalación de requisitos previos.
Figura 11. Descarga de los paquetes de instalación de software previo.
Figura 12. Configuración de password para usuario root de la base de datos.
Figura 13. Extracción de paquetes de instalación.
Figura 14. Proceso 1 de instalación del software previo.
Figura 15. Proceso 2 de instalación del software previo.
Figura 16. Creación de usuario zabbix en Ubuntu.
Figura 17. Descarga de los archivos fuentes para compilación de Zabbix.
Figura 18. Extracción de los archivos descargados.
Figura 19. Creación de base de datos y privilegios de usuario Zabbix.
Figura 20. Actualización de usuario y contraseña.
Figura 21. Actualización de políticas y privilegios.
Figura 22. Activación de contraseña.
Figura 23. Comandos de configuración bases de datos.
Figura 24. Comando de configuración de las fuentes de instalación.
Figura 25. Configuración Servidor, MySQL, cURL, Jabber, net-SNMP y agente Zabbix.
Figura 26. Comando de compilación e instalación de fuentes de Zabbix.
Figura 27. Configuración de puertos de Zabbix.
Figura 28. Creación de directorio de almacenamiento de ficheros de configuración.
Figura 29. Configuración de parámetros de conexión a BD de MySQL.
Figura 30. Configuración de script de inicio.
Figura 31. Edición de script de inicio para Servidor Zabbix.
Figura 32. Edición de script de inicio para Agente Zabbix.
Figura.33. Asignación de permisos a scripts de inicio de agente y servidor Zabbix.
Figura 34. Inicio de Agente y Servidor Zabbix.
Figura 35. Instalación de interfaz web de servidor Zabbix
Figura 36. Edición 1 de archivo php.ini: date.timezone
Figura 37. Edición 2 de archivo php.ini: memory_limit
Figura 38. Edición 3 de archivo php.ini: upload_max_filesize
Figura 39. Edición 4 de archivo php.ini: max_execution_time
Figura 40. Reinicio de servidor apache.
Figura 41. Ingreso a configuración de interfaz web en servidor local
Figura 42. Aceptación de licencia
Figura 43. Lista de chequeo de prerrequisitos.
Figura 44. Configuración de conexión con base de datos.
Figura 45. Configuración del puerto del servidor Zabbix.
Figura 46. Resumen de la instalación.
Figura 47. Archivo de configuración
Figura 48. Guardando archivo zabbix.conf.php
Figura 49. Ubicación del archivo guardado zabbix.conf.php
-8-
21
23
26
28
30
30
31
31
32
33
33
33
34
34
35
35
35
36
36
36
37
37
37
37
38
38
39
39
39
40
40
41
41
42
42
42
43
43
44
44
44
45
45
46
46
47
47
48
48
Figura 50. Último paso de la Instalación.
Figura 51. Finalización de la instalación de manera exitosa.
Figura 52. Ingreso a interfaz web con usuario admin.
Figura 53. Confirmación de instalación completa y correcta de ZABBIX en Ubuntu.
Figura 54. Archivo comprimido, instalador agente Zabbix.
Figura 55. Contenido de la carpeta win32, tres archivos ejecutables.
Figura 56. Carpeta Zabbix creada en C:\
Figura 57. Carpeta Zabbix con archivos necesarios.
Figura 58. Configuración de dirección IP de servidor.
Figura 59. Configuración del hostname del equipo.
Figura 60. Comando de instalación.
Figura 61. Error después de ejecutar comando de instalación.
Figura 62. Llamado a la ayuda del instalador.
Figura 63. Listado de comandos para el instalador.
Figura 64. Comando de instalación como servicio.
Figura 65. Confirmación de instalación exitosa.
Figura 66. Inicio de servicio Zabbix, servicio detenido (a), comando de activación (b)
y servicio iniciado (c).
Figura 67. Ventana de configuración, opción host
Figura 68. Activación Host, selección(a), confirmación de activación (b).
Figura 69. Ventana de configuración, creación Host
Figura 70. Configuración Host.
Figura 71. Listado de plantillas, Host Windows.
Figura 72. Plantilla adicionada.
Figura 73. Activación Host creado.
Figura 74. Ventana de configuración, creación de Host servidor de Windows.
Figura 75. Host Zeus activado.
Figura 76. Comando de instalación SNMP.
Figura 77. Interfaz web de la impresora, configuración TCP/IP.
Figura 78. Interfaz web de la impresora, configuración de red.
Figura 79. Comando, estado del SNMP.
Figura 80. Ventana de configuración, creación de Host impresora
Figura 81. Plantillas para Host impresora.
Figura 82. Activación del Host Impresora.
Figura 83. Selección de plantillas para Switch.
Figura 84. SNMPstatus del switch
Figura 85. SNMPwalk del switch.
Figura 86. SNMPget del switch.
Figura 87. Ventana configuración, creación de Host switch
Figura 88. Listado de Items, selección de Item Uptime
Figura 89. Configuración del Item Uptime.
Figura 90. SNMPstatus del router.
Figura 91. SNMPwalk del router.
Figura 92. SNMPget del router.
Figura 93. Ventana configuración, creación de Host router .
Figura 94. Ventana configuración, hosts, opción crear Item.
Figura 95. Ventana creación Item Uptime
Figura 96. Listado de host con SNMP, todos activados.
Figura 97. Menú Configuration -> Hosts para crear un ítem
Figura 98. Opción Create Item
Figura 99. Propiedades del Item creado
-9-
48
49
49
50
50
50
51
51
51
51
52
52
52
53
53
53
54
54
55
55
56
56
57
57
58
58
58
59
60
60
61
61
62
62
63
63
63
64
64
65
65
65
66
67
67
67
67
68
68
69
Figura 100. Listado de Items, Item creado.
Figura 101. Gráfica del Item Creado.
Figura 102. Ventana de configuración, crear Trigger.
Figura 103. Ventana configuración de Trigger.
Figura 104. Ventana de creación.
Figura 105. Listado de Triggers.
Figura 106. Creación de gráficas en menú Configuration
Figura 107. Configuración para creación de gráficas, selección ítem 1 para graficar
Figura 108. Selección y configuración de ítem 2 para graficar
Figura 109. Selección y configuración de ítem 3 para graficar.
Figura 110. Confirmación de funcionamiento de gráfica WXP CPU Load creada
Figura 111. Creación de carga para Host WXP_HOST.
Figura 112. Pestaña Rendimiento del administrador de tareas de Windows
Figura 113. Opción para observar las gráficas de monitorización en la interfaz web
Figura 114. Gráfica de carga del procesador en el host WXP_HOST
Figura 115. Gráfica de memoria libre disponible en el host WXP_HOST
Figura 116. Resultados de la prueba de velocidad realizada en el Host Zabbix Server
Figura 117. Gráfica de utilización de red en el host Zabbix Server
Figura 118. Crear mapa en Zabbix
Figura 119. Creación de elemento en el mapa
Figura 120. Edición de parámetros de elemento creado en el mapa
Figura 121. Selección de host correspondiente al elemento creado en el mapa
Figura 122. Configuración final de elemento creado en el mapa
Figura 123. Selección de host para elemento Impresora (NPI8F7D9F) agregado al mapa
Figura 124. Configuración final de elemento impresora creado en el mapa
Figura 125. Creación de link de conexión entre elementos del mapa
Figura 126. Selección de elementos para creación de conexión entre estos.
Figura 127. Creación de link de conexión entre host de Windows y servidor.
Figura 128. Creación de link de conexión entre host dos servidores de la red.
Figura 129. Visualización previa de los links creados para los elementos del mapa
Figura 130. Mapa de monitorización de red informática de Santini System Group.
Figura 131. Pagina de descarga de plantillas.
Figura 132. Ventana de configuración, importar/exportar plantilla.
Figura 133. Plantilla exitosamente importada.
Figura 134. Plantilla importada seleccionada para Host.
Figura 135. Ventana Administration, Media types.
Figura 136. Configuración de medio.
Figura 137. Activación elemento creado.
Figura 138. Ventana Administration, users.
Figura 139. Ventana configuración de usuario Admin.
Figura 140. Adición de E-mail en configuración de usuario.
Figura 141. Configuración completa de servicio de email en usuario admin.
Figura 142. Ventana configuration, actions.
Figura 143. Configuración de la acción que se va a crear.
Figura 144. Acción de enviar mensaje email
Figura 145. Selección usuario admin
.
Figura 146. Adición de la acción configurada
Figura 147. Guardando acción creada.
Figura 148. Aviso creación exitosa de la acción.
Figura 149. Listado de eventos.
Figura 150. Detalles del Trigger seleccionado.
- 10 -
70
70
71
71
72
72
73
73
74
74
75
75
76
76
77
77
78
78
79
79
80
80
81
81
81
82
82
83
83
83
84
85
85
85
86
86
86
87
87
87
88
88
88
89
89
89
90
90
90
91
91
Figura 151. Bandeja de entrada correo electrónico corporativo.
Figura 152. Correo de notificación de fallo de Inetd.
Figura 153. Lista de eventos, error en POP3
Figura 154. Detalles de evento de error en POP3.
Figura 155. Correo electrónico, notificación de fallo en POP3.
- 11 -
91
92
92
92
92
LISTA DE TABLAS
Tabla 1. Requerimientos de hardware en función del número de hosts
Tabla 2. Requerimientos de software.
- 12 -
32
32
GLOSARIO
HOST: En zabbix, un host es una entidad lógica que define un elemento en red que se puede monitorear.
Este puede ser una impresora, un switch, un router, un servidor, un computador, un portátil, entre otros.
TRIGGER: Un Trigger en Zabbix es una entidad que define umbrales para la clasificación de Items, es decir si
el Item de medición de nivel de tóner en una impresora monitoreada arroja un valor bajo, esto significa que el
Trigger de tóner se debe disparar y pasar a un estado de alerta. De esta manera avisara que la tienta de la
impresora esta por acabarse.
ITEM: Un Ítem en Zabbix es una entidad que contiene la información de una medida específica obtenida.
PLANTILLA: Una plantilla o Template es una entidad lógica prediseñada con diferentes Items, Triggers y
aplicaciones con el fin de ser aplicadas en elementos que comparten los mismos parámetros de medición, por
ejemplo la carga del procesador, uso de memoria y uso de recursos de red
SNMP: El protocolo SNMP (Simple Network Management Protocol) o Protocolo Simple de Administración de
Red, es un protocolo de gestión de red, es una solución de monitoreo bastante usada en elementos de bajo
poder de procesamiento.
SOFTWARE LIBRE: Es el software con el cual los usuarios pueden estudiar, modificar y mejorar su diseño
mediante la asequibilidad de su código fuente, esta es la filosofía Open Source o software libre.
MONITORIZAR: Consiste en observar, vigilar, tomar datos y analizar los resultados con el fin de realizar una
retroalimentación que permita solucionar problemas eficazmente o mejor aún, anticiparse a ellos.
AGENTE: Es una entidad de software instalada en el dispositivo monitorizado que provee información acerca
del elemento.
MIB (Management Information Base): Es una base de datos ó un conjunto de datos de la red almacenados
jerárquicamente, para la administración de esta misma. Los objetos monitorizados pueden ser nombrados con
nombres o con identificadores
RECURSO: Es cualquier elemento de hardware o software que cuenta disponibilidad limitada en un sistema,
por ejemplo recursos de red, memoria, espacio en disco duro.
POP3: Es un protocolo estándar para recibir mensajes de e-mail. Entonces los mensajes enviados a un
servidor, son depositados por el servidor pop3. Cuando el usuario se conecta con la dirección, el nombre de
usuario y la contraseña puede descargar los archivos.
SMTP: Simple Mail Transfer Protocol, Protocolo Simple de Transferencia de Correo, pertenece a la capa de
aplicación. Basado en texto y utilizado para el intercambio de mensajes de correo electrónico entre
dispositivos.
- 13 -
RESUMEN
Zabbix es una herramienta de monitorización open source de libre distribución compatible con Unix y con las
distribuciones de GNU/Linux. Este software está respaldado por una extensa lista de características que lo
convierten en una gran solución que permite ayudar y apoyar las actividades de soporte de una dependencia
enfocada a monitorizar estados de redes. Esta herramienta le brinda al ingeniero u operador, una serie de
facilidades para llevar a cabo tareas de diagnóstico, prevención y control de los diferentes equipos que están
conectados en una red, mejorando los tiempos de respuesta y garantizando mayor efectividad.
Se llevó a cabo un proceso de familiarización, desarrollo y profundización en los conocimientos y habilidades
para el manejo de la distribución de GNU/Linux patrocinada por la compañía Canonical Ltd., Ubuntu Desktop
v10.04 LTS.
El proceso de instalación del programa y los requerimientos del mismo se lograron sacar adelante gracias a la
investigación realizada a través de la web en las comunidades de apoyo de software libre y en los distintos
blogs y manuales y a sus autores y su gran espíritu de colaboración para con los usuarios que estamos
iniciando contacto con las herramientas del software libre y su filosofía.
Finalmente se realizó una tarea de profundización en el manejo de Zabbix, explorando todos sus aspectos y
evaluando su funcionalidad, la exactitud y la veracidad de los datos medidos por el mismo. Esto lleva a un
periodo de pruebas y experimentación en el cual se descubrieron problemas que se solucionaron mediante
ensayos e investigación.
De esta forma se estructuró y se implementó el modelo que se aplicó en las instalaciones de Santini System
Group Ltda. que también puede ser adaptado a otros ambientes empresariales.
- 14 -
INTRODUCCIÓN
Este documento se realizó con el fin de mostrar el proceso de implementación de Zabbix llevado a cabo
durante una de las etapas de desarrollo de la práctica empresarial o pasantía hecha en la compañía Santini
System Group Ltda. bajo la orientación del ingeniero Javier Pérez Sandoval como Gerente General como jefe
y director para la monografía.
Se presentará un resumen de las etapas del proceso de la implementación y los distintos problemas que
surgieron así como las soluciones encontradas y aplicadas de manera exitosa.
Se ilustrará el proceso de instalación tanto a nivel de los prerrequisitos de la herramienta como la instalación
de ella misma.
Además se explicarán los pasos a seguir para realizar la configuración, que permite utilizar de manera
eficiente y correcta, de la interfaz web que brinda Zabbix para llevar a cabo su tarea principal de
monitorización.
Finalmente se expondrán las dificultades, obstáculos, soluciones a problemas y las conclusiones sobre los
resultados obtenidos en la implementación de esta herramienta.
- 15 -
1. PRELIMINARES
1.1. PLANTEAMIENTO DEL PROBLEMA
SANTINI SYSTEM GROUP es una compañía Colombiana con 12 años de experiencia exitosa, orientada a la
prestación de Servicios Informáticos y de Telecomunicaciones que cuenta con una importante cartera de
clientes que respaldan su experiencia en el mercado y confirma su eficiencia operativa y calidad en el
servicio.
SANTINI SYSTEM GROUP además es una compañía sólida financieramente para respaldo de sus clientes y
asociados, estando siempre actualizada en los procesos tecnológicos internos para permitir una mayor
comunicación e integración de todos los procesos de servicio hacia los mismos clientes. Su operación está
soportada en prácticas como ITIL, Gerencia de Proyectos, ISO 9000 e ISO 20000.
El portafolio de SANTINI SYSTEM GROUP está compuesto por los siguientes servicios:
•
•
•
•
•
•
•
•
•
•
•
•
•
Actualizaciones
Laboratorio de pruebas y reparaciones
Brigadas de software
Soporte HelpDesk
Ingeniería de territorio
Outsourcing de servicios IT
Mantenimientos
Migraciones
Soluciones y soporte para redes y telecomunicaciones
Seguridad perimetral
Virtualización de servidores y equipos de escritorio
Consultoría
Interventoría
Actualmente la compañía se está haciendo sólida en la prestación de servicios especializados hacia clientes
orientados a necesidades específicas y soluciones de alto nivel de rendimiento, alta rentabilidad y que brinde
garantías a largo plazo.
Para llevar a cabo la ejecución de su operación, la compañía cuenta con una infraestructura informática que
está compuesta por dispositivos como computadores de escritorio, computadores portátiles, switches,
enrutadores, impresoras, firewalls, access points, teléfonos IP, hubs, servidores, entre otros. Surge como
necesidad de esta infraestructura, la existencia de un equipo de operadores ó ingenieros que estén al tanto
del correcto funcionamiento y del rendimiento de la misma, 24 horas diarias, 7 días a la semana.
Sin embargo, se hace importante plantearse una situación hipotética (no por eso inviable) de alta probabilidad
que se puede presentar en este escenario: supóngase por ejemplo que el equipo de soporte se encuentra en
la sustentación de una propuesta para un contrato de grandes cifras y de repente llama su recepcionista, se
ha caído uno de los servidores que estos administran y se requiere hacer un backup crítico antes del día
inmediatamente siguiente. El equipo se desplaza de urgencia al centro de cómputo de la empresa para
descubrir que simplemente algunos archivos de log han estado aumentado su tamaño considerablemente
llenando el espacio en disco del servidor durante las últimas semanas.
- 16 -
Aunque suene como una situación sencilla, existen muchos ejemplos reales similares que le han sucedido a
muchos administradores de IT. Esta situación no solo se puede evitar de manera sencilla, sino también a un
bajo costo.
- 17 -
1.2. OBJETIVOS
1.2.1. GENERAL
Implementar Zabbix sobre una distribución de GNU/Linux como herramienta de monitorización de una
infraestructura informática para analizar sus ventajas de operación y las dificultades presentadas en el
proceso de instalación.
1.2.2. ESPECÍFICOS
•
•
•
•
•
•
Adquirir habilidades con la instalación, manejo y configuración de Adquirir habilidades y la
distribución Ubuntu 10.04 LTS de GNU/Linux.
Comprobar la viabilidad de la instalación de la herramienta sobre la infraestructura de Santini.
Analizar la eficacia y utilidad de Zabbix como solución de monitorización de la infraestructura.
Conocer y analizar las características de Zabbix.
Identificar y solucionar posibles problemas a la hora de realizar la implementación.
Verificar la exactitud de los datos medidos por Zabbix respecto a los eventos reales que se
monitorizan.
- 18 -
1.3. JUSTIFICACIÓN
La situación hipotética descrita en el numeral 1.1 Planteamiento del problema, se puede evitar y en dado caso
solucionar de manera eficiente, cómoda y gratuita a través de una herramienta de monitorización de redes.
ZABBIX además puede ser incluida en el portafolio de una compañía cuyo objeto social incluya brindar
herramientas de red de gran utilidad y rentabilidad para ser distribuida de manera comercial gracias a las
posibilidades que brinda su licencia GPL de GNU.
De esta manera se escribe esta monografía para ilustrar y explicar el proceso completo de implementación de
ZABBIX y ser presentada como requisito de finalización de pasantía para optar por el título de grado de
ingeniero electrónico en la universidad Santo Tomás, sede Bogotá.
- 19 -
1.4. ALCANCE Y DELIMITACIÓN
Un software de monitorización con las características de Zabbix tiene la posibilidad de ser implementado en
pequeñas, medianas y grandes empresas, exigiendo una configuración más robusta a nivel de memoria,
espacio en disco y procesador en el servidor, en función del número de hosts y a sus parámetros y
características proyectados a ser monitorizados.
ZABBIX es un software de código abierto (open source) de distribución gratuita compatible con sistemas
operativos Unix y GNU/Linux que permite de manera rentable y sencilla, ser utilizada como herramienta
propia y sin ninguna restricción, como parte de un portafolio comercial de soluciones para redes gracias a su
licencia GPL de GNU versión 2.
A lo largo del documento se mostrarán y resaltarán los requisitos a nivel de hardware y de software que se
necesitan para el correcto funcionamiento de la herramienta y los distintos inconvenientes que se pueden
presentar.
- 20 -
2. CONTEXTO TEÓRICO
2.1. Protocolo SNMP, Redes SNMP y Base de datos MIB.
•
PROTOCOLO SNMP: El protocolo SNMP (Simple Network Management Protocol) o Protocolo
Simple de Administración de Red, es un protocolo de gestión de red, usado principalmente para
monitorizar y controlar el estado de ciertos dispositivos conectados. SNMP se basa en un sistema de
petición-respuesta y es una solución de monitorización comúnmente usada en elementos de bajo
poder de procesamiento en donde no es viable instalar sistemas operativos y agentes ya que
representarían una innecesaria pérdida de recursos. Estos elementos simplemente tienen instalados
los agentes SNMP versión 1, 2 ó 3 (SNMPv1, v2 ó v3). Es usado comúnmente en Impresoras en red,
Switches Routers y UPS’s.
•
RED SNMP: Una red SNMP está compuesta por 3 elementos principales:
o
o
o
•
Recursos administrados: es un nodo en la red y corresponde a un agente, es un dispositivo
monitorizado.
Agentes: son entidades instaladas en el dispositivo monitorizado que provee información
acerca del elemento.
Sistemas de administración de red (NMS): estos crean una conexión y ejecutan
aplicaciones de monitorización y control de los elementos conectados.
MIB (Management Information Base): Es una base de datos ó un conjunto de datos de la red
almacenados jerárquicamente, para la administración de esta misma. Los objetos monitorizados
pueden ser nombrados con nombres o con identificadores
Figura 1. Red SNMP. [1]
- 21 -
2.2. SOFTWARE LIBRE
Teniendo en cuenta la filosofía de libre distribución de Zabbix como recurso open source es importante incluir
en el contenido de este documento un acercamiento a la filosofía del proyecto GNU, a su desarrollo del
concepto sobre “software libre” y a los términos de la licencia bajo la cual se publicó ZABBIX.
2.2.1. Proyecto GNU
El proyecto GNU es el desarrollo de un sistema operativo completo en su totalidad con software libre,
compatible con la arquitectura Unix. El término GNU es un acrónimo recursivo de “GNU No es Unix (GNU’s
Not Unix)”. [2]
El Proyecto GNU, iniciado por Richard Stallman en el año 1983, se concibió como una forma de devolver el
espíritu cooperativo que prevalecía en la comunidad computacional en sus primeros días; hacer la
cooperación posible al eliminar los obstáculos impuestos por los dueños de software privativo. En los 80, casi
todo el software era privativo, lo cual significa que tenía dueños que prohibían e impedían la cooperación
entre usuarios. Esto hizo necesario el Proyecto GNU.
Se analizaba que cada usuario de ordenadores necesitaba un sistema operativo, si no existe un sistema
operativo libre, entonces no podían ni siquiera comenzar a usar su computadora sin recurrir a un software
privativo. Así que el primer elemento en la agenda del software libre fue un sistema operativo libre.
El proyecto se desarrolló como un sistema operativo compatible con Unix porque el diseño en general ya
estaba probado y era portable, y porque la compatibilidad hacía fácil para los usuarios de Unix cambiar de
Unix a GNU.
Hacia los años 90 ya se habían escrito los componentes principales, excepto uno, el núcleo, es entonces
cuando en 1991 Linus Torvalds programó un núcleo similar a Unix, Linux, y lo liberó como software libre en
1992. La combinación de Linux con el prácticamente completo sistema GNU formó un sistema operativo
completo: el sistema GNU/Linux. Se estima que existen decenas de millones de personas que en la
actualidad usan sistemas GNU/Linux, habitualmente mediante distribuciones como Slackware, Debian, Red
Hat y Ubuntu, entre muchas otras.
Sin embargo, un sistema operativo no es sólo el núcleo, sino que también incluye compiladores, editores,
editores de texto, software de correo entre otras cosas; de esta forma, el proyecto GNU no se limitó y no se
ha limitado a sistemas operativos ya que se pretende proporcionar un amplio espectro de software, tanto
como los usuarios quieran tener.[3]
2.2.2. SOFTWARE LIBRE
El término Free Software hace referencia a la palabra Free, en el contexto de la libertad, no de cosas sin
precio. Se puede o no pagar un precio por obtener software de GNU, de cualquier manera, una vez se obtiene
el software, se adquieren libertades específicas para usarlo.
Pero, ¿qué se entiende por Software Libre? El software libre es, ante todo, una forma ética de entender el
software o los programas de un computador que incluye tanto la fabricación de los programas como su
distribución y su utilización. Por lo tanto, el software libre no está orientado únicamente a la gente capaz de
escribir un programa, o a la gente que posee empresas y por tanto está en condiciones de hacer negocio con
los programas. Por el contrario, el software libre tiene que ver con el usuario tanto como con los
desarrolladores o los comerciantes o tal vez incluso más, ya que es la libertad de los usuarios el único
objetivo del movimiento del software libre.
- 22 -
Se puede asegurar entonces, que el software libre como concepto, y la tendencia que lo hace crecer y
evolucionar es una concepción y un movimiento ético como se observa en la figura 2.
Figura 2. Mapa Conceptual sobre Software Libre. [4]
La definición mantenida por la Fundación para el Software Libre1 (FSF, Free Software Foundation) dice que
para que un programa de ordenador sea considerado software libre debe respetar cuatro derechos o
libertades considerados como fundamentales.
• Libertad de utilizar el programa sin restricciones, donde quiera, como quiera y para lo que quiera.
• Libertad de distribuir copias a sus amigos, empleados, conocidos, empleadores y, en fin, a cualquier
persona que deseen.
• Libertad de estudiar cómo funciona el programa y, si se desea adaptarlo a sus necesidades
específicas. Para ello el acceso al código fuente es una condición necesaria.
• Libertad de mejorar el programa, publicar y distribuir sus mejoras al público (o a quien deseen) de
modo que más personas salgan beneficiadas de los cambios. También es necesario el acceso al
código fuente.
La libertad de ejecutar el programa significa la libertad para cualquier tipo de persona u organización de usarlo
en cualquier tipo de sistema de computación, para cualquier tipo de trabajo y propósito, sin estar obligado a
comunicarlo a su programador, o alguna otra entidad específica. En esta libertad, el propósito de los usuarios
es el que importa, no el propósito de los programadores.
1 La Free Software Foundation (FSF) es una organización sin ánimo de lucro cuyo objetivo es promocionar la libertad de los usuarios de ordenadores,
y defender los derechos de los usuarios de software libre.
- 23 -
El acceso al código fuente del programa es una condición necesaria para realizar cambios y publicar
versiones mejoradas y de esta forma darle sentido a las libertades 3 y 4.
Sin embargo, ciertos tipos de reglas sobre la manera de distribuir software libre son aceptables, cuando no
entran en conflicto con las libertades principales. Por ejemplo, el copyleft es la regla en base a la cual, cuando
se redistribuye el programa, no se puede agregar restricciones para denegar a las demás personas las
libertades principales.
Por otro lado, la figura de Software libre también puede ser una figura comercial. Un programa libre debe
estar disponible para el uso comercial, la programación comercial y la distribución comercial. La programación
comercial de software libre ya no es inusual; tal software libre comercial es muy importante. Puede haber
pagado dinero para obtener copias de software libre, o puede haber obtenido copias sin costo. Pero sin tener
en cuenta cómo obtuvo sus copias, siempre tiene la libertad de copiar y modificar el software, incluso de
vender copias. [5]
El concepto de software evoluciona y se modifica a menudo con el fin de proporcionar claridad acerca de su
significado. Ver anexo 1.
2.2.3. Licencia GPL GNU
GPL significa General Public License (Licencia Pública General). La más extendida de tales licencias es la
Licencia Pública General de GNU, o GPL GNU.
Hablar de software libre no lleva implícito estar empleando licencia GPL. Hay una gran lista de muchas otras
licencias diferentes de programas libres2. Cualquier licencia que conceda al usuario ciertas libertades
específicas es una licencia de software libre.
Sin embargo, es recomendado usar la GPL GNU ya que exige que todas las versiones mejoradas que se
publiquen sean software libre. Esto significa que se evitará el riesgo de tener que competir con una versión
modificada privativa de su propio trabajo. No obstante, en algunas situaciones particulares puede ser mejor
emplear una licencia más permisiva. [6]
2.2.4. Sobre la licencia de ZABBIX
ZABBIX se ha publicado bajo la licencia GNU General Public License (GPL) versión 2. Los términos formales
de la licencia GPL se pueden leer en el anexo 2.
ZABBIX solicita que en caso de utilizar el software para uso comercial, se adquiera un paquete de soporte con
el fin de apoyar al desarrollo del proyecto. [7]
La mayor parte de los paquetes de programas GNU utilizan la GPL GNU, pero hay unos pocos programas
que emplean licencias menos estrictas, tales como la GPL Reducida. Cuando se hace así es por razones de
estrategia.
2http://www.gnu.org/licenses/license-list.html
- 24 -
2.3. UBUNTU
Para hablar de Ubuntu es necesario retomar el concepto de GNU/Linux. Este es uno de los términos
empleados para referirse a la combinación del núcleo o kernel libre similar a Unix denominado Linux, que es
usado con herramientas de sistema GNU. Su desarrollo es uno de los ejemplos más prominentes de software
libre ya que todo su código fuente puede ser utilizado, modificado y redistribuido libremente bajo cualquiera de
los términos de la GPL (Licencia Pública General de GNU) y otra serie de licencias libres.[8]
Una distribución Linux es una distribución de software basada en el núcleo Linux que incluye determinados
paquetes de software para satisfacer las necesidades de un grupo específico de usuarios, dando así origen a
ediciones domésticas, empresariales y para servidores. Por lo general están compuestas, total o
mayoritariamente, de software libre, aunque a menudo incorporan aplicaciones o controladores propietarios.
Existen distribuciones que están soportadas comercialmente, como Fedora (Red Hat), openSUSE (Novell),
Mandriva, y distribuciones mantenidas por la comunidad como Debian y Gentoo. [9]
Para el desarrollo de este proyecto se utilizó UBUNTU 10.04 LTS3 como sistema operativo sobre el cual se
implementó y se instaló ZABBIX, debido a su viabilidad y comodidad de uso y a la calidad y cantidad de
documentación que existe sobre la utilización de Ubuntu y la implementación de ZABBIX sobre este.
Ubuntu es una distribución de Linux que proporciona un sistema operativo actualizado y estable para el
usuario medio, con un fuerte enfoque en la facilidad de uso y de instalación del sistema.
Ubuntu está patrocinado por Canonical Ltd., una compañía británica propiedad del empresario sudafricano
Mark Shuttleworth que lo mantiene libre y gratuito. Además, Canonical Ltd. es capaz de aprovechar los
desarrolladores de la comunidad para mejorar los componentes de su sistema operativo.
Esta distribución está siendo traducida a más de 130 idiomas y posee una gran colección de aplicaciones
prácticas y sencillas para la configuración de todo el sistema, a través de una interfaz gráfica útil para
usuarios que se inician en Linux. El entorno de escritorio oficial es GNOME desarrollado por GNU. La figura
3a muestra un ejemplo de un escritorio de trabajo de Ubuntu. La figura 3b permite observar el acerca de del
GNOME Desktop.
3Las versiones LTS (Long Term Support), son aquellas que se liberan cada dos años y reciben soporte durante tres años para sistemas de escritorio.
- 25 -
Figura 3a. Escritorio GNOME de UBUNTU.
Figura 3b. Acerca de GNOME DESKTOP.
•
Aplicaciones de Ubuntu
Ya se mencionó que Ubuntu es conocido por su facilidad de uso y las aplicaciones orientadas al usuario final.
Las principales aplicaciones que trae Ubuntu son: El navegador web Mozilla Firefox, el cliente de mensajería
instantánea Empathy, el cliente para enviar y recibir correo Evolution, el reproductor multimedia Totem, el
cliente y gestor de torrents Transmission, el grabador de discos Brasero, la suite ofimática OpenOffice, y
Ubuntu Software Center para buscar e instalar entre más de treinta mil aplicaciones y juegos.
•
Seguridad y accesibilidad
El sistema incluye funciones avanzadas de seguridad y entre sus políticas se encuentra el no activar, de
forma predeterminada, procesos latentes al momento de instalarse. Por eso mismo, no hay un firewall
- 26 -
predeterminado, ya que no existen servicios que puedan atentar a la seguridad del sistema. Para
labores/tareas administrativas se incluye en el terminal una herramienta llamada sudo, con la que se evita el
uso del usuario administrador.
•
Ubuntu es software libre
Aunque las carátulas se imprimen en inglés, a partir de la versión 5.10 se incluyó el texto Ubuntu is software
libre usando la palabra en español libre, para eliminar la ambigüedad del término free (del inglés free
software) que puede significar tanto libre como gratis. Ubuntu también se publica bajo la licencia GPL de
GNU. [10]
- 27 -
2.4. ZABBIX
Figura 4. Imagen de Zabbix. [2]
Zabbix fue creado por el señor Alexei Vladishev y actualmente se desarrolla y se soporta por la compañía
Zabbix SIA. Es una solución open source que permite de forma rápida y sencilla monitorizar todo tipo de
servidores, aplicaciones y equipos que hacen parte de una red. Zabbix permite centralizar la información en
un servidor y monitorizar múltiples hosts, además tiene una interfaz de administración vía web browser. Por
otro lado, ofrece características de monitorización avanzada, alertas y visualización que actualmente no están
presentes en otros sistemas de monitorización, ni siquiera comerciales.
Zabbix puede descubrir nodos en un rango de IPs usando agentes SNMP y es capaz de monitorizar servicios
remotos. Además tiene soporte para traps SNMP en las versiones 1, 2 y 3 del protocolo. Proporciona también
extensa información sobre la máquina que monitoriza: disco, memoria, E/S, entre muchas otras, mediante un
completo sistema de estadísticas históricas cuyos datos se guardan de manera cronológica y sencilla de
acceder, visualizar y analizar, en bases de datos, para este caso MySQL.
Zabbix a su vez es capaz de enviar avisos, alarmas y/o notificaciones programadas vía e-mail, SMS e incluso
a través de Jabber para usuarios de Google Talk.
Es importante recordar que Zabbix es un software OSE (Open Source Edition) gratuito y se desarrolló y
publicó bajo Licencia Pública General GNU versión 2 cuyos términos formales se pueden observar en el
anexo 2.
- 28 -
2.5. MONITORIZACIÓN DE REDES
Monitorizar consiste en observar, vigilar, tomar datos y analizar los resultados con el fin de realizar una
retroalimentación que permita solucionar problemas eficazmente o mejor aún, anticiparse a ellos.
En una red se cuenta con distintos dispositivos interrelacionados, unos de mayor importancia que otros, pero
que, como es lo ideal, deben funcionar correctamente sin excepción. Con la monitorización de la red se toman
datos como consumo de recursos, asignación de memoria, estado de memoria, parámetros de rendimiento,
estado del dispositivo, rendimiento de sistemas agrupados, entre muchos otros que se explicarán a lo largo
del desarrollo de este documento de manera específica. Estos datos cuales pueden ser vistos, notificados y
controlados por operadores capaces de tomar decisiones basados en las alarmas automáticas que dan
informe sobre estados críticos.
2.6. ¿POR QUÉ MONITORIZAR?
Cada vez en los ambientes empresariales, las redes se vuelven más complejas y la exigencia de la operación
es cada vez mayor. El trafico de voz y datos, y la creciente demanda de recursos para soportar aplicaciones y
servicios, ponen a prueba la estabilidad y el funcionamiento de estas. Es por eso que análisis y monitorización
de redes se ha convertido en actividades de vital importancia en las prioridades de las diferentes compañías.
El proceso de monitorización debe ser permanente, ordenado, continuo y exacto, de esta manera se toman
medidas de variables criticas en el funcionamiento de una red con el fin de que, si se encuentran problemas,
se tomen medidas correctivas y/o preventivas que lleven a la estabilización de la red, de esta manera se
mantiene un control eficaz y efectivo que lleve a lograr mejores resultados en el desempeño de cada uno de
los dispositivos involucrados. Además, los datos obtenidos forman estadísticas que ponen en evidencia
problemas e irregularidades en procesos, los cual es necesario solucionar. El almacenamiento de las medidas
recogidas forma una bitácora que puede mostrar la evolución del comportamiento de la red.
No tener una herramienta de monitorización que informe sobre el estado de la red y sus elementos, significa
un costo muy elevado, ya que será necesario gastar más recursos en el mantenimiento y reparación de la
misma además de llevar a la contratación de más personal para las actividades de soporte. La prevención y la
respuesta anticipada a problemas son mecanismos que llevan a un control exitoso de una red.
- 29 -
3. IMPLEMENTACIÓN: INSTALACIÓN DE SOFTWARE
3.1. INSTALACIÓN DE UBUNTU
La instalación de Ubuntu 10.04 LTS es bastante simple. Una vez se inicia el equipo desde el CD, aparece la
pantalla de bienvenida donde se escoge el idioma en el que quedará el sistema operativo, es de resaltar que
una de las características de este sistema operativo es que provee presentación y soporte en muchísimos
idiomas con diferentes variaciones de los mismos, en este caso se escoge español. También aparece la
opción de probar Ubuntu, que consiste en correr desde el CD una muestra del sistema. Para este caso se
debe dar clic en el botón Instalar Ubuntu 10.04 LTS y en seguida se contacta con el servidor de Ubuntu para
obtener la hora exacta. Estos dos primeros pasos se muestran en la figura 5.
Figura 5. Instalación de Ubuntu, elección de idioma.
Luego, como se puede apreciar en la figura 6, se procede a elegir la configuración horaria que ya está
elegida, como región se elige Colombia con la hora establecida, se da clic en adelante y se continúa con la
distribución del teclado, se escoge la opción España que permite sacar los símbolos correctamente, y clic en
adelante.
Figura 6. Instalación de Ubuntu, zona horaria y distribución de teclado.
Ahora el programa de Instalación da la opción de configurar la ubicación del sistema operativo en el disco
duro. Primero identifica si hay algún sistema ya instalado, si es así, por ejemplo si ya se tiene Windows
entonces es posible instalar Ubuntu junto con él.
También está la opción de formatear el disco entero o por último se puede particionar el disco como se desee
dejando o quitando el sistema operativo ya instalado, si es que hay uno. Una vez se da clic en el botón
- 30 -
adelante, el programa solicita ingresar un usuario, una contraseña y un nombre del equipo. Estos pasos se
muestran en la figura 7.
Figura 7. Instalación de Ubuntu, administración de espacio en disco y configuración de usuario.
En la figura 8 está el reporte que muestra el instalador del sistema para confirmar las opciones escogidas,
entonces se da clic en instalar. Seguido a esto se inicia la instalación del mismo.
Figura 8. Instalación de Ubuntu, reporte de opciones escogidas y proceso de instalación.
Al terminar la instalación el proceso solicita reiniciar el equipo y retirar el CD de la unidad, luego de esto el
computador arranca desde el sistema operativo Ubuntu 10.04 LTS ya instalado.
3.2. INSTALACIÓN ZABBIX[11]
3.2.1. Requerimientos de Hardware
Zabbix requiere de parámetros óptimos tanto de memoria física como de capacidad de almacenamiento en
disco, sin embargo estas necesidades están relacionadas proporcionalmente con el número de hosts y las
características que se van a monitorizar de estos mismos.
La tabla 1 permite observar las necesidades del equipo que funcionar como servidor Zabbix, en función del
número de hosts que se van a monitorizar.
- 31 -
Tabla 1. Requerimientos de hardware en función del número de hosts.
3.2.2. Requerimientos de Software
La tabla 2 muestra los requerimientos a nivel de programas o software que se necesitan para instalar Zabbix.
Tabla 2. Requerimientos de software.
Teniendo en cuenta los requisitos tanto de hardware como de software, se da inicio a la instalación de Zabbix
cuyo proceso está compuesto por 4 etapas que se describen a continuación. [11] 4
3.2.3. Instalación de requisitos previos.
Se ejecuta desde el terminal el comando que se observa en la figura 9 que permite realizar la instalación de
todos los requisitos previos de software de acuerdo a lo visto en la tabla 2.
Figura 9. Comando de instalación de requisitos previos.
El instalador indica el espacio en disco que se va a utilizar y solicita la confirmación de la continuación de la
instalación como se observa en la figura 10.
4 El proceso completo de instalación de ZABBIX se realizó basados y apoyados en el blog[11] del señor José Luis Gómez Ferrer de Couto, profesional
en administración de TIC de la empresa Soltel Soluciones Informáticas en la ciudad de Sevilla (España). Su hoja de vida puede ser consultada en la
referencia [12] citada al final de este documento.
- 32 -
Figura 10. Confirmación de instalación de requisitos previos.
Figura 11. Descarga de los paquetes de instalación de software previo.
Durante el proceso de instalación de requisitos previos se debe configurar el password que se va a utilizar
para el usuario root de la base de datos en MySQL como se observa en la figura 12.
Figura 12. Configuración de password para usuario root de la base de datos.
- 33 -
Finalmente en las figuras 13, 14 y 15 se observa el proceso de extracción y compilación de los paquetes que
permiten instalar el software previo que permiten el correcto funcionamiento de Zabbix en Ubuntu.
Figura 13. Extracción de paquetes de instalación.
Figura 14. Proceso 1 de instalación del software previo.
- 34 -
Figura 15. Proceso 2 de instalación del software previo.
3.2.4. Instalación Zabbix.
Luego de tener instalado correctamente el software previo, se procede a la configuración y compilación de
Zabbix de la siguiente forma:
3.2.4.1. Creación usuario Zabbix.
Se ejecuta el comando observado en la figura 16 que permite crear un usuario zabbix en Ubuntu para poder
utilizar Zabbix a través de este mismo. Zabbix necesita un usuario para que el funcionamiento sea seguro y
que al tiempo no tenga credenciales de súper usuario.
Figura 16. Creación de usuario zabbix en Ubuntu.
3.2.4.2. Descarga de fuentes
Se debe ahora proceder a descargar los archivos de compilación de Zabbix a través del comando observado
en la figura 17.
Figura 17. Descarga de los archivos fuentes para compilación de Zabbix.
- 35 -
Luego se procede a extraerlos o descomprimirlos en la carpeta del usuario creado zabbix como se observa en
la figura 18.
Figura 18. Extracción de los archivos descargados
3.2.4.3. Creación del esquema
Se ha optado por utilizar MySQL y para continuar con la instalación se debe crear una base de datos y darle
permisos necesarios al usuario que se conectará a ella. Para esto se ejecutan los comandos mostrados en la
figura 19.
Figura 19. Creación de base de datos y privilegios de usuario Zabbix.
Las figuras 20, 21 y 22 nos permiten observar el proceso de actualización del protocolo de autenticación de
MySQL para Ubuntu.
Figura 20. Actualización de usuario y contraseña.
- 36 -
Figura 21. Actualización de políticas y privilegios.
Figura 22. Activación de contraseña.
Dentro de las fuentes descargadas se incluyen unas plantillas para la creación del esquema y otras opciones.
Entonces se ejecutan los comandos observados en la figura 23 como usuario zabbix para dejar funcionando
el almacén de datos.
Figura 23. Comandos de configuración bases de datos.
3.2.4.4. Configurar, compilar e instalar:
Ahora se deben configurar las fuentes para dar soporte como servidor, instalar el agente en el servidor
Zabbix, usar MySQL como contenedor de datos, soporte para net-SNMP, CURL, y JABBER. Para ello se
ejecuta el comando observado en la figura 24 como usuario zabbix.
Figura 24. Comando de configuración de las fuentes de instalación.
- 37 -
La figura 25 permite observar el resultado de la configuración de las fuentes y nos confirma que se han
predeterminado los siguientes parámetros: Activación de Servidor, Motor de base de datos MySQL,
librería cURL, Soporte de Jabber, protocolo net-SNMP y activación del agente Zabbix para LINUX.
Figura 25. Configuración Servidor, MySQL, cURL, Jabber, net-SNMP y agente Zabbix.
Finalmente y desde el root del usuario zabbix, se procede a compilar e instalar las fuentes como se observa
en la figura 26.
Figura 26. Comando de compilación e instalación de fuentes de Zabbix.
3.2.4.5. Configuración post-instalación
Después de obtener una configuración, compilación e instalación limpia de las fuentes de Zabbix se procede a
realizar los siguientes ajustes:
Configuración de los puertos que utiliza Zabbix como se observa en la figura 27.
- 38 -
Figura 27. Configuración de puertos de Zabbix
Ahora se procede a crear el directorio donde se almacenarán los ficheros de configuración y se le asigna el
propietario. Para ello se ejecutan los siguientes comandos observados en la figura 28
Figura 28. Creación de directorio de almacenamiento de ficheros de configuración.
Finalmente se procede a editar el fichero de configuración del servidor Zabbix para declarar los parámetros de
conexión a la base de datos MySQL. Para ello se debe acceder a los archivos de configuración, abrirlos con
un editor de texto de consola (para este caso se utilizo el GNU nano v2.2.2) y revisar y/o cambiar los
parámetros resaltados en la figura 29 que corresponden a los datos de conexión a la base de datos de
MySQL.
Figura 29. Configuración de parámetros de conexión a BD de MySQL.
- 39 -
3.2.4.6. Configuración scripts de inicio
Para que el servidor Zabbix y el agente arranquen de forma predeterminada durante el inicio del sistema se
ejecuta el comando observado en la figura 30 como root y se editan los archivos para el servidor Zabbix y
para el agente Zabbix observados en las figuras 31 y 32 respectivamente.
Figura 30. Configuración de script de inicio.
Figura 31. Edición de script de inicio para Servidor Zabbix
- 40 -
Figura 32. Edición de script de inicio para Agente Zabbix.
Ahora se le asignan los permisos a ambos scripts y se configura el nivel de arranque en el que van a iniciar.
Para ello como root se ejecutamos los comandos observados en la figura 33.
Figura 33. Asignación de permisos a scripts de inicio de agente y servidor Zabbix.
- 41 -
Por último se procede a iniciar tanto el agente como el servidor Zabbix según se observa en la figura 34.
Figura 34. Inicio de Agente y Servidor Zabbix.
3.2.5. Instalación front-end
Ahora se debe proceder a instalar la interfaz web del servidor Zabbix para lo cual se ejecutan los comandos
observados en la figura 35.
Figura 35. Instalación de interfaz web de servidor Zabbix.
3.2.5.1. Configuración PHP.
Zabbix necesita que algunos parámetros de PHP sean modificados. Como root se edita el archivo php.ini y se
modifican las líneas señaladas en las figuras 36, 37, 38 y 39.
Figura 36. Edición 1 de archivo php.ini: date.timezone
- 42 -
Figura 37. Edición 2 de archivo php.ini: memory_limit
Figura 38. Edición 3 de archivo php.ini: upload_max_filesize
- 43 -
Figura 39. Edición 4 de archivo php.ini: max_execution_time
Finalmente se reinicia el servidor apache según se observa en la figura 40.
Figura 40. Reinicio de servidor apache.
3.2.5.2. Configuración interfaz Web
Para finalizar la totalidad de la instalación de Zabbix se debe configurar la interfaz web, para lo cual se ingresa
a través de un explorador web a la dirección del servidor (http://127.0.0.1 o http://localhost) como se observa
en la figura 41.
Figura 41. Ingreso a configuración de interfaz web en servidor local
- 44 -
Se aceptan los términos de licencia, figura 42.
Figura 42. Aceptación de licencia
Se chequean la instalación correcta de los prerrequisitos, figura 43.
Figura 43. Lista de chequeo de prerrequisitos.
- 45 -
Se realizan pruebas de conexión a la base de datos con el usuario y password asignados anteriormente,
figura 44.
Figura 44. Configuración de conexión con base de datos.
Se confirma el puerto configurado para el servidor Zabbix, figura 45.
Figura 45. Configuración del puerto del servidor Zabbix.
- 46 -
Se observa el resumen del proceso de preinstalación, figura 46.
Figura 46. Resumen de la instalación.
Se da click en la opción resaltada en la figura 47.
Figura 47. Archivo de configuración
- 47 -
Se guarda el archivo zabbix.conf.php en la ruta mostrada en la figura 49.
Figura 48. Guardando archivo Zabbix.conf.php
Figura 49. Ubicación del archivo guardado Zabbix.conf.php
Y finalmente se termina el proceso de instalación como se muestra en las figuras 50 y 51.
Figura 50. Último paso de instalación.
- 48 -
Figura 51. Finalización de la instalación de manera exitosa.
3.2.6. Probando Zabbix
Luego de obtener la instalación exitosa de la interfaz web de Zabbix, procedemos a realizar pruebas
autenticándonos con el usuario: admin y el password: zabbix. La figura 53 nos confirma que la instalación ha
finalizado de manera correcta y que Zabbix está listo para iniciar con sus tareas de monitorización.
Figura 52. Ingreso a interfaz web con usuario admin.
- 49 -
Figura 53. Confirmación de instalación completa y correcta de ZABBIX en Ubuntu.
3.3. INSTALACIÓN AGENTE ZABBIX EN WINDOWS
En la página principal de Zabbix, se encuentran disponibles los Agentes Zabbix para monitorizar diferentes
sistemas operativos en varias versiones, como Solaris, AIX, FreeBSD, HP-UX, Linux y Windows, dado que los
equipos de Santini System Group Ltda. tienen instalado Windows, este es el agente con el que se trabajará.
La página web del programa provee un archivo comprimido con los agentes para este sistema como se
observa en la figura 54. Allí se ven dos subcarpetas para maquinas a 64 o a 32 bits, en este caso se
descomprime la versión para 32 bits.
Figura 54. Archivo comprimido, instalador agente Zabbix.
Una vez descomprimido, se obtienen tres archivos ejecutables que permitirán realizar la instalación del
Agente Zabbix para Windows, estos se pueden observar en la figura 55, para realizar la correcta instalación
se deben seguir pasos específicos que se mencionaran a continuación.
Figura 55. Contenido de la carpeta win32, tres archivos ejecutables.
Lo primero que se debe hacer es crear una carpeta en la raíz del disco duro local, en este caso C:\. El nombre
que se le dio fue Zabbix, dentro del directorio se deben copiar los tres ejecutables descargados como se
muestra en la figura 56 y a su vez copiar un archivo de configuración para los agentes, el cual tiene por
nombre zabbix_agentd.win.conf que se encuentra en el equipo donde previamente se instaló el servidor
Zabbix en la siguiente ruta: sistemadearchivos/misc/conf/zabbix_agentd.win.conf. Se procede a copiar y
pegar. En la figura 57 se puede apreciar la carpeta en C\:zabbix\ con 4 los elementos requeridos.
- 50 -
Figura 56. Carpeta Zabbix creada en C:\
Figura 57. Carpeta Zabbix con archivos necesarios.
Lo siguiente que se hará será establecer los parámetros correctos en el archivo de configuración, para tal fin
este de debe abrir usando el bloc de notas, entonces, la entrada Server= que por defecto se encuentra con la
dirección IP del localhost 127.0.0.1 se cambia por la dirección IP del servidor Zabbix, esto se ve en la figura
58. Luego, como se muestra en la figura 59, en la opción Hostname se ingresa un nombre de identificación de
la maquina a monitorizar, este será el mismo que se le dará en la consola web de Zabbix al adicionar el
equipo como elemento, en este caso se le ha asignado el nombre de Windows_box.
Figura 58. Configuración de dirección IP de servidor.
Figura 59. Configuración del hostname del equipo.
Ahora mediante el comando C:\zabbix>zabbix_agentd.exe -c c:/zabbix/zabbix_agentd.win.conf se instalara el
agente usando la configuración dada en el archivo .conf, como se puede apreciar en las figuras 60 y 61, una
vez ejecutado desde la consola aparece un error 1464 del zabbix_agentd, por lo cual se agrega el parámetro
–i para ejecutarlo como un servicio.
- 51 -
Figura 60. Comando de instalación.
Figura 61. Error después de ejecutar comando de instalación.
En la figura 62 se observa un comando para llamar la ayuda del agente Zabbix que es de mucha utilidad, ya
que como se ve en la figura 63 nos muestra el listado de parámetros para realizar diferentes acciones tales
como instalar, desinstalar, iniciar o detener el servicio, acceder a archivos de configuración o ver la versión
usada.
Figura 62. Llamado a la ayuda del instalador.
- 52 -
Figura 63. Listado de comandos para el instalador.
Dado que la función –i es la correspondiente para continuar con la instalación del agente, se tomará esta, en
la figura 64 se muestra el comando completo, enseguida, en la figura 65 se encuentra el reporte de instalación
exitosa del servicio. De esta manera cuando se observa el listado de servicios de Windows ejecutando
services.msc, se aprecia que el servicio zabbix agent ya se encuentra pero no está iniciado, figura 66a, así
que de acuerdo a los diferentes parámetros del archivo de instalación, se usa –s en el comando de ejecución
para iniciar el servicio, en la figura 66b se muestra la línea de comando y en la figura 66c se ve el agente
establecido e iniciado, con esto se concluye la instalación del agente Zabbix para Windows.
Figura 64. Comando de instalación como servicio.
Figura 65. Confirmación de instalación exitosa.
- 53 -
Figura 66. Inicio de servicio Zabbix, servicio detenido (a), comando de activación (b) y servicio iniciado (c).
4. IMPLEMENTACIÓN: INTERFAZ WEB DE ZABBIX
4.1. CREACION DE UN HOST
La administración de todas las tareas de monitorización se realiza desde el panel frontal, este es una interfaz
web que permite gestionar las actividades de monitorización, se pueden agregar dispositivos, configurar todas
las opciones del Zabbix, generar reportes, graficas, alarmas, crear cuentas.
Como primer paso, se mostrara como agregar un dispositivo conectado a la red, un Host. En la figura numero
67 tenemos el frontend de Zabbix; en el menú se elige Configuration, es en esta pestaña donde se definen
los parámetros de datos, graficas, reportes y envío de notificaciones. Luego se da clic en la opción Hosts en el
submenú. Allí se muestra un primer elemento ya creado, se trata del mismo sistema del computador en el que
se encuentra instalado el programa, por defecto él se define como Zabbix Server.
Figura 67. Ventana de configuración, opción host
En la tabla general del Host Zabbix Server en la figura 68 (a), se puede ver en la columna status que este no
se encuentra monitorizado, es decir no se encuentra activado; para activarlo, se selecciona y en la persiana
inferior se elige Activate Selected y se da clic en Go, figura 68 (b) se puede ver como después de esta acción
el host se encuentra en estado monitored y un señalizador verde mostrando disponibilidad en la columna
Availability.
- 54 -
Figura 68. Activación Host, selección(a), confirmación de activación (b).
Para la creación del host, se da clic en Create Host como se ve en la figura 69, seguido de esto se llenan los
campos necesarios para la configuración del elemento creado, figura 70, en este caso se va a monitorizar un
computador de un usuario de Santini System Group, se trata de un equipo con sistema operativo Windows
XP que se encuentra en la red, el nombre que se le da es WXP_HOST. Un host siempre debe pertenecer a
algún grupo, ya que los permisos en la herramienta se dan sobre grupos y no sobre elementos específicos
entonces en el campo grupos se elige Windows servers, se escribe la IP del equipo en el campo
correspondiente y en “Connect to” se selecciona IP Address, luego, en el campo Linked templates se da clic
en add para adicionar una plantilla correspondiente al sistema operativo que se tiene instalado en el equipo.
Figura 69. Ventana de configuración, creación Host
- 55 -
Figura 70. Configuración Host.
En la figura 71 se encuentra la ventana de templates o plantillas, que sale una vez se da clic en add, se
observa que hay para diferentes sistemas operativos como Windows XP, Windows Exchange, Solaris, Linux,
Mac, además de plantillas con configuración para el uso de protocolos como el SNMP, en este caso se
escoge la que viene diseñada para Windows. Devuelta en la ventana de configuración del host, figura 72, se
selecciona, en Linked templates, la que se seleccionó previamente y se da clic en Save. Ahora se activa el
nuevo Host creado, del mismo modo que se hizo con el elemento Zabbix Server, esto se muestra en la figura
73.
Figura 71. Listado de plantillas, Host Windows.
- 56 -
Figura 72. Plantilla adicionada.
Figura 73. Activación Host creado.
4.1.1. Agregando un Servidor en Windows Server como Host
Lo siguiente que se hizo fue agregar el host del servidor Zeus de Santini System Group, este tiene sistema
operativo Windows Server 2003 R2, tiene replica del servidor DHCP, se encuentra instalada la impresora, es
el controlador de domino y allí se encuentra el Directorio Activo. Simplemente se adiciona como se realizó con
los equipos anteriores, se incluye en el grupo Windows servers y se le agrega la plantilla para sistemas
operativos Windows en la figura 74 se aprecia la ventana de creación del Host y en la figura 75 se puede ver
el grupo de host creados con el que recién se agregó, de nombre Zeus, todos con los agentes activados
Zabbix y SNMP respectivamente.
- 57 -
Figura 74. Ventana de configuración, creación de Host servidor de Windows.
Figura 75. Host Zeus activado.
4.1.2. Adición de Host Monitorizados Mediante Agentes SNMP.
4.1.2.1. Instalación de paquete snmp para Ubuntu
La figura 76 permite observar la instalación desde la consola de Ubuntu del paquete de snmp para
monitorización.
Figura 76. Comando de instalación SNMP.
- 58 -
4.1.2.2. Impresora en Red
Ahora se adicionara un periférico en red como por ejemplo una impresora, en este caso la impresora principal
de Santini System Group, una HP JetLaser. Primero se debe activar el protocolo SNMP en el servidor a través
de la Terminal de Ubuntu, en la figura 77 se aprecia el llamado para la descarga e instalación de los paquetes
para su funcionamiento. Ahora de mira si el elemento escogido a monitorizar es asequible es decir si está
establecida la comunicación, si se toman los agentes correctamente y si responde a las peticiones del
servidor Zabbix; para esto, primero se tiene que saber que versión del protocolo usa el dispositivo y cuál es la
comunidad o cadena de autenticación.
Figura 77. Interfaz web de la impresora, configuración TCP/IP.
La interfaz web de la impresora es un espacio en donde se puede encontrar diferentes características de la
misma, ver su estado actual y gestionar configuraciones, a esta se accede simplemente colocando la
dirección IP en el espacio donde va la dirección web en un explorador de Internet como Internet Explorer o en
este caso Mozilla Firefox, en la figura 78 se puede observar la ventana de configuración TCP/IP de la
impresora allí se encuentra el nombre del host, el estado del protocolo IPv4 e IPv6 y la dirección IP con puerta
de enlace predeterminada. A su vez, en la ventana de configuración de red, se ve la configuración para el
protocolo SNMP v1 o v2, figura 79, entonces se selecciona la opción de habilitar el acceso SNMP v1/v2 de
solo lectura, el nombre de la comunidad por defecto es public. En la figura 80 se ve la terminal de Ubuntu,
donde mediante el comando snmpstatus -v 2c -c <comunidad> <IP del dispositivo> se confirma el correcto
funcionamiento del protocolo y el estado de la conexión, en la respuesta que da la terminal a la petición
podemos ver el puerto por defecto usado comúnmente por los agentes SMNP el 161, la interfaz de la
impresora, y el uptime que es el tiempo en el cual el dispositivo ha funcionado correctamente sin ningún tipo
de error o interrupción en su funcionamiento.
- 59 -
Figura 78. Interfaz web de la impresora, configuración de red.
Figura 79. Comando, estado del SNMP.
Entonces se procede a crear el Host, tomando los mismos pasos que anteriormente se hicieron, dando el
nombre del elemento y la correspondiente dirección IP de la impresora como se puede ver en la figura 76,
además se escoge en las plantillas la correspondiente a la referencia Template_HP_ColorLaserJet y la
plantilla del protocolo SNMP que maneja la impresora, lo anterior se muestra en la figura 81, y por ultimo
luego de la creación del Host, se procede a activarlo, en la figura 82 se puede ver la activación y el encendido
del indicador verde en la columna availabiliy que advierte el correcto funcionamiento del SNMP.
- 60 -
Figura 80. Ventana de configuración, creación de Host impresora.
Figura 81. Plantillas para Host impresora.
- 61 -
Figura 82. Activación del Host Impresora.
4.1.2.3. Switch Cisco Catalyst 2960
Los switches son dispositivos que también tienen el protocolo SNMP activado para ser monitorizados, en este
caso se trata de un Switch Cisco 2960, entonces, como se ve en la figura 83 en las plantillas se elige la
correspondiente al modelo llamada Template_Cisco_2960 y a su vez la del protocolo SNMPv2.
Figura 83. Selección de plantillas para Switch.
- 62 -
El comando snmpstatus se utilizó para verificar la versión del protocolo SNMP que usa el switch y también en
que comunidad está, además, como se puede ver en la figura 84, este comando retorna el uptime, tiempo
durante el cual, el dispositivo ha tenido un correcto funcionamiento sin ningún tipo de error o interrupción.
Ahora se usa el comando snmp walk, el cual retorna todos los valores que están disponibles en un agente
SNMP dado, los elementos que pueden ser monitorizados, como la salida puede ser demasiado larga,
mediante el comando head –n se restringe la salida a n número de líneas, figura 85. Por último se usa el
comando snmpget como se muestra en la figura 86, con este, que se constato que efectivamente se tenía
acceso de lectura de los elementos vistos en el snmpwalk, se puede ver que el OID o identificador de objeto
sysuptimeinstance es el único que devuelve un valor de timetricks diferente a cero, entonces es necesario
buscar el ítem con el OID sysuptimeinstance para validar su configuración.
Figura 84. SNMP status del switch.
Figura 85. SNMP walk del switch.
Figura 86. SNMP get del switch.
Luego, continuando con la creación del host, como comúnmente se hace, como nombre se coloca el nombre
del switch, en este caso es SW2960_COBOGADMIN02, el grupo que se elige es SNMP Devices y se coloca
la IP correspondiente como se muestra en la figura 87. Luego se busca en los Items correspondientes al
switch el llamado Template_Cisco_2960 Uptime, en la figura 88 está el listado y en él se encuentra el Uptime,
entonces se selecciona para entrar en la configuración del mismo, allí se llenan los espacios de SNMP
- 63 -
community y SNMP port, la comunidad en la que está configurado el dispositivo es SANTINI y como ya se
había dicho el puerto por defecto para los agentes SNMP es el 161, en la figura 89 aparece esta
configuración. El mismo procedimiento se realizo con el otro switch que se encuentra en Santini System
Group, se trata de un switch de la misma referencia y con nombre SW2960_COBOGADMIN02.
Figura 87. Ventana configuración, creación de Host switch
Figura 88. Listado de Items, selección de Item Uptime
- 64 -
Figura 89. Configuración del Item Uptime.
4.1.2.4. Router Cisco 2801
Primero, se toman los comandos de gestión del protocolo SNMP, El comando snmpstatus retorna el uptime,
tiempo durante el cual, el dispositivo ha tenido un correcto funcionamiento sin ninguna interrupción, además
sirve para constatar la versión del protocolo SNMP y la comunidad, figura 90. El comando snmp walk retorna
todos los valores que están disponibles en el dispositivo SNMP, figura 91. Finalmente se usa el comando
snmpget como se muestra en la figura 92, con lo cual se verifica que si se tenía acceso de lectura de los
elementos vistos en el snmpwalk.
Figura 90. SNMP status del router.
Figura 91. SNMP walk del router.
- 65 -
Figura 92. SNMP get del router.
Ahora se configura el router de la misma manera que como se hizo con el switch, el nombre de host es
RT2801_COBOGADMIN01, se incluye en el grupo SNMP Devices y se escribe la dirección IP que es la
10.57.50.1, se adiciona la plantilla del protocolo SNMP y se da clic en Save para terminar la creación, como
se muestra en la figura 93.
Figura 93. Ventana configuración, creación de Host router
Para este dispositivo, ya que no se tiene la plantilla, se debe crear el Item, entonces, en configuration, Hosts,
se da clic en el botón create Item, como se muestra en la figura 94. En la figura 95 se encuentra la ventana de
creación del nuevo Item entonces se dan los parámetros correspondientes, el nombre del Host es
RT2801_COBOGADMIN01, en la descripción se coloca el nombre del Item que se necesita que es Uptime, el
SNMP OID que es el object identificator, es una cadena que identifica el Item correspondiente, la comunidad
en el espacio SNMP community que al igual que el switch es SANTINI y el puerto por defecto de los agentes
SNMP que es el 161, en Type of information se define el formato de los datos que entran, en este caso
numéricos en Units se escoge s de segundos, medida por defecto del tiempo y por último se da clic en Save.
Ya en la figura 96 se puede ver la ventana donde se muestran todos los host controlados con agentes SNMP:
los dos switches, el router y la impresora.
- 66 -
Figura 94. Ventana configuración, hosts, opción crear Item.
Figura 95. Ventana creación Item Uptime
Figura 96. Listado de host con SNMP, todos activados.
- 67 -
4.2. CREACIÓN DE UN ÍTEM.
Es importante que el proceso de creación de hosts se lleve a cabo con éxito de tal forma que podamos a
través del menú de configuración observar el estado de la disponibilidad (Availability) resaltado en color
verde (ver figura 97). Esto implica que nuestro dispositivo está comunicándose de manera correcta con el
servidor Zabbix a través de su agente, bien sea SNPM, IMPI o el agente Zabbix.
Sin embargo, dado que los ítems son la base de la recolección de los datos, es necesario ilustrar el proceso
de creación de estos así como su funcionamiento.
El proceso inicia haciendo click en la opción Hosts del menú Configuration como se observa en la figura 93.
Figura 97. Menú Configuration -> Hosts para crear un ítem.
Luego, se procede a seleccionar la opción Create Item del menú de la derecha como se observa en la figura
98.
Figura 98. Opción Create Item.
En la figura 99 se observa el formato que se despliega para configurar las características del ítem que se va a
crear.
Se puede detallar que es importante tener en cuenta 3 espacios que se deben completar en este formulario:
El Host al cual pertenece el ítem, la descripción del ítem y el Key que hace referencia al nombre técnico que
recibe el ítem y que se encarga de identificar la información ó datos que este recolecta.
- 68 -
Para este ejemplo se selecciona el Host llamado WXP_Host para monitorizar el estado de carga del
procesador cuya palabra clave o Key es system.cpu.load[,avg15].
Figura 99. Propiedades del Item creado
Finalmente se procede a verificar que nuestro ítem se quedó correctamente creado, ingresando a la opción
Latest data del menú Monitoring.
La figura 96 ilustra que el ítem creado con descripción Processor Load15 efectivamente está recolectando
datos de los cuales se registró un último cambio a la hora señalada en la figura 100.
- 69 -
Figura 100. Listado de Items, Item creado.
Figura 101. Gráfica del Item Creado.
Si se prefiere, también se puede observar los cambios registrados por el ítem a través de gráficas. Para este
caso se ilustra el porcentaje de carga del procesador en función del tiempo como se observa en la figura 101.
La creación de gráficas se detallará en la sección 4.6.
4.3. CREACIÓN DE UN TRIGGER
Un ítem por sí solo únicamente se encarga de obtener información. La administración y clasificación de esta
información se realiza mediante Triggers. Un Trigger en Zabbix es una entidad que define umbrales para la
clasificación de los ítems, por ejemplo, si el ítem de medición de nivel de tóner en una impresora monitoreada
arroja un valor bajo, significa que el Trigger del tóner se debe disparar y pasar a un estado de alerta. De esta
manera avisará que la tinta de la impresora esta por acabarse.
- 70 -
Figura 102. Ventana de configuración, crear Trigger.
Para crear un Trigger se elige configuration, submenú hosts, y en la persiana al lado derecho se selecciona
Trigger, después se da clic en el botón Create Trigger como se ve en la figura 102. En la figura 103 se
encuentra la ventana de creación del Trigger, allí se le da un nombre, en este caso se va a crear un Trigger
para el nivel de tóner de la Impresora, se llamara Black Toner low on printer NP18F7D9F, en Expression se
da clic en el botón select y se busca el Item correspondiente al nivel del tóner en la lista, en Function se elige
Last value <N y se le da como valor de N = 1000, luego se da clic en Insert. En la figura 104 se muestra de
nuevo la ventana de configuración en donde se coloca un en comentario una nota referente a que necesita
ser cambiado el tóner de la impresora y se le da clic en Save. En la figura 105 se puede ver el listado de
Triggers y seleccionado se encuentra el que acabamos de crear.
Figura 103. Ventana configuración de Trigger.
- 71 -
Figura 104. Ventana de creación.
Figura 105. Listado de Triggers.
4.4. CREACIÓN DE GRÁFICAS
Se observó en la figura 105 que los datos obtenidos por los ítems se pueden visualizar a través de gráficas. El
método más cómodo para realizar esto es a través de la creación de las gráficas mismas, cuyo proceso se
explicará a continuación.
Se ingresa a la opción Hosts del menú Configuration y se selecciona Create Graph como se observa en la
figura 106.
- 72 -
Figura 106. Creación de gráficas en el menú Configuration.
Luego se despliega un formulario que se completa como se observa en la figura 107. Se le asigna un Nombre
a la gráfica y se selecciona gráfica tipo normal. Se configura mostrar tiempo de trabajo y triggers (show
working time, show triggers).
Siguiente a esto se da click en Add, en donde se seleccionará el ítem cuyos datos se graficarán. Las figuras
107, 108 y 109 permiten detallar este proceso.
Figura 107. Configuración para creación de gráficas, selección ítem 1 para graficar.
- 73 -
Figura 108. Selección y configuración de ítem 2 para graficar.
Figura 109. Selección y configuración de ítem 3 para graficar.
Como se observó anteriormente, para este ejemplo se ha configurado una gráfica llamada WXP CPU Load
para monitorizar el historial de carga del procesador del Host llamado WXP_Host.
La figura 110 permite confirmar el correcto funcionamiento de la gráfica creada y nos ilustra el historial de
carga del procesador del host referenciado.
- 74 -
Figura 110. Confirmación de funcionamiento de gráfica WXP CPU Load creada.
Es importante ahora realizar una prueba para asegurarse que el ítem esté recolectando datos de manera
correcta y que la gráfica creada para este ítem logre ilustrarlos. Para esto, se va a realizar una carga real del
procesador del host WXP_Host a través de un procedimiento sencillo que consiste en escribir un archivo por
lotes y ejecutarlo de manera continua y en repetidas ocasiones como se observa en las figuras 111a, 111b y
111c.
Figura 111b. Crear archivo f.bat y guardarlo en escritorio.
Figura 111a. Abrir editor de texto en Windows.
Figura 111c. Ejecución de archivo por lotes f.bat ubicado en el escritorio.
- 75 -
Antes de proceder a observar los datos monitorizados en Zabbix se creó otro ítem correspondiente a memoria
RAM libre en el host WXP_Host a través del mismo procedimiento que se utilizó para crear el referente a la
carga del procesador.
Luego de realizar la creación de estos ítems vamos a revisar en el propio Host de donde se están
monitorizando los datos, el estado del procesador y de la memoria a través del administrador de tareas, en la
pestaña de Rendimiento como se ilustra en la figura 112.
Figura 112. Pestaña Rendimiento del administrador de tareas de Windows.
Se puede detallar que la carga del procesador ha subido a 100% y además que actualmente hay 488.652 MB
de memoria libre de los 1’037.420 MB total que tiene el equipo.
Ahora bien, lo importante es lograr observar estos datos sobre la interfaz web de Zabbix. Para esto se
procede a ingresar a la opción Graphs del menú Monitoring como se observa en la figura 113.
Figura 113. Opción para observar las gráficas de monitorización en la interfaz web.
La figura 114 corresponde a la gráfica WXP CPU Load del host WXP_HOST e ilustra claramente el
incremento en la carga del procesador que coincide con lo observado en la gráfica de la figura 108.
76
Figura 114. Gráfica de carga del procesador en el host WXP_HOST.
De la misma forma, se observa en la figura 115 la gráfica correspondiente a la cantidad de memoria física
disponible. Es evidente que los números coinciden ya que se detallan 476.84 MB libres del total en el equipo
monitorizado.
Figura 115. Gráfica de memoria libre disponible en el host WXP_HOST.
77
Como último ejemplo para este documento para demostrar la veracidad de los datos, se observará a
continuación una gráfica que ilustra la utilización de la red del servidor Zabbix implementado sobre Ubuntu.
Para este procedimiento se realizó una prueba de velocidad a través de la página web5 www.speedtest.net
Los resultados de la prueba realizada así como la fecha y hora de la misma se pueden observar en la figura
116.
Figura 116. Resultados de la prueba de velocidad realizada en el Host Zabbix Server.
Obsérvese por último la gráfica de la figura 117 que corresponde a la utilización de red del host Zabbix
Server. Se puede detallar que entre las 19:10 y las 19:11 horas se recibió un aumento de la carga de la red
cuyo pico estuvo por encima de los 400 KBps, resultado proporcional a lo observado en los resultados de la
figura 116.
Figura 117. Gráfica de utilización de red en el host Zabbix Server.
5http://www.speedtest.net/about.php
78
4.5. CREACIÓN DE MAPAS
Se ha observado a lo largo del documento distintas formas de visualizar estados, triggers, elementos,
parámetros de rendimiento de un host, entre otros. Sin embargo, estos métodos anteriormente mencionados
no permiten monitorizar situaciones que involucren más de 1 host al tiempo en una misma gráfica. Para ello
se hace de gran utilidad emplear mapas.
Los mapas en Zabbix consisten en arreglos gráficos de hosts que permiten visualizar en una misma pantalla o
gráfica, el estado básico, las alarmas y los triggers de un grupo, o varios grupos de hosts.
El proceso de creación de mapas a través de la interfaz web se explicará a continuación.
En primer lugar se hace click en la opción Maps del menú Configuration como se observa en la figura 118.
Para este ejemplo se diseñó un mapa con nombre Santini System Group Network sobre el mapa por defecto
que trae la plataforma instalada.
Figura 118. Crear Mapa en Zabbix.
Luego, se da click sobre la opción + según se detalla en la figura 119.
Figura 119. Creación de elemento en el mapa.
79
En la figura 120 se muestra el formato que se debe completar para configurar y editar uno de los elementos
que se van a ubicar en el mapa y que corresponde bien sea a un host, a un grupo de hosts e incluso se
pueden agregar servicios monitorizados, triggers ó grupos de eventos.
Los datos principales que se deben completar en el formato de la figura 16 son: tipo de elemento (Type),
etiqueta del elemento (Label), ubicación de la etiqueta (Label location) y el ícono que se va a visualizar en el
mapa. Estos íconos pueden personalizarse de acuerdo a los gustos y/o características de los elementos que
se agregan al mapa.
Figura 120. Edición de parámetros del elemento creado en el mapa.
Para el ejemplo se inicia agregando un elemento correspondiente al host llamado WXP_Host como se
observa en la figura 121.
Figura 121. Selección de host correspondiente al elemento creado en el mapa.
Finalmente se da click en Apply como se detalla en la figura 122.
80
Figura 122. Configuración final de elemento creado en el mapa.
Las figuras 123 y 124 muestran el mismo procedimiento realizado anteriormente para el host WXP_HOST
aplicado esta vez a agregar el elemento correspondiente a la impresora que más se utiliza en la oficina de
Santini y que está conectada en la red.
Figura 123. Selección de host para elemento Impresora (NPI8F7D9F) agregado al mapa.
Figura 124. Configuración final de elemento impresora creado en el mapa.
81
Finalmente cabe mencionar que es importante utilizar enlaces o conexiones entre los elementos del mapa
para obtener una idea gráfica más clara de la topología de la red e incluso para tener más comodidad en el
momento de ubicar un elemento específico y observar su estado, alertas, etc.
Figura 125. Creación de link de conexión entre elementos del mapa.
La figura 125 ilustra la manera como se realiza este procedimiento. En primer lugar se seleccionan teniendo
presionada la tecla CTRL del teclado, los 2 elementos que se quieren conectar en el mapa, luego se da click
en el símbolo + cerca a la opción Link y se da click en Apply como se observa en las figuras 126, 127 y 128.
Figura 126. Selección de elementos para creación de conexión entre estos.
82
Figura 127. Creación de link de conexión entre host de Windows y servidor.
Figura 128. Creación de link de conexión entre host dos servidores de la red.
Figura 129. Correo electrónico, notificación de fallo en POP3.
Finalmente y después de agregar los elementos deseados para visualizar sobre el mapa, se da click en la
opción Save, figura 129.
83
El resultado para el ejemplo de este documento se ilustra en la figura 130. Se puede observar monitorizados
el Router Cisco 2801 principal de la red, 2 Switches Cisco Catalyst 2960, 4 hosts en Windows XP y 3 en
Windows 7, 1 servidor en Windows Server 2003 R2, 1 servidor en Windows Server 2008, una impresora HP
LaserJet p2055dn y como es lógico, la Workstation donde está implementado ZABBIX 1.82.
Figura 130. MAPA de MONITORIZACIÓN DE RED INFORMÁTICA DE SANTINI SYSTEM GROUP.
4.6. PLANTILLAS
Una plantilla o Template es una entidad lógica prediseñada con diferentes Items, Triggers y aplicaciones con
el fin de ser aplicadas en elementos que comparten los mismos parámetros de medición, por ejemplo la carga
del procesador, uso de memoria y uso de recursos de red son propios de computadores portátiles y de
escritorio con un sistema operativo como Windows, luego es viable tener una plantilla que ya tenga
configurados los Items a monitorizar en un computador con este sistema. En el enlace
www.zabbix.com/wiki/templates/start se encuentran diferentes plantillas para descargar, como ejemplo se
descargó la plantilla Microsoft Windows Eventlog, la página se muestra en la figura 131.
84
Figura 131. Página de descarga de plantillas.
Luego de descargar la plantilla como un archivo común y corriente, en la interfaz web de zabbix en la opción
Configuration, submenú Export/Import se da clic sobre el botón Browse, allí se busca la ubicación del archivo
que se descargo y una vez seleccionado se da clic en Import como se muestra en la figura 132. En la figura
133 se encuentra la confirmación de importación exitosa de la plantilla, y como ejemplo en la figura 134 se
toma un host en este caso el WXP_HOST y se añade la plantilla que se importó.
Figura 132. Ventana de configuración, importar/exportar plantilla.
Figura 133. Plantilla exitosamente importada.
85
Figura 134. Plantilla importada seleccionada para Host.
4.7. CONFIGURACIÓN NOTIFICACIONES VÍA EMAIL
Una de las funciones más interesantes y útiles de Zabbix es la posibilidad de enviar mensajes de advertencia
o alarma al correo electrónico, para su configuración, primero se elige Administration, luego Media types y allí
se da clic en el botón Create Media Type como se muestra en la figura 135, en description simplemente se le
da un nombre al nuevo elemento, este se llamara email2, en Type se escoge Email y se llenan los espacios
de SMPT server y SMPT helo, en este caso se escoge que los reportes lleguen al correo electrónico
corporativo, por lo cual como server y helo se escoge mail.santinisystemgroup.com y en el campo email se
escribe la dirección de correo electrónico completa y se da clic en Save, el esta configuración se puede
observar en la figura 136.
Figura 135.Ventana Administration, Media types.
Figura 136. Configuración de medio.
Una vez creado el elemento, se selecciona y se activa, en la figura 137 se encuentra la ventana de Media
types y seleccionado el elemento que se creo, luego en la persiana inferior se escoge Actived Selected y se
da clic en el Go. En la figura 138 se muestra la pantalla Administration en el submenú Users, allí se configura
la opción de correo para el usuario administrador, entonces en el listado se selecciona admin para ir a la
ventana de configuración del mismo.
86
Figura 137 Activación elemento creado.
Figura 138. Ventana Administration, users.
En la ventana de configuración del usuario Admin en el espacio Media se da clic en el botón Add, como se ve
en la figura 139, esto despliega una ventana donde se configura el medio, en Type se escoge Email y en send
to se vuelve a escribir la dirección de correo electrónico configurada anteriormente, se selecciona las
opciones para todos los tipos de gravedad y se da clic en el botón Add, figura 140. En la figura 141 se puede
observar el Medio creado, entonces se selecciona y se da clic en Save, con esto se finaliza la configuración.
Figura 139. Ventana configuración de usuario Admin.
87
Figura 140. Adición de E-mail en configuración de usuario.
Figura 141. Configuración completa de servicio de email en usuario admin.
Por último es necesario dar la orden de enviar los reportes obtenidos a los correos electrónicos ya
configurados para el usuario administrador, esto se hace en el submenú Actions de Configuration, esta
pantalla se ve en la figura 142, entonces se da clic en el botón Create Actions. Seguido de esto en la parte de
Action operations se da clic en new, figura 143. En la figura 144 se muestra la ventana que se despliega, en
donde se configura la operación a realizar, en Operation Type se selecciona enviar mensaje, en send
message tose escoge single user y se da clic en el botón Select.
Figura 142. Ventana configuration, actions.
88
Figura 143. Configuración de la acción que se va a crear.
Figura 144. Acción de enviar mensaje a email.
Después de dar clic en Select, se despliega una ventana para elegir el usuario, se selecciona Admin
(administrador), esto se observa en la figura 145. Luego, de regreso a la ventana de configuración de las
acciones se da clic en add y por último se da clic en el botón Save como se muestra en las figuras 146 y 147
respectivamente.
Figura 145. Selección usuario Admin.
89
Figura 146. Adición de la acción configurada.
Figura 147. Guardando acción creada.
En la figura 148 se muestra el aviso de creación exitosa de la acción, ahora se va a verificar si se encuentra
funcionando correctamente, para esto, en la ventana de eventos; la cual se accede seleccionando en el panel
frontal monitoring, events; aparece un listado con los últimos eventos, que son los últimos disparos que los
diferentes Triggers han tenido, en la figura 149 en el listado esta seleccionado el evento Inetd is not running
on zabbix server, la fecha en que sucedió el evento fue en 12 de Julio de 2010 a las 20:13:35 horas, como se
puede apreciar, se selecciona el evento, y en la figura 150 se pueden ver los detalles del mismo, allí se
encuentra el host en el que sucedió el evento, el Trigger que se disparo, la gravedad, el identificador del
Trigger y las acciones que se tomaron, además está la notificación de envío de mensaje a las 20:13:41 en el
mismo instante que ocurrió el evento, solo unos segundos después al correo
[email protected].
Figura 148. Aviso creación exitosa de la acción.
90
Figura 149. Listado de eventos.
Figura 150. Detalles del Trigger seleccionado.
Ahora, después de ingresar al correo electrónico donde se envió la notificación, figura 151, se puede apreciar
que en la bandeja de entrada se encuentran diferentes correos provenientes de Zabbix alertando sobre
problemas en este equipo, incluyendo el del evento visto anteriormente: Inet.d is not running on zabbix server,
luego, se ingresó al correo electrónico de este error el cual se puede ver en la figura 152.
Figura 151. Bandeja de entrada correo electrónico corporativo.
91
Figura 152. Correo de notificación de fallo de Inetd.
De nuevo echando un vistazo a la lista de eventos se encuentra otro problema, POP3 server is down on
zabbix server, figura 153; el evento sucedió 16 de Julio de 2010 a las 20:13:30 horas, lo seleccionamos y en
la figura 154 se pueden ver los detalles del elemento, allí podemos ver el host en el que sucedió el evento, el
Trigger que se disparó, la gravedad, el identificador del Trigger y las acciones que se tomaron, se observa la
notificación de envío de mensaje a las 20:13:38 en al correo [email protected].
Figura 153. Lista de eventos, error en POP3
Figura 154. Detalles de evento de error en POP3.
Una vez más al revisar el correo electrónico elegido, se puede comprobar que el mensaje llego a su
destinatario alertando sobre la caída por alguna razón del servidor de POP3 en el host Zabbix server, figura
155. Estas alarmas son de vital importancia ya que son enviadas instantáneamente, entonces la persona
encargada del soporte en la empresa, al ver que hay una alerta, está a tiempo para ir a solucionar el problema
antes de que se agrave o provoque daños en hardware o software.
92
Figura 155. Correo electrónico, notificación de fallo en POP3.
93
5. DOFA
DEBILIDADES
•
•
•
Falta de experiencia.
Necesidad de profundizar aun más en el manejo de la herramienta.
No se ha probado en ambientes más grandes que exijan una mayor gestión.
OPORTUNIDADES
•
•
•
Posibilidad de ingresar en un mercado que está en auge y en crecimiento.
Necesidad de las empresas de usar herramientas de monitorización a medida que crece el tamaño
de la red y la demanda de recursos.
Creciente demanda y uso de voz y datos en sistemas de comunicaciones.
FORALEZAS
•
•
•
•
El proyecto tiene la ventaja de no tener un costo económico elevado debido a ser basado sobre
software libre.
Aun siendo una aplicación basada en Linux, su interfaz web es amigable y manejable.
Innovación del proyecto ya que la mayoría de las compañías están acostumbradas a comprar
licencias de software patentado.
Ganas de seguir adelante y espíritu emprendedor.
AMENAZAS
•
•
•
Posible competencia a medida que se valla popularizando aun más el uso de herramientas de
monitorización.
Empresas con mayor solidez económica y experiencia.
Falta de confianza de muchas compañías que prefieren comprar software licenciado.
94
6. CONCLUSIONES
La prevención y la respuesta anticipada a problemas por medio de el monitoreo, son mecanismos que llevan
a un control exitoso de una red. Con el desarrollo de nuevas tecnologías de comunicación y su creciente uso
por parte de empresas, los costos de mantenimiento de redes son muy altos, y es aquí donde las soluciones
de monitoreo de las mismas ofrecen una salida viable para el control y solución de inconvenientes; por estas
razones el análisis y monitoreo de redes se ha convertido en una de las actividades de vital importancia en las
prioridades de las diferentes compañías.
Montar una solución de monitoreo eficaz y efectiva es una tarea que implica bastante dedicación por parte del
Ingeniero, la herramienta escogida, Zabbix, es un instrumento de alta calidad y factible económicamente para
su implementación, ya que cuenta con una variedad de opciones y configuraciones que facilitan su uso,
además de ser un software libre lo que evita los costos de licenciamiento; los desarrollos sobre programas
open source se convierten en una excelente opción para el desarrollo de proyectos en ingeniería.
Dada la creciente necesidad por parte de las empresas de usar mecanismos de monitorización que permitan
dar un mejor manejo y gestión de la red y el hecho de que la herramienta escogida cuenta con diferentes
características que le permiten ser rápida exacta y versátil y a su vez a bajo costo por no necesitar licencias
para su manejo; convierte este proyecto en una importante oportunidad de negocio para ofrecerla a
compañías de todos los sectores de la economía.
95
7. REFERENCIAS Y BIBLIOGRAFÍA
[1] http://profesores.elo.utfsm.cl/~tarredondo/info/networks/Presentacion_snmp.pdf
[2] http://es.wikipedia.org/wiki/GNU
[3] http://www.gnu.org/gnu/gnu-history.html
[4] http://es.gnu.org/~reneme/map/es/map-es-i-3000.png
[5] http://www.gnu.org/philosophy/free-sw.html
[6] http://www.gnu.org/licenses/gpl-faq.es.html#WhatDoesGPLStandFor
[7] http://www.zabbix.com/es/licence.php
[8] http://es.wikipedia.org/wiki/Linux
[9] http://es.wikipedia.org/wiki/Distribuci%C3%B3n_GNU/Linux
[10] http://es.wikipedia.org/wiki/Ubuntu
[11] http://blog.e2h.net/2010/05/07/instalando-zabbix-la-ultima-solucion-de-monitorizacion-de-codigo-abierto/
[12] http://blog.e2h.net/acerca-de/
[13] http://gugs.sindominio.net/licencias/gples.html
[14] Zabbix 1.8 Network Monitoring, monitor your network’s hardware, servers and web performance
effectively and efficiently. Richard Olups, ISBN 978-1-847197-68-9. Primera versión publicada en Abril del
2010 por Packt Publishing Ltd.
[15] Redes de Área Local. Antonio Blanco Solsona, José Manuel Huidobro Moya, J. Jordán Calero,
ISBN: 8497324897, 2007
[16] Redes Locales. Raya Cabrera, José Luis, Raya González, ISBN: 8478976949, Editorial Ra-Ma, 2009.
[17] Redes Linux con TCP/IP - Guía Avanzada. Eyler Pat, ISBN: 8420531561, Editorial Prentice Hall, 2001.
[18] Redes de Computadoras. Tanenbaum Andrew S, ISBN: 9688809586, Editorial Prentice-Hall, 1998,
Tercera Edición.
[19] The oficial Ubuntu book. Benjamin Mako Hill, Matthew Helmke, Corey Burguer, ISBN: 9780137081301, Prentice Hall, 5 edición, Julio 1 de 2010.
[20] Configuración y administración de servicios en GNU/Linux paso a paso, ISBN: 978-958-44-1616-2, Diego
José Luís Botia Valderrama.
96
ANEXOS
ANEXO 1
[5]Es
importante mencionar que la definición de software libre se modifica a menudo para clarificarla. A
continuación, se proporciona una lista del resumen de dichas modificaciones.
• Versión 1.92: Aclarar que el código fuente ofuscado no se puede considerar código fuente.
• Versión 1.90: Aclarar que la 3ª libertad significa el derecho a distribuir copias de sus propias
versiones modificadas o mejoradas. No el derecho de participar en el proyecto de otro.
• Versión 1.89: La 3ª libertad incluye el derecho a liberar versiones modificadas como software libre.
• Versión 1.80: La primera libertad debe ser práctica, no sólo teórica.
• Versión 1.77: Clarificación acerca que todos los cambios retroactivos a la licencia son inaceptables,
aún si no representan reemplazos completos.
• Versión 1.74: Cuatro clarificaciones de puntos no del todo explícitos, o definidas en algunos lugares
pero no reflejadas en todos:
• Mejoras no significa que la licencia puede limitar sustancialmente qué tipo de versiones
modificadas puede publicar. La 3ª libertad incluye la distribución de versiones modificadas,
no sólo de los cambios.
• El derecho a fusionar módulos existentes se refiere a aquellos que estén debidamente
licenciados.
• Definición explícita de la conclusión sobre los puntos de controles de exportación.
• Imponer un cambio en la licencia constituye una revocación de la antigua licencia.
• Versión 1.57: Agregada la sección «Más allá del software».
• Versión 1.46: Clarificar de quién es el propósito que importa en la libertad para ejecutar el programa
para cualquier propósito.
• Versión 1.41: Clarificar definiciones sobre licencias basadas en contratos.
• Versión 1.40: Explicar que una licencia libre debe permitirle usar otro software libre disponible para
crear sus modificaciones.
• Versión 1.39: Nota acerca que es aceptable para una licencia requerir proveer el código fuente para
versiones del software que ponga en uso público.
• Versión 1.31: Es aceptable para una licencia requerirle que se identifique como el autor de las
modificaciones. Otras clarificaciones menores a lo largo del texto.
• Versión 1.23: Anotados problemas potenciales relacionados a licencias basadas en contratos.
• Versión 1.16: Explicar por qué la distribución de los binarios es importante.
• Versión 1.11: Una licencia libre puede requerirle que envíe una copia de las versiones modificadas al
autor.
97
ANEXO 2
[13] LICENCIA
GNU GPL v2
GNU GENERAL PUBLIC LICENSE
Versión 2, Junio de 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Se permite la copia y distribución de copias literales de este documento, pero no se permite su modificación.
Preámbulo
Las licencias que cubren la mayor parte del software están diseñadas para quitarle a usted la libertad de
compartirlo y modificarlo. Por el contrario, la Licencia Pública General de GNU pretende garantizarle la
libertad de compartir y modificar software libre, para asegurar que el software es libre para todos sus usuarios.
Esta Licencia Pública General se aplica a la mayor parte del software del la Free Software Foundation y a
cualquier otro programa si sus autores se comprometen a utilizarla. (Existe otro software de la Free Software
Foundation que está cubierto por la Licencia Pública General de GNU para Bibliotecas). Si quiere, también
puede aplicarla a sus propios programas.
Cuando hablamos de software libre, estamos refiriéndonos a libertad, no a precio. Nuestras Licencias
Públicas Generales están diseñadas para asegurarnos de que tenga la libertad de distribuir copias de
software libre (y cobrar por ese servicio si quiere), de que reciba el código fuente o que pueda conseguirlo si
lo quiere, de que pueda modificar el software o usar fragmentos de él en nuevos programas libres, y de que
sepa que puede hacer todas estas cosas.
Para proteger sus derechos necesitamos algunas restricciones que prohíban a cualquiera negarle a usted
estos derechos o pedirle que renuncie a ellos. Estas restricciones se traducen en ciertas obligaciones que le
afectan si distribuye copias del software, o si lo modifica.
Por ejemplo, si distribuye copias de uno de estos programas, sea gratuitamente, o a cambio de una
contraprestación, debe dar a los receptores todos los derechos que tiene. Debe asegurarse de que ellos
también reciben, o pueden conseguir, el código fuente. Y debe mostrarles estas condiciones de forma que
conozcan sus derechos.
Protegemos sus derechos con la combinación de dos medidas:
1. Ponemos el software bajo copyright y
2. le ofrecemos esta licencia, que le da permiso legal para copiar, distribuir y/o modificar el software.
También, para la protección de cada autor y la nuestra propia, queremos asegurarnos de que todo el mundo
comprende que no se proporciona ninguna garantía para este software libre. Si el software se modifica por
cualquiera y éste a su vez lo distribuye, queremos que sus receptores sepan que lo que tienen no es el
original, de forma que cualquier problema introducido por otros no afecte a la reputación de los autores
originales.
Por último, cualquier programa libre está constantemente amenazado por patentes sobre el software.
Queremos evitar el peligro de que los redistribuidores de un programa libre obtengan patentes por su cuenta,
98
convirtiendo de facto el programa en propietario. Para evitar esto, hemos dejado claro que cualquier patente
debe ser pedida para el uso libre de cualquiera, o no ser pedida.
Los términos exactos y las condiciones para la copia, distribución y modificación se exponen a continuación.
Términos y condiciones para la copia, distribución y modificación
1. Esta Licencia se aplica a cualquier programa u otro tipo de trabajo que contenga una nota colocada
por el tenedor del copyright diciendo que puede ser distribuido bajo los términos de esta Licencia
Pública General. En adelante, «Programa» se referirá a cualquier programa o trabajo que cumpla
esa condición y «trabajo basado en el Programa» se referirá bien al Programa o a cualquier trabajo
derivado de él según la ley de copyright. Esto es, un trabajo que contenga el programa o una porción
de él, bien en forma literal o con modificaciones y/o traducido en otro lenguaje. Por lo tanto, la
traducción está incluida sin limitaciones en el término «modificación». Cada concesionario
(licenciatario) será denominado «usted».
Cualquier otra actividad que no sea la copia, distribución o modificación no está cubierta por esta
Licencia, está fuera de su ámbito. El acto de ejecutar el Programa no está restringido, y los
resultados del Programa están cubiertos únicamente si sus contenidos constituyen un trabajo basado
en el Programa, independientemente de haberlo producido mediante la ejecución del programa. El
que esto se cumpla, depende de lo que haga el programa.
2. Usted puede copiar y distribuir copias literales del código fuente del Programa, según lo has recibido,
en cualquier medio, supuesto que de forma adecuada y bien visible publique en cada copia un
anuncio de copyright adecuado y un repudio de garantía, mantenga intactos todos los anuncios que
se refieran a esta Licencia y a la ausencia de garantía, y proporcione a cualquier otro receptor del
programa una copia de esta Licencia junto con el Programa.
Puede cobrar un precio por el acto físico de transferir una copia, y puede, según su libre albedrío,
ofrecer garantía a cambio de unos honorarios.
3. Puede modificar su copia o copias del Programa o de cualquier porción de él, formando de esta
manera un trabajo basado en el Programa, y copiar y distribuir esa modificación o trabajo bajo los
términos del apartado 1, antedicho, supuesto que además cumpla las siguientes condiciones:
a. Debe hacer que los ficheros modificados lleven anuncios prominentes indicando que los ha
cambiado y la fecha de cualquier cambio.
b. Debe hacer que cualquier trabajo que distribuya o publique y que en todo o en parte
contenga o sea derivado del Programa o de cualquier parte de él sea licenciada como un
todo, sin carga alguna, a todas las terceras partes y bajo los términos de esta Licencia.
c. Si el programa modificado lee normalmente órdenes interactivamente cuando es ejecutado,
debe hacer que, cuando comience su ejecución para ese uso interactivo de la forma más
habitual, muestre o escriba un mensaje que incluya un anuncio de copyright y un anuncio
de que no se ofrece ninguna garantía (o por el contrario que sí se ofrece garantía) y que los
usuarios pueden redistribuir el programa bajo estas condiciones, e indicando al usuario
cómo ver una copia de esta licencia. (Excepción: si el propio programa es interactivo pero
normalmente no muestra ese anuncio, no se requiere que su trabajo basado en el
Programa muestre ningún anuncio).
99
Estos requisitos se aplican al trabajo modificado como un todo. Si partes identificables de ese trabajo
no son derivadas del Programa, y pueden, razonablemente, ser consideradas trabajos
independientes y separados por ellos mismos, entonces esta Licencia y sus términos no se aplican a
esas partes cuando sean distribuidas como trabajos separados. Pero cuando distribuya esas mismas
secciones como partes de un todo que es un trabajo basado en el Programa, la distribución del todo
debe ser según los términos de esta licencia, cuyos permisos para otros licenciatarios se extienden
al todo completo, y por lo tanto a todas y cada una de sus partes, con independencia de quién la
escribió.
Por lo tanto, no es la intención de este apartado reclamar derechos o desafiar sus derechos sobre
trabajos escritos totalmente por usted mismo. El intento es ejercer el derecho a controlar la
distribución de trabajos derivados o colectivos basados en el Programa.
Además, el simple hecho de reunir un trabajo no basado en el Programa con el Programa (o con un
trabajo basado en el Programa) en un volumen de almacenamiento o en un medio de distribución no
hace que dicho trabajo entre dentro del ámbito cubierto por esta Licencia.
4. Puede copiar y distribuir el Programa (o un trabajo basado en él, según se especifica en el apartado
2, como código objeto o en formato ejecutable según los términos de los apartados 1 y 2, supuesto
que además cumpla una de las siguientes condiciones:
a. Acompañarlo con el código fuente completo correspondiente, en formato electrónico, que
debe ser distribuido según se especifica en los apartados 1 y 2 de esta Licencia en un
medio habitualmente utilizado para el intercambio de programas, ó
b. Acompañarlo con una oferta por escrito, válida durante al menos tres años, de proporcionar
a cualquier tercera parte una copia completa en formato electrónico del código fuente
correspondiente, a un coste no mayor que el de realizar físicamente la distribución del
fuente, que será distribuido bajo las condiciones descritas en los apartados 1 y 2 anteriores,
en un medio habitualmente utilizado para el intercambio de programas, ó
c. Acompañarlo con la información que recibiste ofreciendo distribuir el código fuente
correspondiente. (Esta opción se permite sólo para distribución no comercial y sólo si usted
recibió el programa como código objeto o en formato ejecutable con tal oferta, de acuerdo
con el apartado b anterior).
Por código fuente de un trabajo se entiende la forma preferida del trabajo cuando se le hacen
modificaciones. Para un trabajo ejecutable, se entiende por código fuente completo todo el código
fuente para todos los módulos que contiene, más cualquier fichero asociado de definición de
interfaces, más los guiones utilizados para controlar la compilación e instalación del ejecutable.
Como excepción especial el código fuente distribuido no necesita incluir nada que sea distribuido
normalmente (bien como fuente, bien en forma binaria) con los componentes principales (compilador,
kernel y similares) del sistema operativo en el cual funciona el ejecutable, a no ser que el propio
componente acompañe al ejecutable.
Si la distribución del ejecutable o del código objeto se hace mediante la oferta acceso para copiarlo
de un cierto lugar, entonces se considera la oferta de acceso para copiar el código fuente del mismo
lugar como distribución del código fuente, incluso aunque terceras partes no estén forzadas a copiar
el código fuente junto con el código objeto.
100
5. No puede copiar, modificar, sublicenciar o distribuir el Programa excepto como prevé expresamente
esta Licencia. Cualquier intento de copiar, modificar sublicenciar o distribuir el Programa de otra
forma es inválida, y hará que cesen automáticamente los derechos que te proporciona esta Licencia.
En cualquier caso, las partes que hayan recibido copias o derechos de usted bajo esta Licencia no
cesarán en sus derechos mientras esas partes continúen cumpliéndola.
6. No está obligado a aceptar esta licencia, ya que no la ha firmado. Sin embargo, no hay hada más
que le proporcione permiso para modificar o distribuir el Programa o sus trabajos derivados. Estas
acciones están prohibidas por la ley si no acepta esta Licencia. Por lo tanto, si modifica o distribuye
el Programa (o cualquier trabajo basado en el Programa), está indicando que acepta esta Licencia
para poder hacerlo, y todos sus términos y condiciones para copiar, distribuir o modificar el Programa
o trabajos basados en él.
7. Cada vez que redistribuya el Programa (o cualquier trabajo basado en el Programa), el receptor
recibe automáticamente una licencia del licenciatario original para copiar, distribuir o modificar el
Programa, de forma sujeta a estos términos y condiciones. No puede imponer al receptor ninguna
restricción más sobre el ejercicio de los derechos aquí garantizados. No es usted responsable de
hacer cumplir esta licencia por terceras partes.
8. Si como consecuencia de una resolución judicial o de una alegación de infracción de patente o por
cualquier otra razón (no limitada a asuntos relacionados con patentes) se le imponen condiciones (ya
sea por mandato judicial, por acuerdo o por cualquier otra causa) que contradigan las condiciones de
esta Licencia, ello no le exime de cumplir las condiciones de esta Licencia. Si no puede realizar
distribuciones de forma que se satisfagan simultáneamente sus obligaciones bajo esta licencia y
cualquier otra obligación pertinente entonces, como consecuencia, no puede distribuir el Programa
de ninguna forma. Por ejemplo, si una patente no permite la redistribución libre de derechos de autor
del Programa por parte de todos aquellos que reciban copias directas o indirectamente a través de
usted, entonces la única forma en que podría satisfacer tanto esa condición como esta Licencia sería
evitar completamente la distribución del Programa.
Si cualquier porción de este apartado se considera inválida o imposible de cumplir bajo cualquier
circunstancia particular ha de cumplirse el resto y la sección por entero ha de cumplirse en cualquier
otra circunstancia. .
No es el propósito de este apartado inducirle a infringir ninguna reivindicación de patente ni de
ningún otro derecho de propiedad o impugnar la validez de ninguna de dichas reivindicaciones. Este
apartado tiene el único propósito de proteger la integridad del sistema de distribución de software
libre, que se realiza mediante prácticas de licencia pública. Mucha gente ha hecho contribuciones
generosas a la gran variedad de software distribuido mediante ese sistema con la confianza de que
el sistema se aplicará consistentemente. Será el autor/donante quien decida si quiere distribuir
software mediante cualquier otro sistema y una licencia no puede imponer esa elección.
Este apartado pretende dejar completamente claro lo que se cree que es una consecuencia del resto
de esta Licencia.
9. Si la distribución y/o uso de el Programa está restringida en ciertos países, bien por patentes o por
interfaces bajo copyright, el tenedor del copyright que coloca este Programa bajo esta Licencia
puede añadir una limitación explícita de distribución geográfica excluyendo esos países, de forma
que la distribución se permita sólo en o entre los países no excluidos de esta manera. En ese caso,
esta Licencia incorporará la limitación como si estuviese escrita en el cuerpo de esta Licencia.
101
10. La Free Software Foundation puede publicar versiones revisadas y/o nuevas de la Licencia Pública
General de tiempo en tiempo. Dichas nuevas versiones serán similares en espíritu a la presente
versión, pero pueden ser diferentes en detalles para considerar nuevos problemas o situaciones.
Cada versión recibe un número de versión que la distingue de otras. Si el Programa especifica un
número de versión de esta Licencia que se refiere a ella y a «cualquier versión posterior», tienes la
opción de seguir los términos y condiciones, bien de esa versión, bien de cualquier versión posterior
publicada por la Free Software Foundation. Si el Programa no especifica un número de versión de
esta Licencia, puedes escoger cualquier versión publicada por la Free Software Foundation.
11. Si quiere incorporar partes del Programa en otros programas libres cuyas condiciones de distribución
son diferentes, escribe al autor para pedirle permiso. Si el software tiene copyright de la Free
Software Foundation, escribe a la Free Software Foundation: algunas veces hacemos excepciones
en estos casos. Nuestra decisión estará guiada por el doble objetivo de de preservar la libertad de
todos los derivados de nuestro software libre y promover el que se comparta y reutilice el software en
general.
AUSENCIA DE GARANTÍA
12. Como el programa se licencia libre de cargas, no se ofrece ninguna garantía sobre el programa, en
toda la extensión permitida por la legislación aplicable. Excepto cuando se indique de otra forma por
escrito, los tenedores del copyright y/u otras partes proporcionan el programa «tal cual», sin garantía
de ninguna clase, bien expresa o implícita, con inclusión, pero sin limitación a las garantías
mercantiles implícitas o a la conveniencia para un propósito particular. Cualquier riesgo referente a la
calidad y prestaciones del programa es asumido por usted. Si se probase que el Programa es
defectuoso, asume el coste de cualquier servicio, reparación o corrección.
13. En ningún caso, salvo que lo requiera la legislación aplicable o haya sido acordado por escrito,
ningún tenedor del copyright ni ninguna otra parte que modifique y/o redistribuya el Programa según
se permite en esta Licencia será responsable ante usted por daños, incluyendo cualquier daño
general, especial, incidental o resultante producido por el uso o la imposibilidad de uso del Programa
(con inclusión, pero sin limitación a la pérdida de datos o a la generación incorrecta de datos o a
pérdidas sufridas por usted o por terceras partes o a un fallo del Programa al funcionar en
combinación con cualquier otro programa), incluso si dicho tenedor u otra parte ha sido advertido de
la posibilidad de dichos daños.
FIN DE TÉRMINOS Y CONDICIONES
Apéndice: Cómo aplicar estos términos a sus nuevos programas.
Si usted desarrolla un nuevo Programa, y quiere que sea del mayor uso posible para el público en general, la
mejor forma de conseguirlo es convirtiéndolo en software libre que cualquiera pueda redistribuir y cambiar
bajo estos términos.
Para hacerlo, añada los siguientes anuncios al programa. Lo más seguro es añadirlos al principio de cada
fichero fuente para transmitir lo más efectivamente posible la ausencia de garantía. Además cada fichero
debería tener al menos la línea de «copyright» y un indicador a dónde puede encontrarse el anuncio
completo.
<una línea para indicar el nombre del programa y una rápida idea de qué hace>
Copyright (C) 19aa <nombre del autor>
102
“Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública
General de GNU según es publicada por la Free Software Foundation, bien de la versión 2 de dicha Licencia
o bien (según su elección) de cualquier versión posterior.”
“Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso sin la
garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.
Véase la Licencia Pública General de GNU para más detalles.”
“Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha sido así,
escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.”
Añada también información sobre cómo contactar con usted mediante correo electrónico y postal. Si el
programa es interactivo, haga que muestre un pequeño anuncio como el siguiente, cuando comienza a
funcionar en modo interactivo:
Gnomovision versión 69, Copyright (C) 19aa nombre del autor
Gnomovision no ofrece ABSOLUTAMENTE NINGUNA GARANTÍA. Para más detalles escriba «show w».
Los comandos hipotéticos «show w» y «show c» deberían mostrar las partes adecuadas de la Licencia
Pública General. Por supuesto, los comandos que use pueden llamarse de cualquier otra manera. Podrían
incluso ser pulsaciones del ratón o elementos de un menú (lo que sea apropiado para su programa).
También deberías conseguir que su empleador (si trabaja como programador) o tu Universidad (si es el caso)
firme un «renuncia de copyright» para el programa, si es necesario. A continuación se ofrece un ejemplo,
altere los nombres según sea conveniente:
Yoyodyne, Inc. mediante este documento renuncia a cualquier interés de derechos de copyright con respecto
al programa Gnomovision (que hace pasadas a compiladores) escrito por Pepe Programador.
<firma de Pepito Grillo>, 20 de diciembre de 1996
Pepito Grillo, Presidente de Asuntillos Varios.
Esta Licencia Pública General no permite que incluya sus programas en programas propietarios. Si su
programa es una biblioteca de subrutinas, puede considerar más útil el permitir el enlazado de aplicaciones
propietarias con la biblioteca. Si este es el caso, use la Licencia Pública General de GNU para Bibliotecas en
lugar de esta Licencia.
NOTA IMPORTANTE: Esta es una traducción no oficial al español de la GNU General Public License. No ha sido publicada por la Free Software
Foundation, y no establece legalmente las condiciones de distribución para el software que usa la GNU GPL. Estas condiciones se establecen
solamente por el texto original, en inglés, de la GNU GPL. Sin embargo, esperamos que esta traducción ayude a los hispanohablantes a entender
mejor la GNU GPL.
103
Descargar
Colecciones de estudio