Você está na página 1de 20

Escuela Tcnica Superior de Ingeniera

Universidad de Huelva

Memoria de Prcticas
A DMINISTRACIN DE S ERVIDORES
Grado en Ingeniera Informtica

Autor: Jos Manuel Daz Gonzlez


27 de octubre de 2015

Resumen
1. Monitorizacin de los distintos recursos del sistema: Uso de distintos comandos para la monitorizacin del estado del sistema.

Palabras clave: vmstat,ps,gcc,monitorizacin,recursos

ndice general
1. PRCTICA DE MONITORIZACIN. TOPIC 200
1.1. Introduccin . . . . . . . . . . . . . . . . . .
1.1.1. Objetivos . . . . . . . . . . . . . . . .
1.2. Procedimiento . . . . . . . . . . . . . . . . .
1.3. Conclusin . . . . . . . . . . . . . . . . . . .
1.4. Bibliografa . . . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

4
4
4
6
18
19

ndice de figuras
1.1. Creacin equipo para Centos . . . . . . . . . . . . . . . . . .
1.2. Iniciando instalacin Centos . . . . . . . . . . . . . . . . . .
1.3. Instalando Centos . . . . . . . . . . . . . . . . . . . . . . . . .
1.4. Centos iniciado . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5. Configuracin red NAT . . . . . . . . . . . . . . . . . . . . . .
1.6. Configuracin reenvio de puertos . . . . . . . . . . . . . . .
1.7. Asignacion de nombre (ethX) a MAC . . . . . . . . . . . . . .
1.8. Asignacion de nombre (ethX) a MAC 2 . . . . . . . . . . . . .
1.9. Levantamiento de la NIC . . . . . . . . . . . . . . . . . . . .
1.10.Configuracin levantamiento automtico NIC . . . . . . . .
1.11.Conexin ssh (maquina anfitriona y virtualizada) . . . . . .
1.12.Ejecucin vmstat (Monitorizacin 512Mb RAM) . . . . . . .
1.13.Ejecucin vmstat (Monitorizacin 1Gb RAM) . . . . . . . .
1.14.Ejecucin comando free . . . . . . . . . . . . . . . . . . . . .
1.15.Ejecucin comando ps -ef . . . . . . . . . . . . . . . . . . . .
1.16.Ejecucin comando w . . . . . . . . . . . . . . . . . . . . . .
1.17.Ejecucin comando top . . . . . . . . . . . . . . . . . . . . .
1.18.Ejecucin comando netstat . . . . . . . . . . . . . . . . . . .
1.19.Ejecucin comando df . . . . . . . . . . . . . . . . . . . . . .
1.20.Ejecucin de programa y monitorizacin de recursos . . . .
1.21.Ejecucin de programa y monitorizacin de recursos . . . .
1.22.Ejecucin de programa y visualizacin de proceso zombie.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

6
7
7
8
9
10
10
11
11
11
12
13
13
14
14
14
15
15
15
16
16
17

Captulo 1
PRCTICA DE MONITORIZACIN.
TOPIC 200
1.1. Introduccin
Este capitulo se centra en los distintos mtodos (herramientas y comandos)
que podemos emplear para obtener una vista de la utilizacin que hace nuestro
sistema de sus recursos internos (memoria, cpu, discos duros...).
Defincin de un pie de pgina1

1.1.1. Objetivos
El objetivo de esta prcticas es que el alumno se familiarice con los diferentes comandos existente para monitorizar los recursos de un servidor. Para ello
requiere cumplementar cada uno de los siguientes aspectos.
1. Conseguir crear una mquina virtual basada en virtualbox que contega
un sistema centos 6.3 mnimo.
2. Conseguir una conexin de tipo NAT con redireccin de puertos.
3. Conocer el uso de comandos para monitorizar el comportamiento del
sistema y actuar en funcin de dichos estados. Como varan las monitorizaciones conforme varan los requisitos.
4. Compilar y ejecutar el siguiente programa y monitorizar los recursos cada
5 segundos.
1

