Sysdig: una potente herramienta de supervisión y resolución de problemas del sistema para Linux

Sysdig. es una herramienta de solución de problemas y supervisión del sistema de código abierto, multiplataforma, potente y flexible para Linux; también funciona en Windows y Mac OSX, pero con una funcionalidad limitada y se puede utilizar para el análisis, la inspección y la depuración del sistema.

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

  1. strace: descubre las llamadas y señales del sistema a un proceso.
  2. tcpdump: supervisión 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 de ancho de banda de red en tiempo real.
  6. lsof-ver qué archivos están abierto por qué proceso.

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

Viene con una interfaz de línea de comandos y una poderosa interfaz de usuario interactiva ( csysdig. que le permiten observar la actividad del sistema en tiempo real, o realizar un volcado de rastreo y guardarlo para un análisis posterior. Puede ver cómo funciona csysdig en el siguiente video.

Características de Sysdig:

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

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

Cómo instalar Sysdig en Linux

freestar.config.enabled_slots.push

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

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

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

Después de instalarlo, debe ejecutar sysdig. como root porque requiere acceso a áreas críticas como el sistema de archivos /proc. /dev/sysdig *. y necesita cargar automáticamente el módulo del kernel sysdig-probe (en caso de que no lo esté); de lo contrario, use 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  Ver eventos del sistema Linux Ver eventos del sistema Linux

La salida anterior (datos sin procesar) quizás no tenga mucho sentido para usted, para una salida más útil ejecute csysdig.

$ sudo csysdig  Monitor Eventos del sistema Linux Monitor Linux S Eventos de ystem

Nota. para tener una idea real de esta herramienta, debe usar sysdig. que produce datos sin procesar como vimos antes, desde un sistema Linux en ejecución: esto requiere que comprenda cómo usar filtros y cinceles.

Pero si necesita un medio sencillo de usar sysdig. continúe con csysdig.

Comprensión de los cinceles y filtros de Sysdig

Los cinceles de Sysdig. son scripts mínimos de Lua para examinar el flujo de eventos de sysdig para llevar a cabo un sistema útil acciones de resolución de problemas 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.

 Ver Sysdig-Chisels Ver cinceles de Sysdig Ver cinceles de Sysdig

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

$ sudo sysdig-i topprocs_cpu  Ver información de cincel de Sysdig Ver información de cincel de Sysdig

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

Un filtro sencillo y común es una verificación básica de “ class.field = value. , también puede combinar cinceles con filtros para personalizaciones aún más potentes.

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

$ sudo sysdig-l  Ver clases de campo Sysdig  Ver clases de campo de Sysdig Ver clases de campo de Sysdig Creando un archivo de seguimiento del sistema Linux

Para volcar la salida de sysdig en un archivo para un análisis posterior, use el indicador-w de esta manera.

Puede leer el archivo de volcado de seguimiento usando el -r. bandera:

$ sudo sysdig-r trace.scap

La opción-s se usa 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  Crear archivo de seguimiento MongoDB Crear procesos de Linux de monitoreo de archivos de seguimiento MongoDB

Para enumerar los procesos del sistema, escriba:

$ sudo sysdig-c ps  Supervisar procesos Linux Supervisar los procesos de Linux Supervisar los procesos por uso de CPU

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

$ sudo sysdig-c topprocs_cpu Monitorear procesos por uso de CPU  Supervisar procesos por uso de CPU Monitorear procesos por uso de CPU Monitoreo de conexiones de red y E/S

Para ver las conexiones de red del sistema, ejecute:

$ sudo sysdig-c netstat  Supervisar las conexiones de red Supervisar las conexiones de red

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 principales procesos por red E/S de la siguiente manera:

$ sudo sysdig-c topprocs_net E/S de archivos del sistema de supervisión

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

$ sudo sysdig-c echo_fds  Monitor del sistema IO Monitor del sistema IO

Para enumerar los principales procesos por (leer + escribir) bytes de disco, use:

$ s udo sysdig-c topprocs_file Solución de problemas de rendimiento del sistema Linux

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

$ sudo sysdig-c bottlenecks Solucionar problemas de rendimiento de Linux Solucionar problemas del tiempo de ejecución de seguimiento de rendimiento de Linux 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  Seguimiento del tiempo de ejecución del proceso Seguimiento de la ejecución del proceso Tiempo

Luego, use un filtro para reducir a cero los detalles de un proceso en particular ( postgres. en este ejemplo) de la siguiente manera:

$ sudo sysdig-r extime.scap proc.name = postgres Descubrir I/0 de red lenta

Este sencillo comando le ayudará a detectar I/0 de red lenta:

$ sudo sysdig-c netlower Observación de entradas de archivos de registro

El siguiente comando le ayuda a mostrar todos los mensajes escritos en syslog, si está interesado en las entradas de registro para un proceso específico, cree un volcado de seguimiento y filtre 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 del 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 [Imprimir solicitudes HTTP superiores]  Supervisar solicitudes HTTP Supervisar solicitudes HTTP Mostrar shells de inicio de sesión y actividad de usuario interactiva

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

$ su do sysdig-c list_login_shells

Por último, pero no menos importante, puede mostrar la actividad interactiva de los usuarios del sistema así:

$ sudo sysdig-c spy_users  Supervisar la actividad del usuario Supervisar la actividad del usuario

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

$ man sysdig $ man csysdig

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

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