Búsqueda de sitios web

Sysdig: una poderosa herramienta de monitoreo y resolución de problemas del sistema para Linux


Sysdig es una herramienta de resolución de problemas y monitoreo de sistemas potente, multiplataforma, de código abierto para Linux; También funciona en Windows y Mac OSX pero con funcionalidad limitada y puede usarse para análisis, inspección y depuración del sistema.

Normalmente, emplearía una combinación de varias herramientas de resolución de problemas y monitoreo del rendimiento de Linux, incluidas las que se enumeran a continuación, para realizar las tareas de depuración y monitoreo de Linux:

  1. strace: descubre llamadas al sistema y señales a un proceso.
  2. tcpdump: monitoreo del tráfico de red sin procesar.
  3. netstat: monitoreo de conexiones de red.
  4. htop: monitoreo de procesos en tiempo real.
  5. iftop: monitoreo del ancho de banda de la red en tiempo real.
  6. lsof: ver qué archivos se abren mediante qué proceso.

Sin embargo, sysdig integra lo que ofrecen todas las herramientas anteriores y muchas más en un programa único y simple, más aún con un increíble soporte de contenedores. Le permite capturar, guardar, filtrar y examinar el comportamiento real (flujo de eventos) de los sistemas Linux y de los contenedores.

Viene con una interfaz de línea de comandos y una potente interfaz de usuario interactiva (csysdig) que le permite observar la actividad del sistema en tiempo real o realizar un volcado de seguimiento y guardarlo para un análisis posterior. Puede ver cómo funciona csysdig en el siguiente vídeo.

Características de Sysdig:

  • Es rápido, estable y fácil de usar y está completamente bien documentado.
  • Viene con soporte nativo para tecnologías de contenedores, incluidos Docker y LXC.
  • Es programable en Lua; ofrece cinceles (scripts Lua livianos) para procesar eventos del sistema capturados.
  • Admite filtrado útil de salida.
  • Admite el seguimiento del sistema y de las aplicaciones.
  • Se puede integrar con Ansible, Puppet y Logstash.
  • Habilite el análisis de registros avanzado de muestra.
  • También ofrece funciones de análisis (forense) de ataques a servidores Linux para piratas informáticos éticos y mucho más.

En este artículo, mostraremos cómo instalar sysdig en un sistema Linux y cómo usarlo con ejemplos básicos de análisis, monitoreo y solución de problemas del sistema.

Cómo instalar Sysdig en Linux

Instalar el paquete sysdig es tan fácil como ejecutar el siguiente comando, que verificará todos los requisitos; Si todo está en su lugar, descargará e instalará el paquete desde el repositorio Draios APT/YUM.

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

Después de instalarlo, necesita ejecutar sysdig como root porque requiere acceso a áreas críticas como el sistema de archivos /proc, /dev/sysdig* dispositivos y necesita cargar automáticamente el módulo del kernel sysdig-probe (en caso de que no lo sea); de lo contrario utilice el comando sudo.

El ejemplo más básico es ejecutarlo sin ningún argumento, esto le permitirá ver el flujo de eventos de su sistema Linux actualizado en tiempo real:

sudo sysdig

El resultado anterior (datos sin procesar) quizás no tenga mucho sentido para usted; para obtener un resultado más útil, ejecute csysdig:

sudo csysdig 

Nota: para tener una idea real de esta herramienta, debe utilizar sysdig, que produce datos sin procesar, como vimos antes, a partir de un proceso en ejecución. Sistema Linux: esto requiere que sepas utilizar filtros y cinceles.

Pero si necesita una forma sencilla de utilizar sysdig, continúe con csysdig.

Comprensión de los cinceles y filtros Sysdig

Los cinceles Sysdig son scripts Lua mínimos para examinar el flujo de eventos sysdig para llevar a cabo acciones útiles de solución de problemas del sistema y más. El siguiente comando le ayudará a ver todos los cinceles disponibles:

sudo sysdig -cl

La captura de pantalla muestra una lista de muestra de cinceles en diferentes categorías.

Si desea obtener más información sobre un cincel en particular, utilice la bandera -i:

sudo sysdig -i topprocs_cpu

Los filtros Sysdig agregan más potencia al tipo de salida que puede obtener de los flujos de eventos y le permiten personalizar la salida. Debes especificarlos al final de una línea de comando.

Un filtro sencillo y más común es una verificación básica "class.field=value". También puede combinar cinceles con filtros para personalizaciones aún más poderosas.

Para ver una lista de clases de campo disponibles, campos y sus descripciones, escriba:


