Вы находитесь на странице: 1из 53

Monitorizacin

Miguel ngel Nieto <miguelangel@irontec.com> Irontec Internet y Sistemas sobre GNU/Linux

Irontec Curso Monitorizacin

Logs de sistema

Todos (o casi todos) los servicios almacenan sus logs en /var/log/ Al tratarse de ficheros de texto es facil trabajar con ellos con los comandos bsicos de consola (grep, cat, tail, awk, sed, etc.) A veces si los logs crecen muy rpido, es necesario una herramienta ms visual para tener una visin mas global Syslog y Rsyslog son los demonios encargados de este trabajo

Irontec Curso Monitorizacin

Logs de sistema

En Debian Etch (4.0) el demonio por defecto era syslog Ahora, en la nueva versin estable Debian Lenny (5.0) es rsyslog Rsyslog tiene muchas ms caractersticas y muy modular (filtros, plugins, integracin con bases de datos, etc.) Para logear algo, tan sencillo como:

logger estoy logeando!

Irontec Curso Monitorizacin

Logs de sistema

A la hora de configurar syslog hay dos datos a seleccionar:

Facility

auth, security authpriv cron daemon ftp kern lpr mail mark (slo para uso interno) news sys-log user uucp
4

Irontec Curso Monitorizacin

Logs de sistema

Levels

debug info notice warning, warn error, err crit alert emerg, panic

Irontec Curso Monitorizacin

Logs de sistema

Cuando los logs crecen mucho es necesario rotarlos Algunos servicios (como versiones antiguas de apache) fallan cuando el tamao del log es de ms de 2 gigas El demonio logrotate crea un nuevo fichero de log vacio y el antiguo lo renombra y comprime /etc/logrotate.conf

Irontec Curso Monitorizacin

Logs de sistema

Nos creamos un script que escriba hola en /var/log/milog.log Debemos crear una rotacin de forma que cada 10 megas el fichero se rote Los logs antiguos debe comprimirlo Suerte :-)

Irontec Curso Monitorizacin

Recursos del sistema

Las distribuciones de GNU/Linux incluyen unos comandos bsicos para gestionar los recursos de la mquina Los recursos ms importantes sern:

CPU Disco Duro Memoria RAM SWAP

Los recursos no son ilimitados, hay que tenerlos controlados en todo momento

Irontec Curso Monitorizacin

Recursos del sistema


Todo equipo informtico tiene su lmite de capacidad Cuando dicho lmite se alcanza, hay que pensar en otras soluciones como balanceos de carga Aprenderemos a gestionar y mantener bajo control cada recurso del sistema Si tenemos una alerta, localizaremos la causa y acabaremos con ella!

Irontec Curso Monitorizacin

Recursos del sistema

Si un equipo consume todos los recursos, el sistema puede dejar de funcionar y ser innacesible Causas?

Un ataque de denegacin de servicio Error de programacin en la aplicacin, con memory leaks o bucles infinitos Mala planificacin, tenemos mas carga de trabajo de la que se pens en un principio

Lo primero es saber localizar la causa Para ello nos servirn las herramientas que vamos a ver a lo largo del curso

10

Irontec Curso Monitorizacin

Recursos del sistema

Usaremos tres tipos de herramientas


Benchmark de los servicios Logeo de los servicios y almacenamiento de un registro histrico Analisis bajo peticin

Y no en ese orden precisamente...

11

Irontec Curso Monitorizacin

Comandos bsicos

Existen una serie de comandos bsicos que tenemos en cualquier distribucin de GNU/Linux (y en casi cualquier UNIX) que nos ayudarn a ver el estado de los recursos en tiempo real Gracias a estas herramientas tendremos controlado el uso de Cpu, Ram, Carga de red, etc. Vamos a ver desde los ms bsicos hasta los ms completos Hay miles!

12

Irontec Curso Monitorizacin

FREE

FREE

