EFS 파일 시스템을 탑재하는 Linux 인스턴스에서 로그를 수집하려면 어떻게 해야 하나요?

3분 분량
0

Amazon Elastic File System(Amazon EFS)을 탑재하는 Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스의 로그 정보를 수집하려고 합니다.

간략한 설명

AWS Support Automation Workflow(SAW)를 사용하여 문제 해결 시 AWS Support에 제공할 로그 정보 및 기타 데이터를 수집할 수 있습니다. 하지만 SAW를 사용하여 Amazon EFS를 탑재하는 Amazon EC2 Linux 인스턴스에 대한 로그를 수집할 수는 없습니다.

Amazon EFS를 탑재하는 Amazon EC2 Linux 인스턴스에서 로그를 수집하려면 다음 작업을 완료하세요.

  • 지원 사례를 생성하세요.
  • 클라이언트 인스턴스에서 stunnel 로그를 활성화하세요.
  • 클라이언트 인스턴스에서 efs-utils 로그를 활성화하세요.
  • Amazon EFS CSI 드라이버에서 로그를 수집하세요.
  • (선택 사항) 클라이언트 인스턴스에서 tcpdump를 사용하여 패킷 캡처를 수집하세요.

해결 방법

지원 사례 생성

AWS Support를 위한 지원 사례를 생성하여 Amazon EFS 로그를 검토하세요. SSH를 사용하여 Amazon EC2 Linux 인스턴스에 대한 로그를 수집하세요. 지원 사례에서 다음 정보를 제공하세요.

  • 파일 시스템 ID
  • 탑재 대상 ID 또는 IP 주소
  • AWS 리전
  • 이러한 행동을 하는 EC2 인스턴스 ID
  • 이벤트 날짜 및 시간(특정 타임스탬프 및 시간대 포함)
  • 다음 명령의 출력:
mount
uname -a
sudo iptables -S
lsmod

efs-utils를 사용하는 경우, 다음 명령을 실행하세요. 지원 사례에서 amazon-efs-utils.tar.gz 출력 정보를 제공하세요.

sudo tar czf amazon-efs-utils.tar.gz /var/log/amazon/efs

TLS를 통해 탑재하는 경우, 다음 명령을 실행하세요. 지원 사례에서 출력 정보를 제공하세요.

sudo stunnel -version
sudo openssl version
sudo openssl ciphers

클라이언트 인스턴스에서 stunnel 로그 활성화

  1. 파일 편집기에서 /etc/amazon/efs/efs-utils.conf를 여세요. EC2 인스턴스의 stunnel_debug_enabled 옵션을 false에서 true로 변경하세요.
  2. 탑재를 해제한 다음 파일 시스템을 탑재하여 디버깅 중인 문제를 재현하세요.
  3. stunnel 로그를 수집하세요. 로그는 var/log/amazon/efs에서 찾을 수 있습니다.
  4. stunnel_debug_enabledfalse로 설정하세요.

클라이언트 인스턴스에서 efs-utils 로그 활성화

  1. 파일 편집기에서 /etc/amazon/efs/efs-utils.conf를 여세요. 설정을 INFO에서 DEBUG로 변경하세요.
  2. 탑재를 해제한 다음 파일 시스템을 탑재하여 디버깅 중인 문제를 재현하세요.
  3. efs-utils 로그를 수집하세요. 로그는 /var/log/amazon/efs에서 찾을 수 있습니다.
  4. efs-utils.confINFO로 설정하세요.

aws-efs-csi-driver에서 로그 수집

1.    오류를 초래한 포드를 찾으려면 다음 명령을 실행하세요.

kubectl describe pod $<POD_NAME>

참고: **<POD_NAME>**을 사용자의 포드 이름으로 바꾸세요.

2.    오류를 초래한 포드의 efs-utilscsi-driver 디버그 로그를 활성화하세요. 자세한 내용은 aws-efs-csi-driver 문제 해결 가이드(GitHub 웹사이트)를 참조하세요.

3.    다음 명령을 실행하여 디버그 로그 정보를 수집하세요.

python3 log_collector.py --driver-pod-name <driver_pod_name>

참고: **<driver_pod_name>**을 사용자의 포드 이름으로 바꾸세요.

(선택 사항) 클라이언트 인스턴스에서 tcpdump를 사용하여 패킷 캡처를 수집하세요

tcpdump(TCPDump 웹사이트)를 실행하여 사용을 위해 전환하는 1GB 크기의 파일 30개를 생성하세요. tcpdump는 파일을 사용하여 패킷 데이터를 캡처합니다. 요구 사항에 따라 명령을 조정하세요.

TLS가 아닌 탑재

TLS가 아닌 탑재의 경우, 다음 명령을 실행하여 일반 텍스트 네트워크 파일 시스템 트래픽을 캡처하세요.

sudo tcpdump -W 30 -C 1000 -s 2000 -w nfs_pcap_$(date +%FT%T).pcap -i any -z gzip -Z root port 2049

TLS 탑재

다음 명령을 실행하여 네트워크 파일 시스템 클라이언트와 stunnel 간의 일반 텍스트 트래픽을 캡처하세요. 또한, stunnel과 EFS 간의 암호화된 트래픽을 캡처합니다.

sudo tcpdump -W 30 -C 1000 -s 2000 -w nfs_pcap_$(date +%FT%T).pcap -i any -z gzip -Z root
AWS 공식
AWS 공식업데이트됨 10달 전