web-dev-qa-db-ja.com

ElasticBeanStalkの背後にあるAWSシステムのモニタリング

そのため、Amazon Cloudに会社を設立し、IAASプロトコル/ソリューション/標準化された実装などを作成すると同時に、個々のシステム、アプリ環境、および日常の稼働時間のSysAdminを務めています。

私が抱えている最大の問題の1つは、さまざまなシステム/アプリケーションログの追跡と、メモリ使用量、CPU使用率などのシステムメトリックのログ記録/監視/アーカイブです。例えば。 -> Nagios + Urchin。

私の努力に対する最大の障害は次のとおりです。

会社のアプリケーションは、Java * .WARファイルの形式でデプロイされ、Elastic BeanStalkアプリケーション環境にアップロードされ、負荷分散と3(min)と10( max)サーバー、およびアプリケーションを実行するEC2が起動され、アドホックに破棄されます。

つまり、非常に多くのEC2が終了し、その場で自動プロビジョニング/自動スケーリングされるため、個々のEC2を長時間監視することはできません。そのため、常に「監視対象を監視する必要があります。 "、およびEC2マシンアドレスを監視リストから継続的に削除/追加します。

ZabbixやNagiosなどのモニタリングツールを使用してElasticBeanStalkをモニタリングし、新しいEC2を自動的に追加し、終了/失敗したEC2をモニタリングリストから自動的に削除する方法はありますか?

さらに、GrayLogを使用して、複数のEC2インスタンスからのアプリケーションログを1つの統合されたログ/イベントのセットに集約/集中化して同様の結果を達成するためにできることはありますか? GrayLogでない場合、環境に追加/削除されているEC2メンバーを自動的に検出し、それらからログを自動的に収集できる、GrayLogのようなものはありますか?

ありとあらゆるアドバイスや指示をいただければ幸いです。

どうもありがとう、そして乾杯!

4
A. Avadis

Elastic BeanstalkにWARをデプロイする場合は、WEB-INFの下の.ebextensionsフォルダーに構成ファイルを作成することでメトリックをインストールできます。これを使用した設定とインスタンスの詳細については、次のリンクを参照してください: http://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/customize-containers.html

ディスク/メモリメトリクスをインストールするには、「Amazon CloudWatch Monitoring Scripts for Linux」をインストールする必要があります http://aws.Amazon.com/code/8720044071969977 を参照してください。

files:
  "/opt/aws/cwms/CloudWatchMonitoringScripts.Zip":
    mode: "000777"
    owner: ec2-user
    group: ec2-user
    source:  http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.Zip
container_commands:
  01_unzip_cloud_watch_Zip: 
    command: unzip -d /opt/aws/cwms /opt/aws/cwms/CloudWatchMonitoringScripts.Zip
    ignoreErrors: true
  02_update_password_file:
    command: sed -i 's/Key=$/Key=<VALUE OF YOUR SECRET KEY>/;s/KeyId=$/KeyId=<VALUE OF YOUR ACCESS ID>/' /opt/aws/cwms/awscreds.conf
  03_update_crontab:    
    command: echo "*/1 * * * * /opt/aws/cwms/mon-put-instance-data.pl --mem-util --disk-path=/ --disk-space-util --from-cron" | crontab - -u ec2-user

基本的に、このスクリプトが行うことは、LinuxベースのCloudWatchMonitoringScripts.Zipを/ opt/aws/cwmsなどのフォルダーにダウンロードすることです(これはどこでもかまいません)。次に、コマンドはファイルを解凍し、アクセス/秘密鍵を更新し(「sed」コマンドを使用)、最後にcrontabタブを作成します。

既存のcrontabエントリが消去される可能性があるため、crontabタブセクションには注意してください。

更新(2016年2月)

これは、2016年2月の時点で非常にうまく機能している更新されたスクリプトです( http://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/customize-containers-cw.html を参照) 。

sources: 
  /opt/cloudwatch: http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts-v1.1.0.Zip

commands:
  00-installpackages:
    command: yum install -y Perl-Switch Perl-Sys-Syslog Perl-LWP-Protocol-https

container_commands:
  01-setupcron:
    command: |
      echo '* * * * * root Perl /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl `{"Fn::GetOptionSetting" : { "OptionName" : "CloudWatchMetrics", "DefaultValue" : "--mem-used --memory-units=megabytes --mem-util --disk-space-util --disk-space-used --disk-space-avail --disk-path=/" }}` >> /var/log/cwpump.log 2>&1' > /etc/cron.d/cwpump
  02-changeperm:
    command: chmod 644 /etc/cron.d/cwpump
  03-changeperm:
    command: chmod u+x /opt/cloudwatch/aws-scripts-mon/mon-put-instance-data.pl

option_settings:
  "aws:autoscaling:launchconfiguration" :
    IamInstanceProfile : "MonitorRole"
  "aws:elasticbeanstalk:customoption" :
    CloudWatchMetrics : "--mem-used --memory-units=megabytes --mem-util --disk-space-util --disk-space-used --disk-space-avail --disk-path=/"

注:MonitorRuleというIAMロールが設定されている必要があります。ロールポリシーは次のようになります( http://docs.aws.Amazon.com/elasticbeanstalk/latest/dg/customize-containers-cw.html):-も参照してください。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "cloudwatch:PutMetricData",
        "ec2:DescribeTags"
      ],
      "Effect": "Allow",
      "Resource": [
        "*"
      ]
    }
  ]
}
2
bobmarksie

EC2、S3などを使用していますが、ElasticBeanStalkはまだ使用していません。私はあなたにいくつかの提案やアイデアを与えることができます...

Cloudwatch:Amazon AWSのCloudWatchを使用しており、EC2インスタンスに関する詳細がかなりわかります。監視のセットアップは非常にシンプルでGUIのものです。スクリプトや何かは必要ありません。 CloudwatchスタートガイドにはCLIに関する多くの情報が記載されていますが、developerGuideには必要な正確な情報が記載されています: http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/AlarmThatSendsEmail.html - http://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/choosing_your_cloudwatch_interface.html

Amazon ElasticBeanStackフォーラムでこのリンクを見つけました: http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/using-features.healthstatus.html

0
Invent Sekar

Elastic Beanstackのディスク使用量については、RootFileSysmtemUtilクラウドウォッチインスタンスメトリクスを有効にできます。これは、Elasticbeanstalkのヘルス構成セクションで利用できます。 「ヘルス」構成の下に「ヘルスレポート」セクションがあります。 RootFileSysmtemUtilオプションを選択し、構成を保存してください。

これで、CloudWatchのElasticBeanstackメトリクスにアクセスすると、新しいメトリクスを確認できます。

0
chinna