Your SlideShare is downloading. ×
0
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Monitorización
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Monitorización

11,907

Published on

Monitorización de servicios en GNU/Linux. Apache, colas postfix, logs, nagios, etc.

Monitorización de servicios en GNU/Linux. Apache, colas postfix, logs, nagios, etc.

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
11,907
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
811
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Monitorización Miguel Ángel Nieto <miguelangel@irontec.com> Irontec – Internet y Sistemas sobre GNU/Linux
  • 2. Irontec – Curso Monitorización 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 básicos de consola (grep, cat, tail, awk, sed, etc.) ● A veces si los logs crecen muy rápido, es necesario una herramienta más visual para tener una visión mas global ● Syslog y Rsyslog son los demonios encargados de este trabajo 2
  • 3. Irontec – Curso Monitorización Logs de sistema ● En Debian Etch (4.0) el demonio por defecto era syslog ● Ahora, en la nueva versión estable Debian Lenny (5.0) es rsyslog ● Rsyslog tiene muchas más características y muy modular (filtros, plugins, integración con bases de datos, etc.) ● Para logear algo, tan sencillo como: – logger “estoy logeando!” 3
  • 4. Irontec – Curso Monitorización 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 (sólo para uso interno) ● news ● sys-log ● user ● uucp 4
  • 5. Irontec – Curso Monitorización Logs de sistema ● Levels – debug – info – notice – warning, warn – error, err – crit – alert – emerg, panic 5
  • 6. Irontec – Curso Monitorización Logs de sistema ● Cuando los logs crecen mucho es necesario “rotarlos” ● Algunos servicios (como versiones antiguas de apache) fallan cuando el tamaño del log es de más de 2 gigas ● El demonio logrotate crea un nuevo fichero de log vacio y el antiguo lo renombra y comprime ● /etc/logrotate.conf 6
  • 7. Irontec – Curso Monitorización Logs de sistema ● Nos creamos un script que escriba “hola” en /var/log/milog.log ● Debemos crear una rotación de forma que cada 10 megas el fichero se rote ● Los logs antiguos debe comprimirlo ● Suerte :-) 7
  • 8. Irontec – Curso Monitorización Recursos del sistema ● Las distribuciones de GNU/Linux incluyen unos comandos básicos para gestionar los recursos de la máquina ● Los recursos más importantes serán: – CPU – Disco Duro – Memoria RAM – SWAP ● Los recursos no son ilimitados, hay que tenerlos controlados en todo momento 8
  • 9. Irontec – Curso Monitorización Recursos del sistema ● Todo equipo informático tiene su límite de capacidad ● Cuando dicho límite 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! 9
  • 10. Irontec – Curso Monitorización Recursos del sistema ● Si un equipo consume todos los recursos, el sistema puede dejar de funcionar y ser innacesible ● ¿Causas? – Un ataque de denegación de servicio – Error de programación en la aplicación, con memory leaks o bucles infinitos – Mala planificación, tenemos mas carga de trabajo de la que se pensó en un principio ● Lo primero es saber localizar la causa ● Para ello nos servirán las herramientas que vamos a ver a lo largo del curso 10
  • 11. Irontec – Curso Monitorización Recursos del sistema ● Usaremos tres tipos de herramientas – Benchmark de los servicios – Logeo de los servicios y almacenamiento de un registro histórico – Analisis bajo petición ● Y no en ese orden precisamente... 11
  • 12. Irontec – Curso Monitorización Comandos básicos ● Existen una serie de comandos básicos que tenemos en cualquier distribución de GNU/Linux (y en casi cualquier UNIX) que nos ayudarán 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 más básicos hasta los más completos ● ¡Hay miles! 12
  • 13. Irontec – Curso Monitorización FREE ● FREE 13
  • 14. Irontec – Curso Monitorización 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 más rápida que el Disco Duro. ● ¡Nunca deberíamos tener Swap en uso! Mientras eso sea así todo va bien. 14
  • 15. Irontec – Curso Monitorización TOP ● TOP 15
  • 16. Irontec – Curso Monitorización TOP ● Top nos permite ver en tiempo real los procesos que están corriendo en el sistema ● Podemos matarlos, cambiar el nice, ordenar las columnas, quitar o añadir columnas, etc. ● Si lo que queremos es saber que proceso es el que más memoria ocupa, debemos ordenar la columna de uso de memoria, de mayor a menor ● Tenemos una chuleta de ayuda pulsando ? 16
  • 17. Irontec – Curso Monitorización HTOP ● HTOP 17
  • 18. Irontec – Curso Monitorización HTOP ● HTOP es básicamente lo mismo que TOP, pero mejorado ● Su uso es mucho más sencillo ● Tenemos gráficas de uso de CPU ● Es muy personalizable 18
  • 19. Irontec – Curso Monitorización 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
  • 20. Irontec – Curso Monitorización Systat ● Systat es un paquete que incluye varias herramientas más para comprobar los recursos del sistema – Iostat: uso de CPU y estádistica I/O de discos – Mpstat: estadísticas globales y por procesador – Pidstat: estadísticas de procesos – Sar: almacena la actividad del sistema – Sadf: muestra los datos de Sar en distintos formatos 20
  • 21. Irontec – Curso Monitorización 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 continuación crear una gráfica con una herramienta de hoja de cálculo 21
  • 22. Irontec – Curso Monitorización Benchmark ● Son herramientas que nos permitirán poner bajo una alta carga nuestros servicios y ver así como responde la máquina ● Estas herramientas deben lanzarse contra máquinas nuestras y a poder ser que no estén en producción ● ¡Si se lanza contra una máquina externa podría verse como un ataque DOS! 22
  • 23. Irontec – Curso Monitorización AB ● Apache provee una herramienta para el testeo de rendimiento, Apache Benchmark (ab). ● Nos permite simular miles de accesos ● Las opciones más importantes son: ● -n número de conexiones a realizar ● -c número de conexiónes concurrentes ● -k usar keepalive 23
  • 24. Irontec – Curso Monitorización 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
  • 25. Irontec – Curso Monitorización 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
  • 26. Irontec – Curso Monitorización Iperf ● Es una aplicación 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 máximo – Tamaño del buffer – Lanzar múltiples conexiones en paralelo – ... 26
  • 27. Irontec – Curso Monitorización Monitorización 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 conexiónes se encolarán, consumiendo más y más y más... 27
  • 28. Irontec – Curso Monitorización Monitorización de servicios ● Existen fenómenos llamados “Efectos Slashdot” o aquí más conocidos como “Efecto meneame” ● Cuando una web alojada en tus servidores es enlazada en una web con un tráfico infinitamente superior al tuyo, te provocarán una Denegación de Servicio (no siempre tiene que ser con mala intención) ● Estas herramientas nos ayudarán a ver el estado del servicio y comprobar el origen del problema 28
  • 29. Irontec – Curso Monitorización ApacheTOP ● El TOP de Apache :-) 29
  • 30. Irontec – Curso Monitorización MOD_STATUS ● Módulo de Apache para comprobar el estado del servicio 30
  • 31. Irontec – Curso Monitorización Awstats ● Otra forma de ver los logs :) 31
  • 32. Irontec – Curso Monitorización Awstats ● Awstats es un script en perl que lee nuestros logs y nos genera gráficas de accesos. ● Entre la información que se muetra está: – Visitas por día, mes, semana... – Ips de origen – URL de origen desde la que nos visitan – Navegador utilizado – País de procedencia del visitante – Documentos más vistos – Palabras usadas en los motores de busqueda – Sistema operativo – .... 32
  • 33. Irontec – Curso Monitorización Awstats ● La instalación se puede hacer desde apt. apt-get install awstats ● El fichero de configuración 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
  • 34. Irontec – Curso Monitorización Awstats ● Es posible configurar estadísticas 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
  • 35. Irontec – Curso Monitorización 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
  • 36. Irontec – Curso Monitorización MyTOP ● El TOP de MySQL :-) 36
  • 37. Irontec – Curso Monitorización Mailgraph 37
  • 38. Irontec – Curso Monitorización Queuegraph 38
  • 39. Irontec – Curso Monitorización Couriergraph 39
  • 40. Irontec – Curso Monitorización Bindgraph 40
  • 41. Irontec – Curso Monitorización 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 gráficas se encuentra en: – /etc/init.d/bindgraph ● Tendremos que hacernos un script para crear peticiones DNS :) 41
  • 42. Irontec – Curso Monitorización Mailwatch 42
  • 43. Irontec – Curso Monitorización NAGIOS ● Es un sistema Open Source de monitorización de sistemas, redes, hardware, etc. ● Es muy muy completo, por lo que su configuración es ligeramente complicada ● Existen interfaces Web como Centreon que nos ayudan a configurarlo a base de clicks de ratón ● Si algo se cae, nos llega un email :) 43
  • 44. Irontec – Curso Monitorización NAGIOS ● El funcionamiento básico es: – Definimos un HOST – Definimos un servicio y lo asociamos al HOST – Añadimos un contacto al HOST – Añadimos un contacto al servicio ● Si un servicio no responde, se comprueba el HOST – 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 ● Existen combinaciones mucho más complejas, pero el funcionamiento más básico es el indicado 44
  • 45. Irontec – Curso Monitorización NAGIOS ● Imaginemos un CPD con 50 servidores y 100 servicios ● ¿Si se cae el ADSL, cuantos avisos recibiremos? 45
  • 46. Irontec – Curso Monitorización 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 conexión) 46
  • 47. Irontec – Curso Monitorización 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 pública. – NCSA: Los hosts monitorizados envian los datos de los chequeos a Nagios (chequeos pasivos) 47
  • 48. Irontec – Curso Monitorización NAGIOS ● Así se definiría 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
  • 49. Irontec – Curso Monitorización NAGIOS ● Así se definiría 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
  • 50. Irontec – Curso Monitorización 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
  • 51. Irontec – Curso Monitorización 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 gráficas, reportes, estadísticas, etc. 51
  • 52. Irontec – Curso Monitorización CENTREON 52
  • 53. Irontec – Curso Monitorización Instalar OREON y CENTREON ● Existe un manual en la propia página 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 compañeros 53

×