martes, 23 de marzo de 2010

System Monitoring and Fault Analysis RHCE

En esta capsula analizaremos algunas herramientas utilies para detectar fallas en nuestro sistema y como mitigarlas . comensaremos con el comando TOP ,

El comando "top" permite ver los procesos que estan ejecutandose en nuestro sistema en tiempo real , veamos un ejemplo :

==========================
top - 13:43:49 up 11 days, 22:59, 2 users, load average: 1.34, 1.36, 1.37
Tasks: 167 total, 1 running, 166 sleeping, 0 stopped, 0 zombie
Cpu(s): 35.4%us, 15.0%sy, 0.1%ni, 49.4%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 5057172k total, 4458716k used, 598456k free, 242416k buffers
Swap: 5144568k total, 84k used, 5144484k free, 2002092k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
22362 ivan 16 0 615m 536m 14m S 38.6 10.9 11451:17 VirtualBox
29701 ivan 15 0 2332 960 708 R 1.9 0.0 0:00.02 top
1 root 15 0 2072 628 536 S 0.0 0.0 0:06.24 init
2 root RT -5 0 0 0 S 0.0 0.0 0:04.90 migration/0
3 root 34 19 0 0 0 S 0.0 0.0 0:00.14 ksoftirqd/0
4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
5 root RT -5 0 0 0 S 0.0 0.0 0:04.69 migration/1
6 root 34 19 0 0 0 S 0.0 0.0 0:00.23 ksoftirqd/1
7 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/1
8 root 10 -5 0 0 0 S 0.0 0.0 0:21.91 events/0
9 root 10 -5 0 0 0 S 0.0 0.0 0:00.41 events/1
10 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 khelper
11 root 10 -5 0 0 0 S 0.0 0.0 0:00.00 kthread
15 root 10 -5 0 0 0 S 0.0 0.0 0:00.44 kblockd/0
16 root 10 -5 0 0 0 S 0.0 0.0 0:00.08 kblockd/1
17 root 15 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/0
18 root 16 -5 0 0 0 S 0.0 0.0 0:00.00 cqueue/1
==============================================

el cual muestra información importante como es el PID del proceso (PID), el dueno del proceso(USER), el comando ejecutado(COMMAND), la prioridad (PR), el valor nice (NI) entre otros
para obtener ayuda , utilizamos la letra 'h' la cual nos mostrara que comando podemos utulizar para control de nuestros procesos. tambien nos muestra la actividad que esta teniendo nuestro sistema en cada uno de los procesos ejecutandose, informacion del uso de la memoria

existe el comando ps , que muestras los procesos que estan corriendo en nuestro sistema al igual que top , la diferencia es que nos muestra la informacion al momento que se solicito y no muestra el comportamiento del mismo a medida que pasa el tiempo . ejemplo

======================

# ps axu | grep ivan
root 1808 0.0 0.0 13256 3388 ? Ss 11:39 0:00 sshd: ivan [priv]
ivan 1813 0.0 0.0 13356 2280 ? S 11:39 0:00 sshd: ivan@pts/0
ivan 1814 0.0 0.0 4540 1460 pts/0 Ss 11:39 0:00 -bash

====================


tenemos el comando pstree que nos muestra la información en forma de árbol, la cual podemos identificar el proceso padre de sus ramificaciones .

===================
# pstree | grep VirtualBox
init-+-VBoxSVC-+-VirtualBox---15*[{VirtualBox}]
|-xterm---bash---VirtualBox-+-VBoxXPCOMIPCD
| `-7*[{VirtualBox}]
===================


tenemos el comando free , que muestra la actividad de nuestra memoria en nuestro equipo . ejemplo:
======================
# free -m
total used free shared buffers cached
Mem: 4938 4412 525 0 237 1993
-/+ buffers/cache: 2182 2756
Swap: 5023 0 5023
=====================
podemos utilizar el comando watch, para mantener informacion en tiempo real


tenemos el comando vmstats, que muestra una radiografia del performance del sistema ejemplo:

# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 84 555260 242756 2041624 0 0 6 55 14 17 35 15 49 0 0


tememos el comando iostat que da una informacion basica sobre el estado del cpu y disco duros

=================

# iostat
Linux 2.6.1.xxx.xxxx.xxx (xxxxxx.xxxxxxx.xxx) 03/23/2010

avg-cpu: %user %nice %system %iowait %steal %idle
35.43 0.07 15.01 0.07 0.00 49.43

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 9.17 24.61 219.40 25477936 227129950
sda1 0.00 0.01 0.00 11774 38
sda2 9.17 24.60 219.40 25465970 227129912
dm-0 27.64 24.60 219.40 25464858 227129720
dm-1 0.00 0.00 0.00 648 192

==================

tenemos el comando mpstat que da un pequeño resumen de la informacion que arroja iostats

=================

# mpstat
Linux 2.6.1.xxx.xxxx.xxx (xxxxxx.xxxxxxx.xxx) 03/23/2010

02:20:46 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
02:20:46 PM all 35.43 0.07 14.98 0.07 0.02 0.01 0.00 49.43 1026.05

# mpstat -P ALL
Linux 2.6.1.xxx.xxxx.xxx (xxxxxx.xxxxxxx.xxx) 03/23/2010

02:21:40 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
02:21:40 PM all 35.43 0.07 14.98 0.07 0.02 0.01 0.00 49.43 1026.05
02:21:40 PM 0 34.78 0.07 14.38 0.10 0.04 0.02 0.00 50.61 1025.93
02:21:40 PM 1 36.08 0.06 15.58 0.04 0.00 0.01 0.00 48.24 0.12

=======================

el comando sar, produce infomracion general de nuestro sistema , esta informacion la recolecta de /var/log/sa , con ayuda del comando sadc, este comando es interesante, ya que muestra un histrorial de comportamiento del sistema ejemplo :

=======================

01:50:01 PM all 36.96 0.38 15.52 0.02 0.00 47.11
02:00:01 PM all 37.95 0.00 15.53 0.02 0.00 46.50
02:10:01 PM all 40.61 0.00 15.73 0.13 0.00 43.52
02:20:01 PM all 36.31 0.00 15.77 0.03 0.00 47.89
Average: all 36.79 0.07 15.49 0.02 0.00 47.63

========================


mucha de esta información puede ser vista de manera separa en el directorio /proc, el directorio /proc contiene la información de todos nuestros dispositivos instalados en el sistema y su estatus en tiempo real.

existen herramientas muy poderosas que nos pueden ayudar a analizar esta información de forma gráfica como lo es cacti, mrtg, entre otros .


detectando problemas en nuestro sistema debemos revisar nuestros logs , el sistema de logeo que es syslog , su archivo de configuracion se encuentra en /etc/syslog.conf

=============

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;local0.none;local1.none;auth.none;mail.none;news.none;authpriv.none;cron.none /var/log/messages

# The authpriv file has restricted access.
authpriv.* /var/log/secure

# Log all the mail messages in one place.
mail.* -/var/log/maillog


# Log cron stuff
cron.* /var/log/cron

# Everybody gets emergency messages
*.emerg *

# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler

# Save boot messages also to boot.log
local7.* /var/log/boot.log

#
# INN
#
news.=crit /var/log/news/news.crit

================================

en este archivo se configura la granuralidad de los logs en el sistema y los directorios que se utilizaran para el fin, asi como los tiempos de almacenista y rotación de los archivos .

No hay comentarios:

Publicar un comentario