13

Irontec Curso Monitorizacin

FREE

Linux ocupa siempre toda la memoria RAM disponible. Si tenemos 3 gigas libres, mejor usarlos! Por eso, generalmente la salida del comando ser free 0 Lo que hace en realidad no es ocuparla, si no utilizarla de Cache. La me memoria RAM es muchisimo ms rpida que el Disco Duro. Nunca deberamos tener Swap en uso! Mientras eso sea as todo va bien.

14

Irontec Curso Monitorizacin

TOP

TOP

15

Irontec Curso Monitorizacin

TOP

Top nos permite ver en tiempo real los procesos que estn corriendo en el sistema Podemos matarlos, cambiar el nice, ordenar las columnas, quitar o aadir columnas, etc. Si lo que queremos es saber que proceso es el que ms memoria ocupa, debemos ordenar la columna de uso de memoria, de mayor a menor Tenemos una chuleta de ayuda pulsando ?

16

Irontec Curso Monitorizacin

HTOP

HTOP

17

Irontec Curso Monitorizacin

HTOP

HTOP es bsicamente lo mismo que TOP, pero mejorado Su uso es mucho ms sencillo Tenemos grficas de uso de CPU Es muy personalizable

18

Irontec Curso Monitorizacin

Uso de CPU

A la hora de medir uso de CPU se distinguen distintos tipos de uso:


User: uso de cpu consumido por las aplicaciones a nivel de usuario Nice: uso de cpu consumido por las aplicaciones a nivel de usuario con nice System: uso de cpu consumido a nivel de sistema (kernel) Wait: tiempo de cpu que ha estado esperando durante las cargas I/O del sistema (interrupciones) Idle: tiempo de cpu que ha estado esperando sin cargas I/O (en cristiano, descansado)

19

Irontec Curso Monitorizacin

Systat

Systat es un paquete que incluye varias herramientas ms para comprobar los recursos del sistema

Iostat: uso de CPU y estdistica I/O de discos Mpstat: estadsticas globales y por procesador Pidstat: estadsticas de procesos Sar: almacena la actividad del sistema Sadf: muestra los datos de Sar en distintos formatos

20

Irontec Curso Monitorizacin

SAR

Con SAR podemos almacenar la carga del sistema (tanto de red, como cpu o memoria) y almacenarlo en un fichero binario Dicho fichero binario puede leerse con SADF y convertirlo en un .csv Vamos a guardar los datos de CPU de un minuto y a continuacin crear una grfica con una herramienta de hoja de clculo

21

Irontec Curso Monitorizacin

Benchmark

Son herramientas que nos permitirn poner bajo una alta carga nuestros servicios y ver as como responde la mquina Estas herramientas deben lanzarse contra mquinas nuestras y a poder ser que no estn en produccin Si se lanza contra una mquina externa podra verse como un ataque DOS!

22

Irontec Curso Monitorizacin

AB

Apache provee una herramienta para el testeo de rendimiento, Apache Benchmark (ab). Nos permite simular miles de accesos Las opciones ms importantes son:

-n nmero de conexiones a realizar -c nmero de conexines concurrentes -k usar keepalive

23

Irontec Curso Monitorizacin

AB

ab -n 1000 -c 10 http://127.0.0.1/ Realiza 1000 conexiones, 10 concurrentes a la URL indicada:


Concurrency Level: 10 Time taken for tests: 0.331 seconds Complete requests: 1000 Failed requests: 0

Comparad los datos haciendo solicitudes normales y con keep alive. Poned valores exagerados y comprobad como se consumen los recursos del sistema.

24

Irontec Curso Monitorizacin

Postal

Postal nos permitir enviar miles de correos aleatorios contra una o varias cuentas de nuestro servidor

