いくつかのJavaベースのアプリケーションを含むEC2インスタンス(Ubuntu)があり、最近、Cloudwatchアラームの1つをトリガーする高いCPU使用率のスパイクに見舞われています。サーバーにアクセスしてCPU使用率を確認するまでに、状況は落ち着きました。
アラームメールの1つで確認したいのは、実行中のプロセスと、アラーム発生時のCPU使用率(%)のリストです。これも可能ですか?
あなたの質問に答えるためにいいえ。しきい値に達するたびにサーバー上のプロセスを一覧表示するようにCloudWatchを設定することはできません。これを実現するには、他のソフトウェアを使用する必要があります。 CloudWatchはメトリクスのみを記録します。たとえば、実行中のプロセスの数を知りたい場合は、それをモニターするようにCloudWatchを設定できます。
プロセスアカウンティングを使用して実行し、10分ごとにシステムデータスナップショットを収集するか(デフォルト)、より良い解像度が必要な場合は5分短縮することをお勧めします。
apt-get install atop acct
次に、次のような構文を使用して、ある時点で何が起こっていたかを簡単に確認できます。
atop -r atop.log.file -b 00:00 -e 00:05
上記の例は、00:00から00:05の間にシステム使用状況のスナップショットで何が起こっていたかを示しています。
私は同様のことをした経験はありませんが、理論的には、既存のビルディングブロックでそれを行うことは可能です。
CloudWatch -> SNS -> HTTP/HTTPS -> homebrew webapp -> collect data and email it
これをatop
を使用する提案と組み合わせて、最近のN分の出力を送信するようにWebアプリを構成できます。