Amazon Lightsail のメトリクスアラームの通知を Slack に送っていたのですが、デフォルトだと通知に気づきにくく、どのインスタンスのアラームか分かりにくかったので、Datadog でカスタマイズしてみました!
| Before | After |
|---|---|
![]() |
![]() |
この記事ではその方法を紹介します!!
Amazon Lightsail のメトリクスアラームの通知
最初に Amazon Lightsail のメトリクスアラームの通知機能について紹介します。
Amazon Lightsail は「バースト」という概念があり、CPU 使用率が一定を超えるとバーストキャパシティを消費し始めます。
バーストキャパシティが尽きるとインスタンスのパフォーマンスが低下するので、CPU使用率の上昇やバーストキャパシティの低下を検知できるようにしておきたいです。Lightsail にはそれらのメトリクスが一定を超えた際に通知できるアラーム機能があるのですが、通知方法が限られています。
通知は、Lightsail コンソールに表示されるバナー、メールアドレスに送信される メール、携帯電話番号に送信される SMS テキストメッセージです。
SMS テキストメッセージ機能は一時的に無効になっており、現在、Lightsail リソースを作成できる AWS リージョン ではサポートされていません。
実質、メールアドレスを登録してメールで通知を受け取る方法しかありません。
幸いにも、Slack には特定のチャンネルにメールを送信する方法があるので、それを使えば Slack で通知することも可能です。
ですが、以下のように詳細を開かないとメールの件名とメッセージの一部しか見えないため、気づきにくく内容の確認も手間です。
Datadog でカスタマイズ
カスタマイズのおおまかな流れは以下のようになっています。
- Lightsail のアラームのメールを Datadog のイベントとして受け取る
- パイプライン機能でメールの内容から必要な情報を取り出す
- イベントをトリガーとして Slack に通知を送るモニターを作成
それぞれ説明していきます。
Lightsail のアラームのメールを Datadog のイベントとして受け取る
Datadog にはイベント管理という機能があり、様々な通知をDatadogのイベントとして収集して管理することができます。メールもイベントとして扱うことができるので、これを利用します。
Datadog の設定ページからイベント用のメールアドレスを作成します。Tags に適当なタグを設定しておくと、イベントを探しやすくなるので設定しておきましょう。
Lightsail 側でメールアドレスを登録すると、メールアドレス確認のメールが Datadog に届き、イベントとして表示されるので、リンクをクリックして確認を完了させましょう。(Verified が Yes になれば設定完了です)
メールアドレス設定が完了すると、Lightsail から届いたアラームが以下のようにイベント一覧に表示されます。
パイプラインでメールの内容から必要な情報を取り出す
次のステップで Datadog のモニターをつくるのですが、そのままだとモニターを作りづらいのでメールの本文から必要な情報(インスタンス名、メトリクスの種類、状態)を取り出しせるようにしておく必要があります。
Datadog はパイプラインを作成すれば特定のイベントをプロセッサーで加工できます。
イベントの設定ページからパイラインを作成します。メールアドレス作成時に指定したタグでフィルターすると、Lightsail のアラームのイベントのみを対象としたパイプラインになります。
作成したパイプラインで Grok パーサー を設定します。詳細は省きますが、以下のように設定したらメトリクス名(metric_name)、状態(state)、インスタンス名(resource_name)が取り出せるようになりました。
rule %{regex(".*"):other_text}entered the %{word:state} %{regex(".*"):other_text}- MonitoredResourceName: %{regex(".*"):resource_name}\n- C%{regex(".*"):other_text}- MetricName: %{regex(".*"):metric_name}\n- P%{regex(".*"):other_text}
イベント一覧から、適当なイベントを選択して Event Attributes に表示されていれば設定完了です。
イベントをトリガーとして Slack に通知を送るモニターを作成
Datadog の モニター 機能を使うと、メトリクスやイベントをトリガーとして様々な通知を送ることができます。今回は、上記で作成したLightsail からのアラームのイベントをトリガーとして、Slackに通知を送ります。
先ほどのパイプラインで取り出した値を利用して、 [ALARM イベントの数] - [OK イベントの数] > 0 の場合にアラートがなるように設定しました。
あとは Slack に通知を送る設定をして完成です。(アラームが鳴った時 Slack でグループにメンションして欲しかったので、<!subteam^XXXXXXXXX> 記法を使用しています。)
これで、Slack にメンション付きでわかりやすい通知が流れるようになりました ![]()









