そのため、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のようなものはありますか?
ありとあらゆるアドバイスや指示をいただければ幸いです。
どうもありがとう、そして乾杯!
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": [
"*"
]
}
]
}
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
Elastic Beanstackのディスク使用量については、RootFileSysmtemUtilクラウドウォッチインスタンスメトリクスを有効にできます。これは、Elasticbeanstalkのヘルス構成セクションで利用できます。 「ヘルス」構成の下に「ヘルスレポート」セクションがあります。 RootFileSysmtemUtilオプションを選択し、構成を保存してください。
これで、CloudWatchのElasticBeanstackメトリクスにアクセスすると、新しいメトリクスを確認できます。