Esto es un pie de pgina

Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200

1.1. Introduccin

#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[] = "This is tutorialspoint.com";
FILE *fd = fopen("prueba.txt","w");
int i,j;
for (i=0; i < 30000 ; i++)
for (j=0; j < 30000 ; j++)
fwrite(str , 1 , sizeof(str) , fd);
fclose(fd);
return 0;
}

5. Usando el comando ps comprobar como afecta al sistema la ejecucin


del siguiente cdigo.

#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main ()
{
pid_t child_pid;
child_pid = fork ();
if (child_pid > 0) {
sleep (60);
}
else {
exit (0);
}
return 0;
}
5

1.2. Procedimiento Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200

1.2. Procedimiento
1. El primer requisito que necesitamos es una aplicacin, donde virtualizar
el sistema operativo, en este caso he usado VirtualBox 4.3. Dentro de esta aplicacin se ha virtualizado el SO Centos 6.4 minimal i386, el cual es una versin
de linux servidora reducida. Para realizar la virtualizacin lo primero que debo
hacer es preparar la mquina en VirtualBox en la cual vamos a instalar el SO.
Esta mquina la he preparado con las siguientes caractersticas:
- Linux
- Red-Hat X86
- RAM 512 Mb
- HDD 8Gb (Dinmico)

Figura 1.1: Creacin equipo para Centos


6

Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200 1.2. Procedimiento

Una vez definida la mquina con los requisitos, para instalar Centos procedemos a su instalacin. Para ello arrancamos la mquina indicando el dispositivo desde el que se desea que arranque la primera vez (en mi caso un archivo
ISO que contiene el SO).
Luego, se abrir un men que nos permitir realizar la instalacin de Centos
entre otras opciones. Imgen a continuacin.

Figura 1.2: Iniciando instalacin Centos


En el caso de que seleccionemos la instalacin, como es mi caso, esta dar comienzo haciendo las preguntas y comprobaciones tpicas que se hacen a la hora de instalar un sistema operativo. (Seleccin y comprobacin de disco, sistema de ficheros a usar, idioma, modelo de teclado...) Uno de los pasos importantes a la hora de configurar estos parmetos es recordar la clave que asignemos
al usuario root.
Una vez que nos a solicitado la configuracin que le asignar al SO, dar comienzo la instalacin con dichos parmetos

Figura 1.3: Instalando Centos


A continuacin, una vez instalado el SO, nos pedir que se reinicie el sistema,
7

1.2. Procedimiento Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200

de manera que cuando este vuelve a arrancar ya nos muestra el SO, donde una
vez logueados podremos empezar a utilarlo.

Figura 1.4: Centos iniciado

Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200 1.2. Procedimiento

2. Una vez conseguido el paso anterior vamos a configurar una red NAT con
redireccin de puertos. Esto permitir que nuestro sistema virtualizado tenga
salida a internet. En cuanto a la redireccin de puerto, ser algo que configuremos en la configuracin de VirtualBox.
Para ello debemos acceder a la configuracin de nuestra mquina dentro del
VirtualBox, una vez aqu tenemos que acceder al apartado de red, para as indicar la configuracin de red que usar nuestra instalacin. En la imagen que
se muestra a continuacin tendremos que preparar la interfaz de red para la
conexin por NAT.

Figura 1.5: Configuracin red NAT


Adems de indicar que la configuracin a usar ser NAT, tambin tendremos que configurar la redireccin de puertos. Esto nos permite enlazar puertos
de la mquina anfitriona con la mquina virtual. De esta forma podemos asignar el uso de un puerto, por ejemplo el puerto 22, de la mquina anfitriona con
un puerto de la mquina virtual 2222. As podremos usar ssh entre la mquina
anfitriona y la mquina virtual. Esta configuracin mencionada se muestra en
la siguiente imgen.
Para comprobar que toda la configuracin de la red funciona correctamente
podemos iniciar el sistema virtualizado y comprobar que tenga conectividad a
internet.
Conforme arrancamos el sistema Centos e intentamos hacer un ping vemos
9

