38.2. SystemTap의 교차 계측 초기화
SystemTap의 교차 계측을 초기화하여 한 시스템에서 SystemTap 스크립트에서 SystemTap 계측 모듈을 빌드하고 SystemTap이 완전히 배포되지 않은 다른 시스템에서 사용합니다.
사전 요구 사항
- SystemTap은 Systemtap 설치에 설명된 대로 호스트 시스템에 설치됩니다.
systemtap-runtime
패키지는 각 대상 시스템에 설치됩니다 :# yum install systemtap-runtime
- 호스트 시스템과 대상 시스템은 모두 동일한 아키텍처입니다.
- 호스트 시스템과 대상 시스템은 모두 동일한 주요 Red Hat Enterprise Linux 버전(예: Red Hat Enterprise Linux 8)을 실행하고 있으며 다양한 마이너 버전(예: 8.1 및 8.2)을 실행할 수 있습니다.
커널 패키징 버그로 인해 여러 kernel-debuginfo 및 kernel
-devel
패키지가 하나의 시스템에 설치되지 않을 수 있습니다. 이 경우 호스트 시스템 및 대상 시스템의 부 버전이 일치해야 합니다. 버그가 발생하면 https://bugzilla.redhat.com/ 보고하십시오.
절차
각 대상 시스템에서 실행중인 커널 확인 :
$ uname -r
각 대상 시스템에 대해 이 단계를 반복합니다.
- 호스트 시스템에서 Systemtap 설치에 설명된 방법으로 각 대상 시스템의 대상 커널 및 관련 패키지를 설치합니다.
호스트 시스템에서 계측 모듈을 빌드하고 이 모듈을 에 복사한 다음 대상 시스템에서 다음 중 하나를 실행합니다.
원격 구현 사용:
# stap --remote target_system script
이 명령은 대상 시스템에서 지정된 스크립트를 원격으로 구현합니다. 이 작업을 수행하려면 호스트 시스템에서 대상 시스템에 SSH 연결을 수행할 수 있는지 확인해야 합니다.
수동:
호스트 시스템에서 계측 모듈을 빌드합니다.
# stap -r kernel_version script -m module_name -p 4
여기서 kernel_version 은 1단계에서 결정된 대상 커널 버전을 참조하고, 스크립트는 계측 모듈로 변환할 스크립트를 참조하며, module _name 은 계측 모듈 의 원하는 이름입니다. p
4
옵션은 SystemTap에 컴파일된 모듈을 로드하고 실행하지 않도록 지시합니다.계측 모듈이 컴파일되면 대상 시스템에 복사한 후 다음 명령을 사용하여 로드합니다.
# staprun module_name.ko