Red Hat Training

A Red Hat training course is available for RHEL 8

24.3.2. Inicializando a instrumentação cruzada do SystemTap

Inicializar a instrumentação cruzada do SystemTap para construir módulos de instrumentação SystemTap a partir de um script SystemTap em um sistema e usá-los em outro sistema que não tenha o SystemTap totalmente implantado.

Pré-requisitos

  • O SystemTap está instalado no site host system como descrito em Instalando o SystemTap.
  • Tanto o host system quanto o target system são a mesma arquitetura.
  • Tanto o host system quanto o target system estão rodando a mesma versão principal do Red Hat Enterprise Linux (como o Red Hat Enterprise Linux 8), eles can estão rodando diferentes versões menores (como 8.1 e 8.2).
Cuidado

Os bugs de embalagem do kernel podem impedir que vários pacotes kernel-debuginfo e kernel-devel sejam instalados em um sistema. Nesses casos, a versão menor para os pacotes host system e target system deve coincidir. Caso isso ocorra, informe o bug em https://bugzilla.redhat.com/.

Procedimento

  1. Determinar o kernel rodando em cada target system:

    $ uname -r

    Repita esta etapa para cada um target system.

  2. Instale o pacote necessário para executar módulos pré-compilados em cada um target system:

    # yum instalar systemtap-runtime
  3. No site host system, instale o target kernel e pacotes relacionados para cada target system pelo método descrito na instalação do SystemTap.
  4. Construa um módulo de instrumentação no host system, copie para e execute no target system também:

    1. Usando implementação remota:

      # stap --remote target_system script

      Este comando implementa remotamente o script especificado no site target system. Você deve garantir que uma conexão SSH possa ser feita ao target system a partir do host system para que isto seja bem sucedido.

    2. Manualmente:

      1. Construa o módulo de instrumentação no site host system:

        # stap -r kernel_version script -m module_name -p 4

        Aqui, kernel_version refere-se à versão do target kernel determinada no passo 1, script refere-se ao roteiro a ser convertido em instrumentation module, e module_name é o nome desejado do instrumentation module. A opção -p4 diz ao SystemTap para não carregar e executar o módulo compilado.

      2. Uma vez compilado o instrumentation module, copie-o para o sistema de destino e carregue-o usando o seguinte comando:

        # staprun module_name.ko
        Nota

        A execução de um módulo pré-compilado requer apenas o pacote systemtap-runtime.