Tutoriales

Herramienta de seguimiento dinámico de Linux para redes y monitoreo

copia ciega (Colección del compilador BPF) es un poderoso conjunto de herramientas apropiadas y archivos de ejemplo para crear programas de manipulación y seguimiento del kernel ricos en recursos.

utiliza extensiones filtro de paso de banda (Filtro de paquetes Berkeley), originalmente llamado BPF electrónico Esta es una de las nuevas características. Linux 3.15.

BCC/BPF: herramienta de seguimiento dinámico para la supervisión del rendimiento de Linux

De hecho, la mayoría de los componentes que utilizan copia ciega Requerir linux 4.1 o superior, sus características destacables incluyen:

  • No se requieren módulos centrales de terceros ya que todas las herramientas funcionan según BPF integrado en el núcleo y BCC utiliza funciones agregadas en la serie Linux 4.x.
  • Capacidad para observar la ejecución del software.
  • Contiene múltiples herramientas de análisis de rendimiento, así como archivos de muestra y páginas de manual.

Lo mejor para usuarios avanzados de Linux, copia ciega Haz que escribir sea fácil filtro de paso de banda Programas que utilizan la detección del kernel Cy front-end Pitón y lua.

Además, admite una variedad de tareas como análisis de rendimiento, monitoreo, control del tráfico de red y más.

Cómo instalar BCC en un sistema Linux

Atención – Recuerde copia ciega Utilice nuevas funciones en la versión principal de Linux 4.1 o superior, y como requisito el kernel debe compilarse con los indicadores establecidos a continuación:

CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
# [optional, for tc filters]
CONFIG_NET_CLS_BPF=m
# [optional, for tc actions]
CONFIG_NET_ACT_BPF=m
CONFIG_BPF_JIT=y
# [for Linux kernel versions 4.1 through 4.6]
CONFIG_HAVE_BPF_JIT=y
# [for Linux kernel versions 4.7 and later]
CONFIG_HAVE_EBPF_JIT=y
# [optional, for kprobes]
CONFIG_BPF_EVENTS=y
# Need kernel headers through /sys/kernel/kheaders.tar.xz
CONFIG_IKHEADERS=y

Puede utilizar un único comando grep para comprobar todos los indicadores de configuración principales especificados y proporcionar todos los nombres de los indicadores como patrones.

grep -E 'CONFIG_BPF=y|CONFIG_BPF_SYSCALL=y|CONFIG_NET_CLS_BPF=m|CONFIG_NET_ACT_BPF=m|CONFIG_BPF_JIT=y|CONFIG_HAVE_BPF_JIT=y|CONFIG_HAVE_EBPF_JIT=y|CONFIG_BPF_EVENTS=y|CONFIG_IKHEADERS=y' /boot/config-$(uname -r)
Verifique las banderas del kernel
Verifique las banderas del kernel

Después de verificar las banderas del kernel, está listo para instalar copia ciega Herramientas en sistemas Linux.

Instalar herramientas BCC en Debian

puedes encontrar copia ciega así como herramientas en el repositorio principal habitual de Debian.Vienen del paquete de código fuente. BPFCC y fue nombrado herramienta bpfcc, python3-bpfcc, libbpfccy libbpfcc-dev.

echo deb  sid main >> /etc/apt/sources.list
sudo apt-get install -y bpfcc-tools libbpfcc libbpfcc-dev linux-headers-$(uname -r)

Instalar herramientas BCC en Ubuntu

Puedes encontrar diferentes versiones de copia ciega en regular Universo Ubuntu repositorio.

sudo apt-get install bpfcc-tools linux-headers-$(uname -r)

Instalar herramientas BCC en Fedora

como sombrero 40, copia ciega Los archivos binarios se pueden encontrar en el repositorio estándar.

sudo dnf install bcc

Instalar herramientas BCC en RHEL

copia ciega Ya incluido en el repositorio oficial de yum como se muestra a continuación. herramienta de copia oculta.

sudo yum install bcc-tools

Instalar herramientas BCC en Arch Linux

copia ciega está disponible en el repositorio estándar de Arch y se puede utilizar pacman Orden.

pacman -S bcc bcc-tools python-bcc

Instalar herramientas BCC en openSUSE

para openSUSE Salto 42.2 (y más allá) y planta rodadora, copia ciega Ya incluido en el repositorio oficial.

sudo zypper ref
sudo zypper in bcc-tools bcc-examples

Cómo utilizar la herramienta BCC en el sistema Linux

todo copia ciega La herramienta está instalada en /usr/share/bcc/tools Tabla de contenido. Sin embargo, también puedes ejecutarlos desde: Cco Github bajo repositorio /tools Ellos usan .py expandir.

ls /usr/share/bcc/tools
herramienta de copia oculta
herramienta de copia oculta

Presentaremos algunos ejemplos: monitoreo del rendimiento general del sistema Linux y de la red.