sudo sysdig -l

Creación de un archivo de seguimiento del sistema Linux

Para volcar la salida de sysdig en un archivo para un análisis posterior, utilice el indicador -w como este.

Puede leer el archivo de volcado de seguimiento utilizando el indicador -r:


sudo sysdig -r trace.scap

La opción -s se utiliza para especificar la cantidad de bytes de datos que se capturarán para cada evento del sistema. En este ejemplo, estamos filtrando eventos para el proceso mongod.

sudo sysdig -s 3000 -w trace.scap
sudo sysdig -r trace.scap proc.name=mongod

Monitoreo de procesos de Linux

Para enumerar los procesos del sistema, escriba:

sudo sysdig -c ps

Monitorear procesos por uso de CPU

Para ver los procesos principales por porcentaje de uso de CPU, ejecute este comando:

sudo sysdig -c topprocs_cpu

Monitoreo de conexiones de red y E/S

Para ver las conexiones de red del sistema, ejecute:

sudo sysdig -c netstat

El siguiente comando le ayudará a enumerar las principales conexiones de red por bytes totales:

sudo sysdig -c topconns

A continuación, también puede enumerar los procesos principales por E/S de red de la siguiente manera:

sudo sysdig -c topprocs_net    

Monitoreo de E/S de archivos del sistema

Puede generar los datos leídos y escritos por los procesos en el sistema de la siguiente manera:

sudo sysdig -c echo_fds

Para enumerar los procesos principales por bytes de disco (lectura + escritura), utilice:

sudo sysdig -c topprocs_file   

Solución de problemas de rendimiento del sistema Linux

Para estar atento a los cuellos de botella del sistema (llamadas lentas al sistema), ejecute este comando:

sudo sysdig -c bottlenecks

Seguimiento del tiempo de ejecución de un proceso

Para realizar un seguimiento del tiempo de ejecución de un proceso, puede ejecutar este comando y volcar el seguimiento en un archivo:

sudo sysdig -w extime.scap -c proc_exec_time 

Luego use un filtro para concentrarse en los detalles de un proceso en particular (postgres en este ejemplo) de la siguiente manera:

sudo sysdig -r extime.scap proc.name=postgres

Descubra la red lenta I/0

Este sencillo comando le ayudará a detectar la E/S lenta de la red:

sudo sysdig -c netlower     

Ver entradas de archivos de registro

El siguiente comando le ayuda a mostrar cada mensaje escrito en syslog; si está interesado en las entradas de registro para un proceso específico, cree un volcado de seguimiento y filtrelo en consecuencia como se muestra antes:

sudo sysdig -c spy_syslog      

Puede imprimir cualquier dato escrito por cualquier proceso en un archivo de registro de la siguiente manera:

sudo sysdig -c spy_logs   

Monitoreo de solicitudes de servidor HTTP

Si tiene un servidor HTTP como Apache o Nginx ejecutándose en nuestro sistema, revise el registro de solicitudes del servidor con este comando:

sudo sysdig -c httplog    
sudo sysdig -c httptop   [Print Top HTTP Requests] 

Mostrar shells de inicio de sesión y actividad interactiva del usuario

El siguiente comando le permitirá ver todos los ID del shell de inicio de sesión:

sudo sysdig -c list_login_shells

Por último, pero no menos importante, puedes mostrar la actividad interactiva de los usuarios del sistema de esta manera:

sudo sysdig -c spy_users

Para obtener más información de uso y ejemplos, lea las páginas del manual de sysdig y csysdig:

man sysdig 
man csysdig

Referencia: https://www.sysdig.org/

Consulte también estas útiles herramientas de monitoreo del rendimiento de Linux:

  1. BCC: herramientas de seguimiento dinámico para monitoreo del rendimiento de Linux, redes y más
  2. pyDash: una herramienta de monitoreo del rendimiento de Linux basada en web
  3. Perf: una herramienta de análisis y monitoreo del rendimiento para Linux
  4. Collectl: una herramienta avanzada de monitoreo del rendimiento todo en uno para Linux
  5. Netdata: una herramienta de monitoreo del rendimiento en tiempo real para sistemas Linux
Conclusión

Sysdig reúne funcionalidades de numerosas herramientas de línea de comandos en una interfaz extraordinaria, lo que le permite profundizar en los eventos de su sistema Linux para recopilar datos, guardarlos para análisis posteriores y ofrece un increíble soporte de contenedores.

Para hacer cualquier pregunta o compartir alguna idea sobre esta herramienta, utilice el formulario de comentarios a continuación.