-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocument.tex
452 lines (355 loc) · 25.7 KB
/
document.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Short Sectioned Assignment LaTeX Template Version 1.0 (5/5/12)
% This template has been downloaded from: http://www.LaTeXTemplates.com
% Original author: Frits Wenneker (http://www.howtotex.com)
% License: CC BY-NC-SA 3.0 (http://creativecommons.org/licenses/by-nc-sa/3.0/)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------------------------------------------------
% PACKAGES AND OTHER DOCUMENT CONFIGURATIONS
%----------------------------------------------------------------------------------------
\documentclass[paper=a4, fontsize=12pt]{scrartcl} % A4 paper and 11pt font size
% ---- Entrada y salida de texto -----
\usepackage[T1]{fontenc} % Use 8-bit encoding that has 256 glyphs
\usepackage[utf8]{inputenc}
\usepackage{blindtext}
%\usepackage{fourier} % Use the Adobe Utopia font for the document - comment this line to return to the LaTeX default
% ---- Idioma --------
\usepackage[spanish, es-tabla]{babel} % Selecciona el español para palabras introducidas automáticamente, p.ej. "septiembre" en la fecha y especifica que se use la palabra Tabla en vez de Cuadro
% ---- Otros paquetes ----
\usepackage{amsmath,amsfonts,amsthm} % Math packages
%\usepackage{graphics,graphicx, floatrow} %para incluir imágenes y notas en las imágenes
\usepackage{graphics,graphicx, float} %para incluir imágenes y colocarlas
\usepackage{color}
% Para hacer tablas comlejas
%\usepackage{multirow}
%\usepackage{threeparttable}
\definecolor{dkgreen}{rgb}{0,0.6,0}
%\usepackage{sectsty} % Allows customizing section commands
%\allsectionsfont{\centering \normalfont\scshape} % Make all sections centered, the default font and small caps
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{mauve}{rgb}{0.58,0,0.82}
\usepackage{fancyhdr} % Custom headers and footers
\usepackage{url} % Custom headers and footers
\pagestyle{fancyplain} % Makes all pages in the document conform to the custom headers and footers
\fancyhead{} % No page header - if you want one, create it in the same way as the footers below
\fancyfoot[L]{} % Empty left footer
\usepackage{hyperref}
\usepackage{listings}
\fancyfoot[C]{} % Empty center footer
\fancyfoot[R]{\thepage} % Page numbering for right footer
\renewcommand{\headrulewidth}{0pt} % Remove header underlines
\renewcommand{\footrulewidth}{0pt} % Remove footer underlines
\setlength{\headheight}{13.6pt} % Customize the height of the header
\usepackage[
type={CC},
modifier={by-nc-sa},
version={3.0},
]{doclicense}
\lstset{frame=tb,
language=C,
aboveskip=3mm,
belowskip=3mm,
showstringspaces=false,
columns=flexible,
basicstyle={\small\ttfamily},
numbers=none,
numberstyle=\tiny\color{gray},
keywordstyle=\color{blue},
commentstyle=\color{dkgreen},
stringstyle=\color{mauve},
breaklines=true,
breakatwhitespace=true,
tabsize=3
}
\setlength\parindent{0pt} % Removes all indentation from paragraphs - comment this line for an assignment with lots of text
\newcommand{\horrule}[1]{\rule{\linewidth}{#1}} % Create horizontal rule command with 1 argument of height
%----------------------------------------------------------------------------------------
% TÍTULO Y DATOS DEL ALUMNO
%----------------------------------------------------------------------------------------
\title{
\normalfont \normalsize
\textsc{{ Ingeniería de Servidores (2016-2017)} \\ Grado en Ingeniería Informática \\ Universidad de Granada} \\ [25pt] % Your university, school and/or department name(s)
\horrule{0.5pt} \\[0.4cm] % Thin top horizontal rule
\huge Despliegue y uso de software de monitorización para clúster de servidores web: Nagios \\ % The assignment title
\horrule{2pt} \\[0.5cm] % Thick bottom horizontal rule
}
\author{Manuel Jim\'enez Bernal} % Nombre y apellidos
\date{\normalsize\today} % Incluye la fecha actual
%----------------------------------------------------------------------------------------
% DOCUMENTO
%----------------------------------------------------------------------------------------
\begin{document}
\maketitle % Muestra el Título
\newpage
\tableofcontents % para generar el índice de contenidos
\listoffigures
\newpage
\section{Introducción}
En este documento se pretende explicar de forma guiada el proceso de instalación y uso de software para monitorización de recursos en un entorno de clúster o granja de servidores, así como ilustrar mediante casos prácticos la forma de aplicarlos en entornos reales de producción. A modo de ejemplo se realizarán una serie de experimentos con el fin de mostrar el comportamiento de este tipo de software y en qué medida es útil para el administrador de sistemas. Se ha escogido Ubuntu Server 16.0 como sistema operativo a utilizar en las máquinas, las cuales tendrán desplegados distintos servicios para que funcionen de forma distribuida.
El sistema de monitorización elegido para este ejercicio ha sido Nagios en función de análisis realizados por la comunidad teniendo en cuenta distintos criterios entre los que se encuentran:
\begin{itemize}
\item Número de stars en el repositorio de GitHub \cite{p4}
\item Popularidad de búsquedas en Google (Trends) \cite{p5}
\item Facilidad en la instalación
\end{itemize}
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p4.png}
\caption{Análisis de la popularidad en Google de los distintos sistemas de monitorización a lo largo del tiempo.}
\end{figure}
Cabe señalar que el core (núcleo) de Nagios es Open Source y el código está disponible para todo aquel que desee colaborar con él en la plataforma GitHub \cite{p4}. A pesar de este factor, no todos los módulos son libres y gratuitos si no que se ofrecen soluciones más potentes en versiones 'enterprise' (NagiosXI, Nagios Network Analyzer) desde su plataforma oficial bajo una suscripción de pago.
\section{Infraestructura Virtual}
Se utilizó VMWare Workstation como hipervisor para la creación de las máquinas virtual y el entorno de red en el que se encuentran. Este escenario responde al siguiente esquema:
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p1.png}
\caption{Escenario virtual en el que se instalaron los distintos servicios}
\end{figure}
\section{Servicios}
Una vez terminadas las configuraciones relacionadas con el entorno virtual hay que instalar los servicios que van a proporcionarse desde el clúster. Para este ejercicio se han desplegado distintos servicios relacionados con el ámbito web, entre los que se encuentran:
\begin{itemize}
\item Servidor web Apache
\item Servidor de bases de datos MySQL
\end{itemize}
Los experimentos consistirán en la generación de distinto nivel de tráfico para comprobar el rendimiento y la ganancia en prestaciones que se produce al escalar el clúster. Estas labores se realizarán a partir del análisis de los resultados de un monitor de recursos para dispositivos en red como es Nagios.
Se instalaron tres servidores Ubuntu Server en máquinas virtuales en VMWare Workstation, de los cuales uno tendrá funciones de balanceo de carga. El segmento de red en que se encuentran es el 192.168.0.0/24 y las prestaciones de las máquinas son las siguientes:
La configuración que se les asignó a los servidores es la siguiente:
\begin{itemize}
\item 512 MB de memoria RAM
\item 1 procesador multithread con 2 cores
\item 20 GB de almacenamiento
\item Tarjetas de red Fast Ethernet
\end{itemize}
El fin del clúster es conseguir la sincronización de todo el sitio web que hay en el servidor principal en todos aquellos servidores que se añadan al clúster de forma automática para que todos los nodos cuenten con la misma versión de los ficheros alojados en \textbackslash var \textbackslash www
Una vez que se haya comprobado la conectividad entre las máquinas, se procede a realizar la generación de claves públicas y privadas y habilitar el acceso SSH en cada máquina. En primer lugar se modifica el fichero \textbackslash etc \textbackslash ssh \textbackslash sshd\_config en la máquina principal para habilitar la linea PermitRootLogin a 'yes' y así permitir que el usuario root pueda conectarse remotamente. El siguiente paso es generar claves públicas y privadas en el servidor secundario para permitir la sincronización de archivos mediante scripts sin que pida la contraseña.
\begin{lstlisting}
$ ssh-keygen -t dsa
\end{lstlisting}
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p7.png}
\caption{Generación de clave en servidor}
\end{figure}
Una vez creadas las credenciales,se añade la pública en el servidor principal para que 'conozca' al otro servidor.
\begin{lstlisting}
$ ssh-copy-id -i /root/.ssh/id_dsa.pub root@192.168.0.166
\end{lstlisting}
Finalizado éste punto ya es posible acceder al servidor principal sin necesidad de contraseña, a continuación se creará un script que se ejecutará de forma programada y en el que se automatizará la clonación del espacio del servidor web de una máquina a la otra. Para ello se creó un script en la máquina secundaria llamado 'actualizar.sh' en el cual se ejecuta el comando rsync para copiar y sincronizar los contenidos vía red, la intención es que el script se ejecute una vez cada hora. Por tanto se ha de modificar el fichero de configuración de 'cron' sito en \textbackslash etc \textbackslash crontab. El contenido del script es simple ya que contiene únicamente la orden necesaria:
\begin{lstlisting}
// actualizar.sh
rsync -avz --delete --exclude=**/stats --exclude=**/error --exclude=**/files/pictures -e "ssh -l root" root@192.168.0.166:/var/www/ /var/www/
\end{lstlisting}
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p8.png}
\caption{Fichero de configuración crontab. Script actualizar.sh se ejecutará cada hora y clonará el espacio web del servidor principal en el secundario}
\end{figure}
Ahora es el turno de la configuración del servidor que realizará funciones de balanceo de carga, el primer paso es instalar Nginx como software de balanceo. Hay que segurarse de que no se cuenta con servidor web instalado en la máquina que pudiera apropiarse del puerto 80.
Hay que añadir el repositorio a la lista de repositorios del sistema
\begin{itemize}
\item echo "deb-src http://nginx.org/packages/ubuntu/ lucid nginx" >> /etc/apt/sources.list
\item echo "deb http://nginx.org/packages/ubuntu/ lucid nginx" >> /etc/apt/sources.list
\end{itemize}
Finalmente actualizar la lista y descargar el paquete:
\begin{itemize}
\item sudo apt-get update
\item sudo apt-get install nginx
\end{itemize}
Ya sólo queda configurar Nginx como balanceador de carga. Para configurar el servicio se ha de modificar el fichero de configuración situado en \textbackslash etc \textbackslash nginx \textbackslash conf.d \textbackslash default.conf. Como siempre, el primer paso antes de modificar ficheros de configuración es realizar una copia de seguridad del mismo por los futuros problemas que pudieran encontrarse (y que con probabilidad se encontrarán).
El fichero de configuración queda de la siguiente manera:
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p10.png}
\caption{Fichero de configuración de nginx}
\end{figure}
En el fichero se aprecia de forma intuitiva cómo se añaden los servidores web en un grupo que se ha llamado como 'apaches', en el que están las direcciones IP de cada uno. Cada vez que se añada un nodo al clúster deberá añadirse una línea nueva a este fichero. El parámetro weight es el peso con el que funcionará el balanceo.
En un servidor de estas características es habitual contar además con un servidor de bases de datos en la plataforma web, y de la misma manera ha de encontrarse replicado en todos los nodos del clúster. Para esto se va a instalar un servidor de bases de datos MySQL en un servidor 'maestro' para luego ser replicadas en nodos 'esclavos'.
En primer lugar se creó una base de datos llamada 'contactos' , la cual almacenará una tabla con dos campos, nombre y teléfono. Se insertaron algunos registros en ella:
\begin{lstlisting}
mysql> insert into datos(nombre,tlf) values ("manu",660773539);
Query OK, 0 rows affected (0,01 sec)
\end{lstlisting}
MySQL provee mecanismos para la sincronización de bases de datos vía red, para ello hay que modificar el fichero de configuración 'my.conf' de la siguiente manera:
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p11.png}
\caption{Fichero de configuración my.conf para asignar un ID al servidor 'maestro'}
\end{figure}
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p12.png}
\caption{Fichero de configuración my.conf para asignar un ID al servidor 'esclavo'}
\end{figure}
En el maestro creamos las credenciales necesarias para la copia, conviene un usuario dedicado exclusivamente a ésta tarea, para ello:
\begin{lstlisting}
mysql> CREATE USER esclavo IDENTIFIED BY 'esclavo';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'esclavo'@'%'
IDENTIFIED BY 'esclavo';
mysql> FLUSH PRIVILEGES;
mysql> FLUSH TABLES;
mysql> FLUSH TABLES WITH READ LOCK;
\end{lstlisting}
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p13.png}
\caption{Resultado del comando SHOW MASTER STATUS en mysql en el servidor maestro}
\end{figure}
Es el turno de configurar el esclavo, para ello se ejecuta un prompt de mysql e insertar lo siguiente:
\begin{lstlisting}
mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.166',
MASTER_USER='esclavo', MASTER_PASSWORD='esclavo',
MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=501,
MASTER_PORT=3306;
\end{lstlisting}
Tras realizar el comando SHOW SLAVE STATUS\textbackslash G; se debe apreciar la información de replicación, en particular el campo \# Seconds\_Behind\_Master está a 0, lo que indica que la configuración es correcta.
Para comprobar que todo está correcto se puede crear un nuevo contacto en el servidor maestro y comprobar que inmediatamente se encuentre creado en el esclavo.
\begin{lstlisting}
mysql> SHOW SLAVE STATUS\G
******************************** 1. row **************************
Slave_IO_State: Waiting for master event
Master_Host: 192.168.0.166
Master_User: esclavo
Master_Port:3306
\end{lstlisting}
\section{Despliegue y configuración de Nagios}
Antes de usar Nagios lógicamente hay que instalarlo, por tanto hay que acudir a la web oficial de la plataforma y se descarga su código fuente para seguidamente instalarlo. Se necesita un compilador de C y la herramienta Make de GNU para realizar la instalación además de un sistema operativo de tipo Unix (Linux, FreeBSD, NetBSD, Solaris) \cite{p1}
Desde la web oficial también han querido ofrecer una solución para aquellos usuarios de sistemas operativos basados en NT (Windows), por tanto han provisto de una máquina virtual predeterminada con un sistema operativo CentOS y con Nagios pre-instalado.
Esta última opción es la más adecuada para el escenario que en este trabajo se pretende realizar, ya que al tratarse de un entorno virtual formado por distintas máquinas en un segmento de red, el uso de esta solución añade un nodo más al segmento y evita el proceso de instalación, siendo la solución más comoda y rápida de desplegar. \cite{p2}
Una vez descargada la máquina virtual del sitio web oficial, se procede a abrirla con el mismo hipervisor que se usaba para las demás máquinas del clúster: VMWare Workstation.
Una vez desplegada y arrancada la nueva máquina CentOS, la infraestructura virtual se encuentra en el siguiente estado:
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p3.png}
\caption{Infraestructura virtual tras el despliegue del servidor con Nagios}
\end{figure}
Esta es la primera pantalla con la que el usuario se encuentra tras arrancar la máquina, las credenciales son facilitadas en la pantalla de inicio:
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p2.png}
\caption{Aspecto de la máquina virtual bajo CentOS con Nagios preinstalado}
\end{figure}
Cabe señalar que en esta versión se incluyen módulos propios de la versión de pago, por tanto se ofrecen 60 días de prueba en la máquina virtual proporcionada. Los servicios en los que se diferencian la versión gratuita (core) y la versión de pago son algunos de los siguientes: \cite{p6}
\begin{itemize}
\item Exportar reportes en XLS, PDF
\item Gráficos de rendimiento
\item Planificación de reportes
\item Panel de usuario avanzado
\item Acciones personalizables
\item Interfaz web para la configuración
\item Integración con Google Maps
\item Automatización y planificación de backups
\item Actualizaciones a través de interfaz web
\end{itemize}
Ya está todo listo para acceder a la interfaz web que proporciona Nagios desde cualquier cliente en el mismo segmento de la red. Al acceder hay que aceptar los 60 días de prueba, tras lo cual se presenta una web con el siguiente aspecto:
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p5.png}
\caption{Terminando de instalar NagiosXI desde la interfaz web}
\end{figure}
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p6.png}
\caption{Interfaz web de NagiosXI}
\end{figure}
NagiosXI proporciona una serie de configuraciones para realizar labores de monitorización en los servicios que se le indiquen. Para el caso de una granja de servidores web, se van a configurar monitorizaciones en todos los nodos del clúster para alertar en caso de que algún servicio se caiga en un momento no programado.
En primer lugar hay que crear los hosts en Nagios a partir de sus direcciones IP desde los asistentes que proporciona la interfaz web:
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p18.png}
\caption{Arquitectura del clúster y el sistema de monitorización}
\end{figure}
Una vez enlazados los hosts se pueden configurar alertas en función de los requisitos de disponibilidad en los servicios según se configuren. Si todo es correcto, el estado de los servicios debe presentarse de la siguiente manera:
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p16.png}
\caption{Estado de los servicios web en el cluster}
\end{figure}
NagiosXI proporciona funcionalidades de monitorización a nivel de recursos generales de las máquinas pero por sí mismo cuenta con limitaciones en lo que a detalles de tráfico y protocolos de red se refiere. Para suplir estas necesidades existe una versión específica de Nagios llamada Nagios Network Analyzer en la cual, bajo suscripción de pago, analiza y procesa este tipo de información generando informes y gráficas con análisis sobre los resultados.
De nuevo se procede de la misma manera que anteriormente, conviene descargarse la máquina virtual predeterminada con el software preinstalado, conformando un servidor dedicado únicamente a las tareas de monitorización.
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p17.png}
\caption{Pantalla inicial de Nagios Network Analyzer}
\end{figure}
Una vez desplegada la máquina ya puede accederse al panel principal desde un navegador web, previa autorización con las credenciales que se proporciona desde el propio sistema.
Como se puede apreciar, el panel principal se encuentra en blanco. Por tanto hay que añadir nuevas fuentes desde las que analizar los servicios.
En primera instancia la fuente principal será el balanceador de carga del sistema. Los parámetros a proporcionar serán los siguientes:
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p21.png}
\caption{Creando una fuente en Nagios Network Analyzer}
\end{figure}
Los parámetros de conexión a los que se refiere el asistente son los de la máquina que va a recolectar los datos del tráfico que se esté produciendo. Esta tarea la realiza un demonio en el servidor nodo desde el cual se quiera analizar sus interfaces de red, por tanto hay que instalar el demonio 'fprobe' \cite{p7} que es el que indica la documentación de Nagios, ya que el tipo de tráfico que necesita Nagios para analizar y muestrear es del tipo NetFlow, un protocolo creado por CISCO.\cite{p9} Lo habitual es que éstas fuentes para analizar sean routers o switches, aunque también es posible analizar servidores. Para realizarlo hay que ejecutar los siguientes comandos:
\begin{lstlisting}
sudo apt-get install fprobe
sudo su -
fprobe -i eth2 192.168.0.164:9001
\end{lstlisting}
La interfaz 'eth2' es en la que se encuentra el segmento de red donde se hallan los servidores de monitorización, y la dirección IP 192.168.0.164 es la dirección del servidor recién desplegado Nagios Network Analyzer (NNA), y el puerto 9001. \cite{p8}
Ahora sólo queda integrar ambos servicios de Nagios, para ello desde NagiosXI y el panel gráfico de administración hay que enlazar el monitor con el servicio de Nagios Network Analyzer.
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p22.png}
\caption{Enlazando NagiosXI con Nagios Network Analyzer}
\end{figure}
\section{Fase experimental}
Llegados a este punto conviene testear de alguna manera el rendimiento de la red en el clúster web forzándole tráfico de alguna manera para comprobar que el monitor funciona de forma satisfactoria, pudiendo extraer información útil acerca del tráfico que se está generando.
Mediante la herramienta ab (apache-benchmark) se puede enviar peticiones HTTP al host que se le indique, así que se ha escogido esa herramienta para las siguientes pruebas. \cite{p10}
\begin{lstlisting}
ab -n 10000 -c 1000 http://192.168.0.162/
\end{lstlisting}
El parámetro 'n' indica qué número de peticiones van a realizarse a ese host, y el parámetro 'c' se refiere a la concurrencia: el número de peticiones que van a realizarse de forma concurrente.
Se realizaron dos baterías separadas en el tiempo para ver los resultados reflejados en los análisis del monitor.
Al cabo de las horas se generaron los siguientes informes:
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./p20.png}
\caption{Actividad de red en el host balanceador}
\end{figure}
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./c23.png}
\caption{Picos de tráfico en el momento en que se está generando de forma forzada mediante AB}
\end{figure}
\begin{figure}[H] %con el [H] le obligamos a situar aquí la figura
\centering
\label{lsblk}
\includegraphics[width=0.8\textwidth]{./c24.png}
\caption{Información detallada en el informe del tráfico de red las últimas 24 horas}
\end{figure}
Entre ésta información puede extraerse gran cantidad de datos útiles para mejorar el rendimiento del sistema, así como comprobaciones de seguridad ya que se puede ver desde qué peticiones de origen y a qué puertos se están haciendo peticiones, por si hubiese algún host que estuviera monopolizando los recursos de red del servidor.
\section{Conclusiones}
Nagios es una herramienta útil y potente que se vuelve casi imprescindible en escenarios de alta disponibilidad,su coste relativamente bajo hace que en entornos empresariales la inversión merezca la pena al verse reducidos los costes del personal necesario para monitorizar una infraestructura tan compleja como puede ser una granja de servidores web. Otro aspecto muy favorable es el hecho de que puede realizar estimaciones de escalabilidad,optimizando todo el proceso. El sistema de notificaciones garantiza que en caso de error los administradores son inmediatamente avisados vía email, minimizando el impacto que pudiese acontecer.
En entornos de alta seguridad facilita la gestión de incidencias teniendo un panel administrativo centralizado \cite{p11} desde el cual manejarlas con facilidad. Ayuda con la eficiencia y el uso de los recursos al detectar servicios o procesos redundantes sobre todo en grandes infraestructuras, con el coste operacional que ello ahorra \cite{p12}
Su popularidad no ha dejado de crecer \cite{p5} y la gran cantidad de empresas que usan ésta solución hace que no sea difícil decantarse por ella a la hora de desplegar un sistema de monitorización robusto, flexible y escalable. Algunas de éstas empresas son: \cite{p13}
\begin{itemize}
\item AT\&T
\item McAffy
\item Philips
\item Toshiba
\item LinkSys
\item Ubisoft
\item Yahoo
\end{itemize}
\bibliographystyle{unsrt} % hay varias formas de citar
\bibliography{referencias} %archivo citas.bib que contiene las entradas
\end{document}