mackerelを用いたAWS EC2 リソースの監視とアラート発生時のSlack 通知


はじめに

本記事では、SaaS型のサーバ監視サービスであるMackerelを用いて、EC2インスタンスのリソースを監視し、アラートをSlack通知する方法を記載します。


Mackerelアカウントの作成

Mackerelのアカウントが未作成であれば、ココからアカウントを作成


EC2インスタンスへのMackerelエージェントのインストール


  1. MackerelのダッシュボードでHostsを選択し、「エージェントをインストール」をクリック

    mack1.png


  2. インストール対象を選択すると、コマンド例(赤枠。API Keyは省略)が表示されるので、監視対象とするEC2インスタンス上でコマンドを実行。

    これでエージェントのインストールは完了。

    aws.png



Slackでの通知設定

1.アラートを通知するSlackワークスペースのApp管理画面へ移動。(https://[your-workspace-name].slack.com/apps/manage)

2.「Appディレクトリを検索」のテキストボックスに-> 「Incoming Webhook」と入力し、設定を追加。

3. アラートを通知したい、Slackのチャネルを選択し、「Incoming Webhookインテグレーションの追加」をクリック。

webhook.png

4. Mackerel上の設定で必要となるので、Webhook URL(赤枠)を控えておく

hook2.png


Mackerelでの通知設定


  1. MackerelのダッシュボードでMonitorsを選択し、「チャンネル設定」->「通知チャンネルを追加」-> Slackを選択し、チャンネル名やアラートメッセージを入力。URL項目には、先ほど控えた Webhook URLをペーストし、「作成」をクリック。
    slack2.png


Mackerelでの監視ルール作成


  1. MackerelのダッシュボードでMonitorsを選択し、「監視ルール」を追加をクリック

  2. 以下の画面の通り設定。加えて、任意の監視ルール名を入力し、「作成」ボタンをクリック

(※今回はアラート通知を行うテストであるため、閾値や平均値監視はかなり低めに設定。運用時は適宜パラメータを見直す必要がある)

rule.png


通知の確認

上記の監視ルールに基づき、閾値を超えた場合、Slackに通知がくることを確認

notification.png