Sysdig - Linux용 강력한 시스템 모니터링 및 문제 해결 도구
Sysdig는 오픈 소스, 크로스 플랫폼, 강력하고 유연한 시스템 모니터링 및 Linux용 문제 해결 도구입니다. Windows 및 Mac OSX에서도 작동하지만 기능이 제한되어 있으며 시스템 분석, 검사 및 디버깅에 사용할 수 있습니다.
일반적으로 Linux 모니터링 및 디버깅 작업을 수행하려면 아래 나열된 도구를 포함하여 다양한 Linux 성능 모니터링 및 문제 해결 도구를 혼합하여 사용합니다.
- strace – 프로세스에 대한 시스템 호출 및 신호를 검색합니다.
- tcpdump – 원시 네트워크 트래픽 모니터링.
- netstat – 네트워크 연결 모니터링.
- htop – 실시간 프로세스 모니터링.
- iftop – 실시간 네트워크 대역폭 모니터링.
- 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 성능 모니터링 도구를 확인하세요.
- BCC – Linux 성능 모니터링, 네트워킹 등을 위한 동적 추적 도구
- pyDash – 웹 기반 Linux 성능 모니터링 도구
- Perf - Linux용 성능 모니터링 및 분석 도구
- Collectl: Linux용 고급 올인원 성능 모니터링 도구
- Netdata - Linux 시스템용 실시간 성능 모니터링 도구
결론
Sysdig는 수많은 명령줄 도구의 기능을 하나의 놀라운 인터페이스로 통합하므로 Linux 시스템 이벤트를 심층적으로 분석하여 데이터를 수집하고 나중에 분석할 수 있도록 저장할 수 있으며 놀라운 컨테이너 지원을 제공합니다.
이 도구에 관해 질문이 있거나 의견을 공유하려면 아래 피드백 양식을 사용하세요.