オンプレサーバーの監視をCloudWatchでやってみた – その2

オフショア開発

前回の記事でオンプレサーバーのメトリクスをCloudWatchで見れるように設定しました。
本記事ではそのメトリクスを使って以下を実現したいと思います。

  • 「CloudWatch > ダッシュボード」を作成し、サーバー負荷を即座に把握する
  • 「CloudWatch > アラーム」を作成し、異常を検知したらSlack通知する

ダッシュボード作成

最終的に以下のようなメトリクス(CPU使用率、メモリ使用率、ディスク使用率)をサーバーごとに確認できるダッシュボードが作成したいです。

例えば、各サーバーの「CPU使用率」を表示したい場合、正常にオンプレサーバーからCloudWatchにメトリクスが飛ばせていたら「CWAgent > cpu,host > cpu_usage_user」にサーバー(host名)毎にデータが蓄積されているはずです。(そのためサーバーを構築する際は必ずホスト名を設定しておきましょう)

あとは表示させたいホスト名を選択して表示設定するだけです。

サーバー負荷が高くなった際はこのダッシュボードを見ればどのサーバーの何が異常なのかが判断できるはずです。

アラーム設定(CPU使用率)

続いてアラーム設定ですが、いずれかのサーバーのCPU使用率が70%を超えた場合にCloudWatchアラームで検知し、Slack通知を送信したいです。

サーバーごとに1つずつアラームを設定することもできますが、管理するサーバーが増えるとアラーム設定が大変です、その場合は「マルチソースクエリ」で対象サーバー群のCPU使用率の最大値を取得し、その値を判断してアラームを設定します。

以下が「マルチソースクエリ」の例になります

SQL形式でも指定が可能です。

WHERE句で特定のhostだけ除外することも可能でしが IN や LIKE は使えないようです。。。
こうすることで監視対象サーバーが複数あった場合でも「いずれかが閾値を超えたら通知」が簡単に実装できます。

以下が最終的なアラーム設定例になります。

通知設定についてはAmazon SNSでトピックを作成しておいて、Slackチャンネルにメール通知するのが一番簡単かなと思いますが設定方法については割愛します。

基本的に、メモリ使用率やディスク使用率も同じ手順で設定が可能です。

アラーム設定(エラーログ)

続いて、アプリケーションの運用保守に欠かせない「エラーログ検知」の設定になります、特にリリース直後などユーザーの想定外の操作や登録データによって発生するバグ、つまりExceptionをいち早く検知し修正することが求められます。

まず前回の記事でアプリケーションのログがCloudWatch飛んでいてロググループが作られているはずで、ロググループの詳細画面にて「メトリクスフィルター」を事前に作成しておきます。

以下はエラーログに出力される “:ERROR” を完全一致で検知する例になります。

次の画面では検知した値を格納するメトリクスを設定しますが、メトリクス名前空間はプロジェクト名を共通で設定し、メトリクス名には例えば api_error_log_detection のようにアプリケーションが識別可能な名前をつけるのが良いとおもいます。

あとはこのメトリクスを元にアラームを設定するだけです、値が1以上で異常と判断して同じくSlack通知するようにします。

今回はオンプレサーバーの監視をCloudWatchで実践しましたが、監視サーバー自体の費用やその構築コストがかからない分、CloudWatchのコストには注意しないと行けないですが、使い慣れたCloudWatchに集約できる分メリットはそれなりにあるのではないかと思っています。



オフショア開発ならCRAID!

オフショア開発とは、システム開発業務などを海外の開発会社や海外子会社に委託することです。

CRAIDは東証プライム上場のフリービット株式会社の子会社です。CRAIDのオフショア開発拠点「フルスピードテクノロジーズ」は、当初は月間3000億ものリクエスト処理にも対応できる自社システム開発を行うためのオフショア開発部門として始まりました。各グループ会社の開発やクライアント様の受託開発やラボ型開発も多く手掛けております。

CRAIDやオフショア開発に関して、お気軽にお問い合わせください。

この記事を書いた人

社内経歴としては、社内システムの開発・保守から始まり、セブ開発拠点の立ち上げメンバーとしてフィリピン駐在、その後日本に帰国し受託開発やオフショア開発事業に参画し、様々な開発プロジェクトに参加しております。

taroshinをフォローする
オフショア開発環境・プラットフォーム開発・運用ツール
CRAID オフショア開発ブログ
タイトルとURLをコピーしました