自動化SaaSクラウド

Datadog Walk | サーバーの死活監視

Datadogを散歩するように、少しずつ理解を深めていくブログシリーズ「Datadog Walk」。
操作画面や設定例を交えながら、実務で使える知識を解説していきます。

今回は、サーバーの死活監視(Host Monitor の作成)をテーマに紹介。
監視対象の指定やしきい値、通知設定、アラートテストまでを順を追って解説し、障害発生をいち早く検知・共有するための基本的な監視の仕組みを整える方法をまとめています。

はじめに

今回は、監視の基本ともいえる サーバーの死活監視 をテーマに取り上げます。
対象サーバーが稼働しているかどうかを確実に検知することは、どんなシステム運用においても最初の一歩です。Datadog のモニター機能を活用し、アラート通知やしきい値設定を行うことで、障害発生をいち早く察知できるようになります。

Datadog Walk シリーズの次の一歩として、一緒に「監視の基本」を押さえていきましょう。

ホストモニターの作成

Datadog では、モニターを使ってサーバーやサービスの状態を監視します。
モニターは「どのメトリクスを監視するか」「しきい値をどう設定するか」「通知をどう送るか」といった要素を組み合わせて定義します。
死活監視の場合は、特定のホストが Datadog Agent からのメトリクスを一定時間送信していない場合にアラートを出すように設定します。これにより、サーバーがダウンしている、ネットワーク障害で切断されている、といった状況をすぐに検知できます。

  1. Datadog 管理UIから、Monitors > New Monitor をクリックします。

  2. 作成するモニタータイプの選択画面に自動で遷移します。
    サーバーの死活監視ではHost Monitorを利用しますので「Host」をクリックします。

  3. モニター作成画面が表示されます。
    はじめに「① Pick hosts by name or tag」欄で、監視対象のホストを指定します。
    All Monitored Hosts を指定することで、すべてのAgent導入ホストが対象になります。
    (将来的にAgent導入ホストが増えた場合も自動で対象になります)
    尚、特定のタグが付いたホストのみを監視対象としたり、監視から除外するような条件付けも可能です。

  4. 次に「② Set alert conditions」でアラートとする条件を指定していきます。
    まず、Check Alert か Cluster Alert かの選択があります。
    Cluster Alertは、例えば監視対象のホストが10台あった場合に50%(5台)が停止した場合にアラートとするような、監視対象のグループ全体(クラスタ)に対して閾値ベースのアラートを設定したいときに指定します。
    対して、Check Alertは1台でもホストが停止したらアラートとなる指定で通常の死活監視ではこちらを指定します。

  5. アラートをトリガーする粒度を指定します。
    ここではホストごとに停止したらアラートをトリガーしたいため、hostタグを指定します。
    この指定をしないと監視対象ホストが10台の場合、10台すべてが停止しないとアラートがトリガーされません。

  6. アラートをトリガーするしきい値を指定します。
    Defaultでは2分間Agentからのデータ送信がなければアラートがトリガーされるように指定されています。
    尚、2分が最小のしきい値になります。

  7. 新しくDatadog Agentが導入されたホストを検知した際に、そのホストを監視対象として評価を開始するまでの待機時間を指定します。デフォルトでは 60 秒間の遅延が設定されており、この間はアラート評価が行われません。ホストへのAgent導入直後は、Agent設定や他のアプリケーションセットアップなどによって一時的にAgentやサーバーの停止が発生する可能性があります。このDelayを設定することで、そうした初期セットアップ中の一時的な状態変化によって不要なアラートがトリガーされるのを防ぐことができます。

  8. 次に「③ Confiture notification & automations」で通知内容を指定します。
    ここはいくつかの要素がありますので、1つずつ説明していきます。

    まず、図の「サーバー死活監視」と記載している枠が、モニタータイトル(モニター名) かつ メール件名 になります。モニターの名前にもなるため、管理UIからリスト表示された際に何のモニターだか分かりやすいようにすることも考慮して命名することがポイントです。
    下段の枠が通知内容で、いわゆるメール本文(Body)に該当します。
    ※ 日本語OKです



    条件変数
    モニターが取りうるステータスとして、次の4つのステータスがあります。

    ・Alert
    ・Warning
    ・No Data
    ・OK
    ステータス遷移に応じて通知内容を指定することができ、次の条件変数を利用します。

    主な条件変数

    説明

    {{#is_alert}} ~ {{/is_alert}}

    他のステータスから「Alert」に遷移した場合

    {{#is_warning}} ~ {{/is_warning}}

    他のステータスから「Warning」に遷移した場合

    {{#is_no_data}} ~ {{/is_no_data}}

    他のステータスから「No Data」に遷移した場合

    {{#is_recovery}} ~ {{/is_recovery}}

    他のステータスから「OK」に遷移した場合

    {{#is_alert_recovery}} ~ {{/is_alert_recovery}}

    ステータス「Alert」から「OK」に遷移した場合

    Host Monitor でのステータス遷移は Alert と OK になるため、上記例では is_alert / is_alert_recovery を利用しています。
    ※ Datadog社情報 → Variables

    タグ変数
    通知内容には、タグ変数が利用可能です。上記例では {{host.name}} が該当し、実際の通知ではホスト名が代入されます。
    ※ {{ と入力すると、入力可能なタグ変数がリストされます。
    ※ 手順5で指定したタグに関連する変数しか利用できません。

      タグ変数を利用する場合は手順5でタグを指定する必要があります。
    ※ モニタータイトルにタグ変数を利用することも可能です。

    メール通知
    基本的なメール通知を行いたい場合は、@の後ろに通知先のメールアドレスを記載することで通知されます。

    ※アラートメール例(Body)


    ※復旧メール例(Body)

  9. Notification Options 欄では、通知内容にBodyで指定した内容以外の情報(メール宛先やフッター等)を記載するかどうかの指定項目があります。Defaultではすべての情報を付与する指定になっています。
    また、モニタータイトル(メール件名)にタグ情報を付与するかどうかの指定項目があります。Defaultでは有効になっています。

    タグ情報付与設定による違い(例)

    Include triggering tags in notification title メール件名(Alert時)
    有効(Default) Triggerd: サーバー死活監視 on host:cdd6-win01
    無効 Triggerd: サーバー死活監視
  10. Renotification 欄では再通知の設定をすることができます。Alertステータス状態の場合、30分毎に最大5回通知するなど。
    Defaultでは無効(再通知なし)です。

  11. Metadata 欄では、モニターに対して Priority、Tags、Team の情報を付与することができます。Defaultでは指定なしです。

    Priority
    優先度を表す情報でP1~P5まで設定できます。設定するとモニター一覧でPriority でソートできたり、通知件名にPriority情報が付与されるため優先度(緊急度)の把握に役立ちます。
    Tags
    モニターに対してタグ付けすることで、モニターのフィルタリング・分類に役立ちます。

    Team
    モニターの担当チームの明示や、フィルタリング・分類に役立ちます。

  12. Aggregation 欄では、Simple Alert と Multi Alert の選択があります。
    仮に10ホストを監視対象としていてそのうちの1ホストが停止して通知された後に他のホストが停止した場合に通知しないのがSimple Alert、通知するのがMulti Alertです。
    手順5でホスト(hostタグ)ごとのトリガーを指定すると、Multi Alertが自動選択されます。

  13. 「④ Define permissions and audit notifications」欄では、モニターのRead / Write権限をユーザー、チーム、ロールごとに指定することができます。Defaultでは権限指定なしです。
    また、モニターが変更された際の通知を指定することができます。Defaultは通知なしです。有効化した場合の通知先は、モニター作成者と手順8で指定した通知先になります。

  14. 最後に「Save」ボタンをクリックするとモニターが作成されます。

    ※ モニター一覧(Monitors > Monitor List)
      モニターごとのステータスとタイトル(モニター名)が表示されます。

    ※ モニターステータス(上記の一覧からモニターをクリック)
      モニターの対象となっているホストごとのステータス遷移が表示されます。

アラート通知のテスト

モニターを作成したら、必ず アラート通知が正しく動作するかどうかをテスト しておきましょう。
Datadog のモニター設定画面には「Test Notifications」機能が用意されており、実際のアラート発生をシミュレーションして通知先にメッセージを送信できます。

通知が期待どおりの宛先に届くか、メッセージ内容に必要な情報(ホスト名など)が含まれているかを確認します。これにより、いざ障害が発生した際に「通知が来ない」「情報が不足して対応できない」といったトラブルを防ぐことができます

まとめ

今回は、サーバーの死活監視を目的に、Datadog のモニターをゼロから作成し、監視対象の指定、しきい値、通知先・メッセージ、アラートのテストまでを段階的に整えました。これにより、Agent のハートビートが途絶えた際に素早く検知・共有でき、初動対応のスピードと確実性が高まります。

Datadog Walk では、このように実際の画面操作や設定例を交えながら、監視運用に役立つポイントを一歩ずつ整理していきます。

※ 当社の取り組み
Datadogを始めてみたい!という方は東京エレクトロンデバイスでDatadog製品の紹介から技術支援まで対応させて頂ければと思いますので、是非こちらからお問合せ頂ければと思います!

※ 注記
当ブログのコンテンツ・情報について、できる限り正確な情報を提供するように努めておりますが、正確性や安全性を保証するものではありません。情報が古くなっていることもございます。
当サイトに掲載された内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。

この記事に関連する製品・サービス

この記事に関連する記事