Seguimiento de llamadas al sistema open() en Linux

Comencemos rastreando todo open() Uso de llamadas al sistema Activar el monitoreo herramienta. Esto nos permite comprender cómo funcionan varias aplicaciones identificando archivos de datos, archivos de configuración, etc.:

cd /usr/share/bcc/tools 
sudo ./opensnoop
Seguimiento de llamadas al sistema open() en Linux
Seguimiento de llamadas al sistema open() en Linux

Análisis de la latencia de E/S del disco en Linux

Este ejemplo muestra la distribución de la suma de las latencias de E/S del disco utilizando la herramienta de latencia biológica.Después de ejecutar el comando, espere unos minutos y luego haga clic Ctrl-C Termínelo y vea el resultado.

sudo ./biolatency
Análisis de la latencia de E/S del disco en Linux
Análisis de la latencia de E/S del disco en Linux

Seguimiento de nuevos procesos en Linux

En esta sección, usaremos el siguiente comando para rastrear el nuevo proceso en ejecución Ejecutar monitoreo herramienta.Cada vez que se bifurca un proceso fork() y exec() llamada al sistema, que se muestra en el resultado. Sin embargo, no se detectan todos los procesos.

sudo ./execsnoop
Seguimiento de nuevos procesos en Linux
Seguimiento de nuevos procesos en Linux

Seguimiento de operaciones lentas del sistema de archivos Ext4

usar ext4 lento para realizar un seguimiento externo 4 Las operaciones comunes del sistema de archivos son más lentas que 10 milisegundosnos ayuda a identificar E/S de disco lentas independientes a través del sistema de archivos.

Solo generará aquellas operaciones que excedan el umbral:

sudo ./ext4slower
Buscando operaciones Ext4 más lentas
Buscando operaciones Ext4 más lentas

Utilice biosnoop para explorar la actividad de E/S del disco

A continuación, profundicemos en la impresión de una línea por segundo para cada E/S de disco con detalles como ID de proceso, sectores, bytes y latencia, usando Criatura husmeando herramienta:

sudo ./biosnoop
Comprobar la actividad de E/S del disco
Comprobar la actividad de E/S del disco

Analizar el rendimiento de la caché del sistema

A partir de entonces seguimos utilizando estado de caché Una herramienta que muestra una fila de estadísticas resumidas del caché del sistema cada segundo. Esto puede llevar a acciones de ajuste del sistema al señalar tasas bajas de aciertos de caché y altas tasas de errores:

sudo ./cachestat
Verificar el rendimiento de la caché del sistema
Verificar el rendimiento de la caché del sistema

Monitorear conexiones TCP en Linux

Monitorear la cantidad de conexiones TCP por segundo conexión TCP herramienta. Su salida incluye la dirección de origen, la dirección de destino y el número de puerto. Esta herramienta es útil para rastrear conexiones TCP inesperadas, ayudándonos así a identificar ineficiencias o atacantes en las configuraciones de las aplicaciones.

sudo ./tcpconnect
Monitorear conexiones TCP en Linux
Monitorear conexiones TCP en Linux

Todas las herramientas anteriores también se pueden utilizar con varias opciones. Para habilitar la página de descripción de una herramienta determinada, utilice -h opciones, por ejemplo:

sudo ./tcpconnect -h
Página de ayuda de la herramienta de copia oculta
Página de ayuda de la herramienta de copia oculta

Seguimiento de llamadas fallidas al sistema exec()

Para rastrear llamadas fallidas al sistema exec(), utilice -x Las opciones para opensnoop son las siguientes:

sudo ./opensnoop -x
Seguimiento de llamadas fallidas al sistema exec()
Seguimiento de llamadas fallidas al sistema exec()

Seguimiento de funciones de proceso específicas

El último ejemplo a continuación demuestra cómo realizar una operación de seguimiento personalizada.Lo estamos utilizando para rastrear procesos específicos. PID.

Primero, determine el ID del proceso:

pidof firefox

Más tarde, ejecute el personalizado rastro Orden.El siguiente comando -p Especifique el ID del proceso, do_sys_open() Es una función del kernel rastreada dinámicamente que incluye su segundo parámetro como una cadena.

sudo ./trace -p 4095 'do_sys_open "%s", arg2'
generalizar

copia ciega Es un conjunto de herramientas potente y fácil de usar adecuado para diversas tareas de administración del sistema, como seguimiento del rendimiento del sistema, seguimiento de E/S de dispositivos de bloque, funciones TCP, operaciones del sistema de archivos, llamadas al sistema, sondas Node.js, etc. Es importante destacar que viene con varios archivos de ejemplo y páginas de manual para guiar su herramienta, haciéndola fácil de usar y confiable.

Por último, pero no menos importante, puede comunicarse con nosotros a través de la sección de comentarios a continuación para compartir sus opiniones sobre este tema, hacer preguntas, dar sugerencias útiles o cualquier comentario constructivo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba