웹사이트 검색

Sysdig - Linux용 강력한 시스템 모니터링 및 문제 해결 도구


Sysdig는 오픈 소스, 크로스 플랫폼, 강력하고 유연한 시스템 모니터링 및 Linux용 문제 해결 도구입니다. Windows 및 Mac OSX에서도 작동하지만 기능이 제한되어 있으며 시스템 분석, 검사 및 디버깅에 사용할 수 있습니다.

일반적으로 Linux 모니터링 및 디버깅 작업을 수행하려면 아래 나열된 도구를 포함하여 다양한 Linux 성능 모니터링 및 문제 해결 도구를 혼합하여 사용합니다.

  1. strace – 프로세스에 대한 시스템 호출 및 신호를 검색합니다.
  2. tcpdump – 원시 네트워크 트래픽 모니터링.
  3. netstat – 네트워크 연결 모니터링.
  4. htop – 실시간 프로세스 모니터링.
  5. iftop – 실시간 네트워크 대역폭 모니터링.
  6. lsof – 어떤 프로세스에서 어떤 파일을 열었는지 확인합니다.

그러나 sysdig는 위의 모든 도구와 그 이상을 단일하고 간단한 프로그램으로 통합하며 놀라운 컨테이너 지원을 통해 더욱 그렇습니다. 이를 통해 Linux 시스템과 컨테이너의 실제 동작(이벤트 스트림)을 캡처, 저장, 필터링 및 검사할 수 있습니다.

명령줄 인터페이스와 강력한 대화형 UI(csysdig)가 함께 제공되어 시스템 활동을 실시간으로 관찰하거나 추적 덤프를 수행하고 나중에 분석을 위해 저장할 수 있습니다. 아래 비디오에서 csysdig가 어떻게 작동하는지 볼 수 있습니다.

Sysdig 기능:

  • 포괄적으로 잘 문서화되어 있어 빠르고 안정적이며 사용하기 쉽습니다.
  • Docker, LXC를 포함한 컨테이너 기술에 대한 기본 지원이 제공됩니다.
  • Lua에서는 스크립트가 가능합니다. 캡처된 시스템 이벤트를 처리하기 위한 끌(경량 Lua 스크립트)을 제공합니다.
  • 유용한 출력 필터링을 지원합니다.
  • 시스템 및 애플리케이션 추적을 지원합니다.
  • Ansible, Puppet 및 Logstash와 통합될 수 있습니다.
  • 샘플 고급 로그 분석을 활성화합니다.
  • 또한 윤리적인 해커를 위한 Linux 서버 공격(포렌식) 분석 기능 등을 제공합니다.

이 기사에서는 Linux 시스템에 sysdig를 설치하고 이를 시스템 분석, 모니터링 및 문제 해결의 기본 예와 함께 사용하는 방법을 보여줍니다.

Linux에 Sysdig를 설치하는 방법

sysdig 패키지 설치는 모든 요구 사항을 확인하는 아래 명령을 실행하는 것만큼 쉽습니다. 모든 것이 준비되면 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

설치 후 /proc 파일 시스템, /dev/sysdig*sysdig를 루트로 실행해야 합니다. > 장치 및 sysdig-probe 커널 모듈을 자동 로드해야 합니다(그렇지 않은 경우). 그렇지 않으면 sudo 명령을 사용하십시오.

가장 기본적인 예는 인수 없이 실행하는 것입니다. 이를 통해 실시간으로 업데이트되는 Linux 시스템 이벤트 스트림을 볼 수 있습니다.

sudo sysdig

위의 출력(원시 데이터)은 아마도 이해가 되지 않을 것입니다. 더 유용한 출력을 보려면 csysdig를 실행하세요.

sudo csysdig 

참고: 이 도구의 실제 느낌을 얻으려면 이전에 본 것처럼 실행에서 원시 데이터를 생성하는 sysdig를 사용해야 합니다. Linux 시스템: 필터와 끌을 사용하는 방법을 이해해야 합니다.

하지만 sysdig를 사용하는 간편한 방법이 필요하다면 csysdig를 계속 사용하세요.

Sysdig 치즐 및 필터 이해

Sysdig 끌은 유용한 시스템 문제 해결 작업 등을 수행하기 위해 sysdig 이벤트 스트림을 검사하기 위한 최소 Lua 스크립트입니다. 아래 명령은 사용 가능한 모든 끌을 보는 데 도움이 됩니다.

sudo sysdig -cl

스크린샷은 다양한 카테고리의 끌 샘플 목록을 보여줍니다.

특정 끌에 대한 자세한 정보를 찾으려면 -i 플래그를 사용하세요.

sudo sysdig -i topprocs_cpu

Sysdig 필터는 이벤트 스트림에서 얻을 수 있는 출력 종류에 더 많은 기능을 추가하며 출력을 사용자 정의할 수 있습니다. 명령줄 끝에 이를 지정해야 합니다.

간단하고 가장 일반적인 필터는 기본적인 'class.field=value' 확인이며, 더욱 강력한 맞춤 설정을 위해 끌과 필터를 결합할 수도 있습니다.

사용 가능한 필드 클래스, 필드 및 해당 설명 목록을 보려면 다음을 입력하십시오.


sudo sysdig -l

Linux 시스템 추적 파일 생성

나중에 분석하기 위해 sysdig 출력을 파일에 덤프하려면 이와 같이 -w 플래그를 사용하십시오.

-r 플래그를 사용하여 추적 덤프 파일을 읽을 수 있습니다.


sudo sysdig -r trace.scap

-s 옵션은 각 시스템 이벤트에 대해 캡처할 데이터 바이트 양을 지정하는 데 사용됩니다. 이 예에서는 mongod 프로세스에 대한 이벤트를 필터링합니다.

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

Linux 프로세스 모니터링

시스템 프로세스를 나열하려면 다음을 입력하십시오.

sudo sysdig -c ps

CPU 사용량을 기준으로 프로세스 모니터링

CPU 사용량 비율별로 상위 프로세스를 보려면 다음 명령을 실행하세요.

sudo sysdig -c topprocs_cpu

네트워크 연결 및 I/O 모니터링

시스템 네트워크 연결을 보려면 다음을 실행하십시오.

sudo sysdig -c netstat

다음 명령은 총 바이트별로 상위 네트워크 연결을 나열하는 데 도움이 됩니다.

sudo sysdig -c topconns

다음으로, 다음과 같이 네트워크 I/O별로 상위 프로세스를 나열할 수도 있습니다.

sudo sysdig -c topprocs_net    

시스템 파일 I/O 모니터링

아래와 같이 시스템의 프로세스가 읽고 쓴 데이터를 출력할 수 있습니다.

sudo sysdig -c echo_fds

디스크 바이트(읽기 + 쓰기)별로 상위 프로세스를 나열하려면 다음을 사용합니다.

sudo sysdig -c topprocs_file   

Linux 시스템 성능 문제 해결

시스템 병목 현상(느린 시스템 호출)을 감시하려면 다음 명령을 실행하십시오.

sudo sysdig -c bottlenecks

프로세스 실행 시간 추적

프로세스의 실행 시간을 추적하려면 다음 명령을 실행하고 추적을 파일에 덤프할 수 있습니다.

sudo sysdig -w extime.scap -c proc_exec_time 

그런 다음 필터를 사용하여 다음과 같이 특정 프로세스(이 예에서는 postgres)의 세부정보를 확인합니다.

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

느린 네트워크 I/0 발견

이 간단한 명령은 느린 네트워크 I/0을 감지하는 데 도움이 됩니다.

sudo sysdig -c netlower     

로그 파일 항목 보기

아래 명령은 syslog에 기록된 모든 메시지를 표시하는 데 도움이 됩니다. 특정 프로세스에 대한 로그 항목에 관심이 있는 경우 추적 덤프를 생성하고 그에 따라 이전에 표시된 대로 필터링하십시오.

sudo sysdig -c spy_syslog      

다음과 같이 프로세스에 의해 기록된 모든 데이터를 로그 파일에 인쇄할 수 있습니다.

sudo sysdig -c spy_logs   

HTTP 서버 요청 모니터링

시스템에서 Apache 또는 Nginx와 같은 HTTP 서버가 실행 중인 경우 다음 명령을 사용하여 서버의 요청 로그를 살펴보세요.

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

로그인 셸 및 대화형 사용자 활동 표시

아래 명령을 사용하면 모든 로그인 셸 ID를 볼 수 있습니다.

sudo sysdig -c list_login_shells

마지막으로 다음과 같이 시스템 사용자의 대화형 활동을 표시할 수 있습니다.

sudo sysdig -c spy_users

자세한 사용법 정보와 예를 보려면 sysdig 및 csysdig 매뉴얼 페이지를 읽으십시오.

man sysdig 
man csysdig

참조: https://www.sysdig.org/

또한 다음과 같은 유용한 Linux 성능 모니터링 도구를 확인하세요.

  1. BCC – Linux 성능 모니터링, 네트워킹 등을 위한 동적 추적 도구
  2. pyDash – 웹 기반 Linux 성능 모니터링 도구
  3. Perf - Linux용 성능 모니터링 및 분석 도구
  4. Collectl: Linux용 고급 올인원 성능 모니터링 도구
  5. Netdata - Linux 시스템용 실시간 성능 모니터링 도구
결론

Sysdig는 수많은 명령줄 도구의 기능을 하나의 놀라운 인터페이스로 통합하므로 Linux 시스템 이벤트를 심층적으로 분석하여 데이터를 수집하고 나중에 분석할 수 있도록 저장할 수 있으며 놀라운 컨테이너 지원을 제공합니다.

이 도구에 관해 질문이 있거나 의견을 공유하려면 아래 피드백 양식을 사용하세요.