debian5:~# postal Usage: postal [-m maximum-message-size] [-M minimum-message-size] [-t threads] [-c messages-per-connection] [-r messages-per-minute] [-a] [-b [no]netscape] [-p port] [-[z|Z] debug-file] [-s ssl-percentage] [-l local-address] [-f sender-file] smtp-server user-list-filename Postal Version: 0.70

25

Irontec Curso Monitorizacin

Iperf

Es una aplicacin cliente/servidor para comprobar el rendimiento de la red entre dos equipos El servidor se queda escuchando en el puerto 5001 El cliente se conecta y envia datos, dando por resultado el tiempo que ha necesitado y la velocidad empleada Se puede modificar muchos aspectos del test:

MTU mximo Tamao del buffer Lanzar mltiples conexiones en paralelo ...

26

Irontec Curso Monitorizacin

Monitorizacin de servicios

HTTP (Apache, Lighttp), Mysql, Postfix... Son servicios muy dependientes de la memoria RAM y la lectura de disco duro Si se quedan sin RAM, usar Swap. Ir lento y las conexines se encolarn, consumiendo ms y ms y ms...

27

Irontec Curso Monitorizacin

Monitorizacin de servicios

Existen fenmenos llamados Efectos Slashdot o aqu ms conocidos como Efecto meneame Cuando una web alojada en tus servidores es enlazada en una web con un trfico infinitamente superior al tuyo, te provocarn una Denegacin de Servicio (no siempre tiene que ser con mala intencin) Estas herramientas nos ayudarn a ver el estado del servicio y comprobar el origen del problema

28

Irontec Curso Monitorizacin

ApacheTOP

El TOP de Apache :-)

29

Irontec Curso Monitorizacin

MOD_STATUS

Mdulo de Apache para comprobar el estado del servicio

30

Irontec Curso Monitorizacin

Awstats

Otra forma de ver los logs :)

31

Irontec Curso Monitorizacin

Awstats

Awstats es un script en perl que lee nuestros logs y nos genera grficas de accesos. Entre la informacin que se muetra est:

Visitas por da, mes, semana... Ips de origen URL de origen desde la que nos visitan Navegador utilizado Pas de procedencia del visitante Documentos ms vistos Palabras usadas en los motores de busqueda Sistema operativo ....

32

Irontec Curso Monitorizacin

Awstats

La instalacin se puede hacer desde apt. apt-get install awstats El fichero de configuracin se encuentra en /etc/awstats/awstats.conf El CGI se encuentra en /usr/lib/cgi-bin/awstats.pl Las estadisticas se actualizan cada 10 minutos mediante una tarea programada.

33

Irontec Curso Monitorizacin

Awstats

Es posible configurar estadsticas para distintos dominios. Soporta muchos tipos de logs y es configurable. El soporte para los logs de Apache funciona por defecto. Si hemos modificado los logs de Apache para tener unos personalizados, ser necesario configurar Awstats para que conozca el formato de los logs.

34

Irontec Curso Monitorizacin

Awstats

Tenemos que instalar awstats y configurarlo para ver los logs de acceso a nuestro blog. Para tener algo que ver, necesitamos generar visitas... Awstats ser accesible desde http://miblog.com/cgi-bin/awstats.pl

35

Irontec Curso Monitorizacin

MyTOP

El TOP de MySQL :-)

36

Irontec Curso Monitorizacin

Mailgraph

37

Irontec Curso Monitorizacin

Queuegraph

38

Irontec Curso Monitorizacin

Couriergraph

39

Irontec Curso Monitorizacin

Bindgraph

40

Irontec Curso Monitorizacin

Bindgraph

En primer lugar es necesario logear las peticiones DNS. Un ejemplo:


http://paulocolomes.blogspot.com/2007/05/configuracin-de-un-servidor-dns-con.html

El script para controlar el demonio encargado de leer los logs y crear las grficas se encuentra en: /etc/init.d/bindgraph Tendremos que hacernos un script para crear peticiones DNS :)

41

Irontec Curso Monitorizacin

