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

おすすめ記事