1.2. Procedimiento Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200

Figura 1.6: Configuracin reenvio de puertos


que no se produce un error y este no funciona, esto es debido a que no est
levantada la interfaz de red. Para proceder a levantarla usamos el comando ifup
ethX. "X"ser el nmero de nuestra interfaz de red, este ser incrementado cada
vez que reiniciemos la MAC de nuestra NIC (tarjeta de red) ya que Centos la
detectar como si se tratara de una nueva NIC. En la imagen que se muestra a
continuacin observamos un error al intentar levantar la NIC, esto es debido a
lo que acabamos de mencionar del reinicio de MAC.
Para conseguir solucionar ese error y as lograr levantar la NIC de nuestra
mquina debemos, en primer lugar saber el valor de la X de ehtX que le corresponde a nuestra NIC. Para ello podemos usar el comando que se muestra a
continuacin para consultar la tabla de NIC.

Figura 1.7: Asignacion de nombre (ethX) a MAC


A continuacin, en la imagen 1.8 se puede apreciar como se le asigna un
nombre a una MAC de la interfaz de red, de forma que observando en este archivo el valor de la MAC podemos saber el nombre que tiene nuestra interfaz
de red en nuestro sistema Centos.
Ahora una vez que sabemos el nombre exacto de la NIC que tiene instalada
nuestro sistema, podemos proceder a levantarla usando como ya mencionamos anteriormente el comando ifup ethX. En la imagen 1.9 se muestra la ejecucin correspondiente del comando para proceder a levantar la interfaz.
10

Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200 1.2. Procedimiento

Figura 1.8: Asignacion de nombre (ethX) a MAC 2

Figura 1.9: Levantamiento de la NIC


Para evitar tener que levantar la NIC cada vez que se arranque el sistema
podemos hacerlo configurando el archivo de carga de nuestro sistema. Para
ello vamos configurar el archivo ifcfg-ethx. Este archivo se encuentra en el path
/etc/sysconfig/network-scripts. La X de ethx corresponde con el valor que le ha
asignado nuestro sistema a nuestra NIC. Para configurar el levantamiento automtico solo tenemos que abrir el archivo de configuracin correspondiente
a nuestra tarjeta y modificar el parmetro ONBOOT=yes como se muestra en la
figura 1.10 que se muestra a continuacin.

Figura 1.10: Configuracin levantamiento automtico NIC


Como ltimo apartado de este punto, para probar que todo funciona correctamente hemos realizado una conexin shh desde la mquina anfitriona
hacia la mquina servidora, de esta forma estamos comprobando que a parte de que tenga conexin que se haya realizado correctamente el reenvio de
puertos. La imgen 1.11 muestra el proceso para realizar una conexin ssh en11

1.2. Procedimiento Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200

tre ambas mquinas. La opcin -p que aparece en el comando ssh nos permite
indicarle el puerto de reenvio entre ambas mquinas.

Figura 1.11: Conexin ssh (maquina anfitriona y virtualizada)

12

Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200 1.2. Procedimiento

3. Una vez que los puntos anteriores han funcionado, se ha consultado varios parmetros de monitorizacin del sistema. Esto nos permite saber el estado actual de los recursos que disponemos en nuestra mquina con el objetivo
de solucionar un problema o poder evirtarlo mediante la modificacin de alguna configuracin o en su caso realizando alguna mejora HW.
Se ha usado el comando vmstat para monitorizar los recursos del sistema, ya
que este muestra numerosas mtricas de los recursos del sistema en tiempo
real (colas de procesos, informacin de memoria, n de bloques R/W...). En la
imagen siguiente podemos apreciar la informacin del sistema que nos devuelve este comando.

Figura 1.12: Ejecucin vmstat (Monitorizacin 512Mb RAM)


