divendres, 10 de maig del 2013

Herramientas de la línea de comandos para supervisar el rendimiento de Linux

http://www.linux-party.com/index.php/15-documentacion/8709-15-herramientas-de-la-linea-de-comandos-para-supervisar-el-rendimiento-de-linux 15 Herramientas de la línea de comandos para supervisar el rendimiento de Linux Publicado el Lunes, 06 Mayo 2013 12:00 | Escrito por Super User | | Es realmente un trabajo muy duro para todo administrador Linux supervisar y depurar los problemas de rendimiento del sistema todos los días. Después de ser un administrador de Linux en la industria de TI, me enteré de que lo difícil es vigilar y mantener los sistemas en funcionamiento. Por esta razón, he compilado la lista de las 15 herramientas utilizadas para el monitoreo del sistema desde la línea de comandos que pueden ser útiles para cualquier administrador de sistemas Linux / Unix. Estos comandos están disponibles en todas las versiones de Linux y puede ser útil para controlar y encontrar las causas reales de los problemas de rendimiento. Esta lista de comandos que se muestran aquí para que pueda escoger la que sea más adecuada para su escenario de supervisión. El Comando Top Linux es un programa para la supervisión del rendimiento que utilizan con mucha frecuencia la mayoría de los administradores de sistemas para comprobar el rendimiento de Linux y está disponible en muchos sistemas Linux / Unix. El comando top se utiliza para mostrar todo el funcionamiento y los procesos en tiempo realmente activos en una lista que actualiza regularmente. Se mostrará el uso de CPU, uso de memoria, la memoria de intercambio, Cache, Tamaño de búfer, PID de proceso, usuario, Comandos y mucho más. También muestra la carga de memoria y de la CPU de un proceso en ejecución. El comando top es mucho útil para el administrador de sistema para supervisar y tomar acción correcta cuando se requiera. Vamos a ver la parte superior de comandos en acción. # top top - 13:17:44 up 3:35, 3 users, load average: 0.30, 0.61, 0.71 Tasks: 195 total, 1 running, 194 sleeping, 0 stopped, 0 zombie Cpu(s): 8.6%us, 1.5%sy, 0.0%ni, 89.4%id, 0.0%wa, 0.3%hi, 0.2%si, 0.0%st Mem: 3950228k total, 3669632k used, 280596k free, 260276k buffers Swap: 5128188k total, 0k used, 5128188k free, 1039232k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 6832 javier 20 0 2594m 1.2g 44m S 11.0 31.9 4:09.29 firefox 6929 javier 20 0 746m 204m 23m S 5.6 5.3 0:26.26 plugin-containe 7023 javier 20 0 547m 27m 20m S 2.3 0.7 0:02.30 konsole 2840 root 20 0 141m 30m 15m S 0.7 0.8 6:42.59 X 684 root 20 0 7408 316 212 S 0.3 0.0 0:00.48 gpm 1250 mysql 20 0 539m 46m 3496 S 0.3 1.2 0:14.68 mysqld 4759 javier 20 0 2890m 32m 19m S 0.3 0.8 1:54.24 kwin 1 root 20 0 50164 4804 2056 S 0.0 0.1 0:01.24 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.31 ksoftirqd/0 5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 7 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/u:0H 8 root RT 0 0 0 0 S 0.0 0.0 0:00.20 migration/0 9 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 10 root 20 0 0 0 0 S 0.0 0.0 0:03.62 rcu_sched 11 root RT 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/0 12 root RT 0 0 0 0 S 0.0 0.0 0:00.04 watchdog/1 13 root 20 0 0 0 0 S 0.0 0.0 0:00.32 ksoftirqd/1 14 root RT 0 0 0 0 S 0.0 0.0 0:00.11 migration/1 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H 17 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset 18 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper 2. Vmstat - estadísticas de la memoria virtual Comando vmstat de Linux se utiliza para mostrar las estadísticas de la memoria virtual, hilos kernerl, discos, procesos de sistema, bloques de E / S, interrupciones, actividad de la CPU y mucho más. Al comando vmstat predeterminada no está disponible en los sistemas Linux es necesario instalar un paquete llamado sysstat que incluye un programa vmstat. El uso común del formato del comando es. vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 2 0 49896 62100 1178240 4316436 0 0 146 131 6 49 3 0 96 1 3. Lsof - Lista de archivos abiertos Comando lsof se utiliza en muchos Linux / Unix como sistema que se utiliza para motar todos los archivos abiertos y los procesos que los utilizan. Los archivos abiertos incluidos son archivos de disco, de la red, tuberías, dispositivos y procesos. Una de las principales razones para el uso de este comando es que cuando un disco no se puede desmontar y muestra el error de que hay archivos que lo están utilizando o están. Con este comando puede identificar fácilmente qué archivos están en uso. El formato más común para este comando. ies-sabadell:~# lsof |grep /12 migration 12 root txt unknown /proc/12/exe kjournald 1234 root txt unknown /proc/1234/exe kjournald 1235 root txt unknown /proc/1235/exe kjournald 1236 root txt unknown /proc/1236/exe kjournald 1237 root txt unknown /proc/1237/exe kjournald 1238 root txt unknown /proc/1238/exe kjournald 1239 root txt unknown /proc/1239/exe kjournald 1240 root txt unknown /proc/1240/exe sftp-serv 1612 12smx2a26 cwd DIR 8,3 4096 1223729 /home/alumnes/smx2a-12/12smx2a26 mysqld 1908 mysql 14u REG 8,7 7168 317713 /var/lib/mysql/12smx2a26/ps_product.MYI mysqld 1908 mysql 15u REG 8,7 1240 317714 /var/lib/mysql/12smx2a26/ps_product.MYD mysqld 1908 mysql 16u REG 8,7 4096 317716 /var/lib/mysql/12smx2a26/ps_product_shop.MYI mysqld 1908 mysql 17u REG 8,7 700 317717 /var/lib/mysql/12smx2a26/ps_product_shop.MYD mysqld 1908 mysql 18u REG 8,7 6144 317734 /var/lib/mysql/12smx2a26/ps_product_lang.MYI mysqld 1908 mysql 19u REG 8,7 10068 317735 /var/lib/mysql/12smx2a26/ps_product_lang.MYD mysqld 1908 mysql 20u REG 8,7 5120 317567 /var/lib/mysql/12smx2a26/ps_image.MYI mysqld 1908 mysql 21u REG 8,7 312 317600 /var/lib/mysql/12smx2a26/ps_image.MYD mysqld 1908 mysql 22u REG 8,7 3072 318597 /var/lib/mysql/12smx2a26/ps_image_shop.MYI mysqld 1908 mysql 23u REG 8,7 260 318598 /var/lib/mysql/12smx2a26/ps_image_shop.MYD 4. Tcpdump - Packet Analyzer Tcpdump es el analizador de paquetes de la línea de comandos más utilizado o programa de succionador de paquetes que se utiliza tanto para la captura o el filtro de paquetes TCP/IP que recibieron o han sido transferidos en una interfaz específica a través de una red. También proporciona una opción para guardar los paquetes capturados en un archivo para su posterior análisis. tcpdump esta casi siempre disponible en las principales distribuciones de Linux. # tcpdump -i eth0 22:19:22.443542 IP 208.92.53.111.http > localhost.localdomain.33461: Flags [P.], seq 4213809828:4213810056, ack 3942125296, win 1716, options [nop,nop,TS val 1933996291 ecr 1717147], length 228 22:19:22.443634 IP localhost.localdomain.33461 > 208.92.53.111.http: Flags [.], ack 4294965856, win 1395, options [nop,nop,TS val 1717306 ecr 1933996173,nop,nop,sack 1 {0:228}], length 0 22:19:22.443669 IP 208.92.53.111.http > localhost.localdomain.33461: Flags [.], seq 4294965856:0, ack 1, win 1716, options [nop,nop,TS val 1933996291 ecr 1717147], length 1440 22:19:22.443702 IP localhost.localdomain.33461 > 208.92.53.111.http: Flags [.], ack 228, win 1395, options [nop,nop,TS val 1717306 ecr 1933996291], length 0 5. Netstat - Estadísticas de la red Netstat es una herramienta de línea de comandos para controlar los paquetes de red, estadísticas entrantes y salientes, así como estadísticas de la interfaz. Es una herramienta muy útil para todos los administradores de sistema para monitorear el desempeño de la red y solucionar problemas relacionados con la red. # netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:https *:* LISTEN tcp 0 0 *:db-lsp *:* LISTEN tcp 0 0 localhost:atmtcp *:* LISTEN tcp 0 0 *:40643 *:* LISTEN tcp 0 0 *:24837 *:* LISTEN tcp 0 0 *:mysql *:* LISTEN tcp 0 0 *:rfb *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp 0 0 localhost.locald:domain *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 *:59897 *:* LISTEN tcp 0 0 localhost:smtp *:* LISTEN tcp 0 0 localhost.localdo:60709 108.160.163.40:http ESTABLISHED tcp 0 0 localhost.localdo:58334 db3msgr5010618.gat:msnp ESTABLISHED tcp 0 0 localhost.localdo:49572 wb-in-f125.:xmpp-client ESTABLISHED tcp 0 0 localhost.localdo:39190 mad01s08-in-f21.1:https ESTABLISHED tcp 0 0 localhost.localdo:57934 195.57.81.34:http ESTABLISHED tcp 0 0 localhost.localdo:34153 ec2-23-21-236-70.c:http ESTABLISHED tcp 0 0 localhost.localdo:34152 ec2-23-21-236-70.c:http ESTABLISHED tcp 0 0 localhost.localdo:34154 ec2-23-21-236-70.c:http TIME_WAIT tcp 0 0 localhost.localdo:55572 s3-1.amazonaws.co:https ESTABLISHED netstat -antpe netstat -anpte|grep ESTABLISHED netstat -anpte|grep ESTABLISHED| wc ies-sabadell:~# netstat -tulpn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1536/portmap tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN 3050/perl tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN 2360/inetd tcp 0 0 0.0.0.0:4949 0.0.0.0:* LISTEN 2751/munin-node tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1748/sshd tcp 0 0 0.0.0.0:901 0.0.0.0:* LISTEN 2360/inetd tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1908/mysqld tcp6 0 0 :::80 :::* LISTEN 1054/apache2 tcp6 0 0 :::22 :::* LISTEN 1748/sshd tcp6 0 0 :::443 :::* LISTEN 1054/apache2 udp 0 0 0.0.0.0:5353 0.0.0.0:* 1735/avahi-daemon: udp 0 0 0.0.0.0:111 0.0.0.0:* 1536/portmap udp 0 0 192.168.0.201:123 0.0.0.0:* 2404/ntpd udp 0 0 192.168.130.2:123 0.0.0.0:* 2404/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 2404/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 2404/ntpd udp 0 0 0.0.0.0:10000 0.0.0.0:* 3050/perl udp 0 0 0.0.0.0:39320 0.0.0.0:* 1735/avahi-daemon: udp6 0 0 :::32980 :::* 1735/avahi-daemon: udp6 0 0 :::5353 :::* 1735/avahi-daemon: udp6 0 0 fe80::22cf:30ff:fef:123 :::* 2404/ntpd udp6 0 0 ::1:123 :::* 2404/ntpd udp6 0 0 fe80::222:2dff:fe80:123 :::* 2404/ntpd udp6 0 0 :::123 :::* 2404/ntpd 6. Htop - Seguimiento de procesos Linux Htop es una herramienta mucho más avanzada, interactiva y en tiempo real Linux para el seguimiento de procesos. Es similar al comando top de Linux pero tiene algunas características avanzadas como interfaz fácil de usar para la gestión de procesos, teclas de acceso directo, vista vertical y horizontal de los procesos y mucho más. Htop es una herramienta de terceros y no se incluye en los sistemas Linux, debe instalarlo utilizando YUM (o APT-GET) o el que sea su herramienta de gestión de paquetes. Para obtener más información sobre la instalación, lea nuestro artículo siguiente. Administración: Glances - herramienta de monitoreo y supervisión para Linux # htop 7. Iotop - Monitor Linux disco I / O Iotop es también muy similar a al comando top y al programa htop, pero tiene la función de contabilidad para monitorear y visualizar en tiempo real las E/S del disco y procesos. Esta herramienta es muy útil para encontrar el proceso exacto y disco utilizado alta lectura / escritura de los procesos. Total DISK READ: 18.63 M/s | Total DISK WRITE: 239.53 K/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 1228 be/4 root 18.60 M/s 0.00 B/s 0.00 % 7.93 % clamscan / -r -i -l resutlat-antivirus.txt 1929 be/4 mysql 31.41 K/s 3.93 K/s 0.00 % 2.45 % mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysq~ysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 1237 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.07 % [kjournald] 1536 be/4 daemon 0.00 B/s 0.00 B/s 0.00 % 0.00 % portmap 1 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % init [2] 2 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [kthreadd] 3 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [migration/0] 4 be/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [ksoftirqd/0] 5 rt/4 root 0.00 B/s 0.00 B/s 0.00 % 0.00 % [watchdog/0] 8. Iostat - Estadísticas Entrada / Salida Iostat es una herramienta sencilla que recoger y mostrar las estadísticas de entrada y salida de un dispositivo de almacenamient del sistema y. Esta herramienta se utiliza a menudo para rastrear problemas de rendimiento de los dispositivos de almacenamiento, incluyendo dispositivos, discos locales, discos remotos como NFS. iostat Linux 2.6.32-5-amd64 (ies-sabadell.xtec.net) 10/05/13 _x86_64_ (4 CPU) avg-cpu: %user %nice %system %iowait %steal %idle 2,87 0,01 0,45 1,13 0,00 95,54 Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn sda 14,63 255,34 207,11 54897797 44528426 sdc 6,90 602,27 620,46 129486752 133399232 sdb 1,98 323,02 222,52 69449840 47842056 9. IPTraf - Monitoreo en tiempo real LAN IP IPTraf es una utilidad de monitorización de código abierto basada en consola y en tiempo real de la red para Linux. (IP LAN) - Recoge una gran variedad de información como monitor de tráfico IP que pasa a través de la red, incluida la información de flags TCP, detalles ICMP, TCP / averías tráfico UDP, paquete de conexión TCP y cuenta Byne. También recoge información de estadísticas de la interfaz general y detaled de TCP, UDP,,,, errores de suma de comprobación IP no IP ICMP IP, interfaz actividad, etc 10. Psacct or Acct - Monitor de actividad del usuario La herramientas psacct o acct son muy útiles para el seguimiento de cada actividad de los usuarios en el sistema. Ambos demonios se ejecutan en segundo plano y mantienen una estrecha vigilancia sobre la actividad global de cada usuario en el sistema y también qué recursos están siendo consumidos por ellos. Estas herramientas son muy útiles para los administradores de sistemas para el seguimiento de cada actividad de los usuarios, que les gusta o que están haciendo, qué comandos ejecutan, la cantidad de recursos utilizados por ellos, el tiempo que están activos en el sistema, etc 11. Monit - Proceso de Linux y Seguimiento de Servicios Monit es una utilidad para la supervisión de procesos basado en web que monitoriza automáticamente los procesos, programas, archivos, directorios, permisos, sumas de control y sistemas de archivos. Efectuará un seguimiento de los servicios como Apache, MySQL, correo, FTP, ProFTP, Nginx, SSH, etc. El estado del sistema se puede verse desde la línea de comandos o usar la propia interfaz web. 12. NetHogs - Monitor por proceso Ancho de banda de red NetHogs es un pequeño programa agradable (similar al comando top Linux) que mantiene una ficha en cada actividad de red de proceso en el sistema. También mantiene una pista de ancho de banda de tráfico de red en tiempo real que utiliza cada programa o aplicación. 13. iftop - Control de ancho de banda de red iftop es otra utilidad basada en terminal para el control que muestra una lista actualizada con frecuencia de utilización del ancho de banda de red (hosts de origen y de destino) que pasa a través de la interfaz de red en el sistema. iftop se considera a la red, lo que 'top' hace uso de la CPU. iftop es una herramienta 'top' para monitorear una interfaz seleccionada y muestra un uso de ancho de banda actual entre dos hosts. 14. Monitorix - Sistema y Red de Monitoreo Monitorix es una ligera utilidad gratuita que está diseñado para ejecutar y supervisar los recursos del sistema y de la red con el mayor número posible de servidores Linux / Unix. Se ha incorporado un servidor web HTTP que recoge regularmente información del sistema y de la red y los muestra en los gráficos. Efectuará un seguimiento de la carga promedio del sistema y su uso, la asignación de memoria, la salud del disco, los servicios del sistema, puertos de red, estadísticas de correo (Sendmail, Postfix, Dovecot, etc), las estadísticas de MySQL y muchos más. Es diseñado para controlar el rendimiento general del sistema y ayuda en la detección de fallas, cuellos de botella, actividades anormales, etc 15. Arpwatch - Ethernet Activity Monitor Arpwatch es un programa que está diseñado para controlar de resolución de direcciones (MAC y cambios en la dirección IP) del tráfico de red Ethernet en una red Linux. Está continuamente vigilando el tráfico Ethernet y registra los cambios en las direcciones IPs y direcciones MACs, los cambios de pares junto con las marcas de tiempo en una red. También tiene una función para enviar un e-mail avisando al administrador, cuando una pareja es agregada o cambia. Es muy útil en la detección de suplantación ARP en una red.