100개의 AWS 서버에서 데이터 수집

100개의 AWS 서버에서 데이터 수집

AWS에서 실행되는 서버가 100개 있습니다. 원격 시스템의 각 사용자가 사용하는 데이터의 양을 쉽게 확인하고 이를 텍스트 파일로 출력해야 합니다. 어떻게 하면 이 일을 가장 잘 수행할 수 있을까요?

답변1

다음과 같은 병렬 쉘을 사용할 수 있습니다.클러스터쉘또는pdsh.

이렇게 하면 중앙 시스템에서 비밀번호 없는 SSH 인증을 이미 설정했다고 가정하고 동시에 100개의 서버 각각에서 명령을 실행할 수 있습니다. 더 나아가서 논리적으로 정리하기 위해 다양한 그룹을 만들 수도 있습니다.

컴퓨터 이름이 aws0, aws1, aws2, ... aws99라고 가정해 보겠습니다.

Clustershell을 사용하면 다음과 같은 방법으로 모든 항목에 대해 명령(이 예에서는 가동 시간)을 실행할 수 있습니다.

# clush -w aws[0-100] uptime
aws0: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00
aws1: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00
aws2: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00
[...]
aws99: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00

이 방법으로 하위 집합에 대해 명령을 실행할 수 있습니다.

clush -w aws[22-55,73-82,90,99] uptime
aws22: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00
aws23: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00
[...]
aws55: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00
aws73: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00
[...]
aws82: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00
aws90: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00
aws99: 21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00

그런 다음 동일한 결과를 그룹화하려면 clush의 -b 옵션을 사용하거나 pdsh와 함께 dshbak -c로 파이프할 수 있습니다.

# clush -bw aws[0-99] uptime
---------------
aws[0-99] (100)
---------------
21:49:12 up  5:46,  1 user,  load average: 0.07, 0.02, 0.00

관련 정보