Mailwatch

42

Irontec Curso Monitorizacin

NAGIOS

Es un sistema Open Source de monitorizacin de sistemas, redes, hardware, etc. Es muy muy completo, por lo que su configuracin es ligeramente complicada Existen interfaces Web como Centreon que nos ayudan a configurarlo a base de clicks de ratn Si algo se cae, nos llega un email :)

43

Irontec Curso Monitorizacin

NAGIOS

El funcionamiento bsico es:


Definimos un HOST Definimos un servicio y lo asociamos al HOST Aadimos un contacto al HOST Aadimos un contacto al servicio Si el HOST no responde, se avisa al contacto del HOST Si el HOST responde es el servicio el que se ha caido, se avisa al contacto del Servicio

Si un servicio no responde, se comprueba el HOST


Existen combinaciones mucho ms complejas, pero el funcionamiento ms bsico es el indicado

44

Irontec Curso Monitorizacin

NAGIOS

Imaginemos un CPD con 50 servidores y 100 servicios Si se cae el ADSL, cuantos avisos recibiremos?

45

Irontec Curso Monitorizacin

NAGIOS

Tenemos Parent Host y Child Host para definir las jerarquias De la misma forma, tenemos Parent Service y Child Service En el ejemplo anterior, creamos un Host que compruebe el ADSL (con un servicio asociado que puede ser un ping) Si el ADSL se cae, recibimos un aviso, no 50 (todos los hosts sin conexin)

46

Irontec Curso Monitorizacin

NAGIOS

Para conectarnos a un host remoto se suelen usar dos sistemas principalmente:

NRPE: Un demonio que habr que instalar en los servidores monitorizados. Recibe las peticiones de Nagios y ejecuta un script devolviendo un valor. SSH: Se conecta mediante SSH y ejecuta un comando que devuelve un valor. Para este funcionamiento es necesario que Nagios acceda a todos los servidores por clave pblica. NCSA: Los hosts monitorizados envian los datos de los chequeos a Nagios (chequeos pasivos)

47

Irontec Curso Monitorizacin

NAGIOS

As se definira un HOST en Nagios:

define host{ host_name xen.irontec.com alias xen address 10.10.0.13 check_command check_host_alive max_check_attempts 5 check_period 24x7 contact_groups Supervisors contacts Administrador Irontec notification_interval 60 notification_period 24x7 notification_options d,u }
48

Irontec Curso Monitorizacin

NAGIOS

As se definira un Servicio en Nagios:

define service{ host_name xen.irontec.com service_description ping check_command check_host_alive max_check_attempts 1 normal_check_interval 60 retry_check_interval 5 check_period 24x7 notification_interval 60 notification_period 24x7 notification_options w,u contact_groups Supervisors }
49

Irontec Curso Monitorizacin

NAGIOS

Comandos check_ping? Los servicios llevan asociado un comando, que ser el encargado de comprobar un servicio.

check_ping check_tcp check_http check_pop3

define command{ command_name check_centreon_ping command_line $USER1$/check_centreon_ping -H $HOSTADDRESS$ -n $ARG1$ -w $ARG2$ -c $ARG3$ }

50

Irontec Curso Monitorizacin

CENTREON

Si no quieres pelearte con los ficheros de Nagios, existen interfaces Web que nos pueden ayudar http://www.centreon.com

Permite definir contactos, hosts, servicios, comandos, etc. a golpe de click Tenemos grficas, reportes, estadsticas, etc.

51

Irontec Curso Monitorizacin

CENTREON

52

Irontec Curso Monitorizacin

Instalar OREON y CENTREON

Existe un manual en la propia pgina web de centreon: http://en.doc.centreon.com/Setup:Debian/Ubuntu

Explica como instalar Nagios y Centreon :) El objetivo ser instalarlo en nuestro equipos y monitorizar los equipos de los compaeros

53

Вам также может понравиться