Si detenemos nuestra mquina y simulamos una mejora de RAM, al volver a
arrancar la mquina y lanzar de nuevo este comando, podemos apreciar que los
cambios realizados se han llevado a cabo correctamente. Este es el contenido
que muestra la imagen que se muestra a continuacin.

Figura 1.13: Ejecucin vmstat (Monitorizacin 1Gb RAM)


Hay que mencionar que la informacin de este comando es actual sobre el
momento en el que se ejecuta, pero esta informacin variar en cada instante,
por eso, vmstat nos permite ejecutarlo con un parametro x (vmstat x) en el que
indicamos sucesivas ejecuciones de este comando cada x segundos.
Existen otros comandos que tambin nos permite obtener una monitorizacin
sobre los recursos del sistema como pueden ser:
13

1.2. Procedimiento Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200

Comando free: Muestra informacin de la memoria.

Figura 1.14: Ejecucin comando free

Comando ps: Muestra procesos del sistema. Usando los parmetros -efjh
nos muestra informacin sobre las relaciones padres/hijos.

Figura 1.15: Ejecucin comando ps -ef

Comando w: Muestra informacin sobre los usuarios conectados y sus


procesos.

Figura 1.16: Ejecucin comando w

Comando top: Muestra informacin constantemente actualizada de los


procesos.
14

Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200 1.2. Procedimiento

Figura 1.17: Ejecucin comando top


Comando netstat: Muestra informacin del estado de la red.

Figura 1.18: Ejecucin comando netstat

Comando df: Muestra informacin del estado de los discos duros.

Figura 1.19: Ejecucin comando df

4. Para poder ejecutar el programa he tenido que crearlo dentro de la mquina y compilarlo. Para realizar la compilacin he usado el comando gcc -o
bucle bucle.c, esto me genera el ejecutable con el cdigo mostrado en el enunciado.
Ahora si analizamos o ejecutamos el cdigo del programa en cuestin, podemos observar que lo que hace es escribir en el disco en el fichero prueba.txt.
Podemos comprobar con el comando vmstat los bloques escritos.
La siguiente imagen muestra el estado del sistema (vmstat) antes de lanzar la
15

1.2. Procedimiento Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200

ejecucin del programa que acabamos de compilar y unos segundos despues


volvemos a lanzar vmstat. Observando la imagen podemos comprobar como
est aumentando el nmero de bloquees escritos en el sistema. Esta informacin se encuentra bajo el encabezado io concretamente bajo bo.

Figura 1.20: Ejecucin de programa y monitorizacin de recursos


Este cambio en el uso de los recursos del sistema, tambin podemos observarlo usando el comando iostat, siguiendo el mismo procedimiento que se
ha seguido con el comando vmstat (lanzandolo antes y un tiempo despus de
ejecutar el programa compilado). La imagen que se muestra a continuacin
muestra la informacin de dicho comando.

Figura 1.21: Ejecucin de programa y monitorizacin de recursos

16

Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200 1.2. Procedimiento

5. El cdigo de este programa lo que hace es crear un proceso hijo, el proceso hijo muere, pero el padre no ha hecho wait(). El proceso hijo queda zombie
hasta que el proceso padre muere ya que los procesos zombis no se pueden
matar.
Si usamos el comando ps -efjH podemos ver los procesos hijos que ha creado
cada proceso(imagn siguiente).

Figura 1.22: Ejecucin de programa y visualizacin de proceso zombie.

17

1.3. Conclusin

Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200

1.3. Conclusin
Comandos bastante importante para la monitorizacin de los recursos de
nuestro servidor. Importancia de estos para una buena administracin del sistema.

18

Captulo 1. PRCTICA DE MONITORIZACIN. TOPIC 200

1.4. Bibliografa

1.4. Bibliografa
1. http://ocw.um.es/gat/contenidos/ldaniel/ipu_docs/latex/tema6.

html/
2. http://www.linuxtotal.com.mx/?cont=info_admon_010/

19

Você também pode gostar