技術検証：AWS上のDatadog Agent導入済みWindowsサーバーで死活監視を実施し、アラートメールを設定してみた

## はじめに
Datadogは、インフラやアプリケーションの監視を一元管理できるプラットフォームで、AWSやGCP、Azureとも簡単に統合できます。

:::note warn
**今回は、Datadog Agentの導入が完了したので、実際に監視設定を作成する手順をまとめます。**
:::

システムの状態をリアルタイムで把握したい、インシデント対応をスムーズにしたいと考えている場合は、***無料トライアルで試してみるのもおすすめです。***

## 書こうと思ったきっかけ
受講しているITスクールのチーム開発において、今回は運用監視をDatadogで一元管理することにしました。

![Screenshot 2025-01-25 at 1.44.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/c06d3316-95b7-4b5d-61e1-67827deee5e2.png)

一部AWSのCloudWatchやLambdaといったサーバーレスアーキテクチャを構築していますが、基本的なリソース監視やログ監視はDatadogを活用する方針です。

**その中で、今回トライアル期間を活用して実装を進めてみようと思い、改めてDatadogについてキャッチアップしていきます。**

## Datadogとは？
Datadog は、**クラウドやオンプレミス環境の 監視・分析 を行うための SaaS型オブザーバビリティプラットフォーム** です。

![Screenshot 2025-01-30 at 16.24.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/baef2fa2-d514-c1e6-1c87-77008f6818c2.png)
引用画像：https://www.datadoghq.com/ja/blog/network-performance-monitoring/

サーバー・コンテナ・アプリケーション・ネットワーク・セキュリティ など、システム全体のパフォーマンスを リアルタイムに可視化・監視 できます。

**Datadogに関する基本的な内容については、過去の記事でまとめていますので、そちらも参考にしてみてください。**

https://qiita.com/free-honda/items/b2b106918c78c516382c

## 実際にやってみた
ここでは、AWS上のWindowsサーバーにDatadog Agentが既に導入されていることを前提に進めます。

まだ導入が完了していない場合は、以下の記事で詳しく解説しているので、参考にしてください。

**Datadog Agentの導入手順**

https://qiita.com/free-honda/items/baa7dad12e43906a9636

### 監視対象の確認
まず、Datadog Agentが正しく動作しているかを、Datadogのダッシュボードで確認します。

**手順**
1. **Datadogのダッシュボードにログイン**
2. **「Infrastructure」 → 「Hosts」** を開く
3. **EC2インスタンスがリストに表示されていることを確認**

**ホスト一覧のスクリーンショット**

![Screenshot 2025-01-31 at 5.21.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/71e05e17-137c-cfb0-7b5c-5b8753a317c8.png)

**さらに**
- **CPU使用率やメモリ使用率をリアルタイムで確認**
- **カスタムダッシュボードを作成して、必要なメトリクスを整理**
- **アラート設定で異常を検知**

**リソースモニタリング画面のスクリーンショット**

![Screenshot 2025-01-31 at 5.22.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/bdd97e2f-69e1-9467-b656-10d7e85f7152.png)

### そもそも、監視定義（Monitor）とは？
監視定義（Monitor）とは、特定のメトリクス（CPU使用率、メモリ使用量、ネットワークトラフィックなど）に対してしきい値を設定し、異常時にアラートを発生させる機能です。

**Datadogでは、さまざまな種類のモニターを作成し、システムの異常をリアルタイムで検知することが可能です。**

**主な監視タイプ（Monitor Types）**

| 監視タイプ | 説明 |
|------------|------|
| **メトリクスモニター** | CPU使用率やメモリ使用量など、リアルタイムのメトリクスを監視 |
| **ログモニター** | 指定した条件のログが記録された場合にアラートを発行 |
| **APMモニター** | アプリケーションのリクエスト遅延やエラーレートを監視 |
| **ネットワークモニター** | サーバーやAPIの疎通を監視（Ping監視、HTTP監視など） |
| **インテグレーションモニター** | AWS、Azure、GCPなどのクラウドリソースの異常を監視 |

### Datadogで監視定義（モニター）を作成する方法
Datadogでは、モニター（Monitor）を作成することで、システムの異常を検知し、アラートを発生させることができます。

:::note info
***ここでは、ホストの死活監視（Host Monitor） を作成する方法を紹介します！***
:::

まず、Datadogのダッシュボードにログインし、「Monitors」メニューを開いて「New Monitor」をクリックします。

**次に、「Host Monitor」を選択することで、ホストの状態を監視する設定を開始できます。**

![Screenshot 2025-01-31 at 5.33.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/551afa79-60c7-a209-ea8b-81c5b1b8f409.png)

**監視したいホストを `host` タグで指定**

Datadogでは、「**Pick hosts by name or tag**」 を使用して監視対象のホストをタグで指定できます。

**手順**
1. **Datadogのダッシュボードにログイン**
2. **「Monitors」 → 「New Monitor」** を選択
3. **「Pick hosts by name or tag」 で監視対象のタグを指定**
4. **例: `host:my-server`（特定のホストを指定）**

![Screenshot 2025-01-31 at 5.35.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/8fca2bec-f29b-879d-87d2-04530c8ee64b.png)

これにより、特定のサーバーを対象とした監視を簡単に設定できます。

:::note warn
**ポイント**

- **特定のタグを持つホストのみを監視対象にする場合** は、`host` タグを使用する。
- 監視対象を絞ることで、**不要なアラートを防ぎ、効率的な監視が可能**。
:::

今回は、アラートの条件はデフォルトの設定を使用し、カスタムメッセージを以下のように作成して入力しました。

![Screenshot 2025-01-31 at 5.42.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/36b0688e-c3cb-94c6-7587-e083b153ec5a.png)

以下のメッセージは、一例としてのテンプレートになります。

```html
🚨【アラート】ホスト {{host.name}} が応答しません 🚨

📌 **監視対象**: {{host.name}}
📌 **IP アドレス**: {{host.ip}}

{{#is_alert}} 
⚠️ **可能な原因**
1. サーバーがダウンしている可能性があります。
2. ネットワーク接続に問題が発生している可能性があります。
3. Datadog Agent が停止している可能性があります。

🛠 **対応方法**
- AWS マネジメントコンソールで該当ホストの状態を確認  
- SSH で接続できるかチェック  
- Datadog Agent のステータスを確認 (`sudo systemctl status datadog-agent`)  

🔍 **追加情報**
- Datadogダッシュボード: [ホスト詳細](https://app.datadoghq.com/infrastructure?filter=host:{{host.name}})
- Ops Guide: [トラブルシューティング手順](http://ops.myorg.com/guide)

🔔 **通知**: @xxx@gmail.com 
{{/is_alert}}
```

このテンプレートを活用することで、障害発生時に迅速に対応できるようになります。

***必要に応じて、環境に合わせたメッセージのカスタマイズを行ってください。***

### 実際にOSを停止してみた
Datadogのホスト監視（Host Monitor）の動作を確認するために、WindowsサーバーのOSを停止するテストを実施しました。

まず、OSを停止する前の状態では、監視対象のホストが正常に動作していることを示す緑色のマークが表示され、正常であることを確認しました。

![Screenshot 2025-01-31 at 5.45.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/fb4aee79-f104-1542-b6c1-7a10cee62bb7.png)

次に、AWSのマネジメントコンソール上から対象のWindowsサーバーのOSを停止しました。

![Screenshot 2025-01-31 at 5.46.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/a745d6e5-27ed-9520-a6ed-a9daf5b81e6d.png)

すると、Datadogの監視結果が更新され、ホストの状態が緑色マークから赤色マークに変わり、アラートが発生したことを確認しました。

![Screenshot 2025-01-31 at 5.47.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/6ffc7d25-9e68-2789-02e8-94c51e4d84ed.png)

その結果、想定通りのアラートメールが届いていることが確認できたため、今回の検証は成功と言えます。

**受信したアラートメール**

![Screenshot 2025-01-31 at 5.48.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3662571/7af02d32-155e-db1c-967f-4a8a1fed0887.png)

## まとめ
ここまで読んでいただきありがとうございました。

:::note info
***すべての検証が想定通りにスムーズに進み、Datadogを活用したホストの死活監視が正しく機能することを確認できました。***
:::

次回は、実際にログ監視の設定を行い、特定のエラーログを検知する監視定義を作成 していこうと思います。

***興味のある方は、ぜひ引き続きご覧ください！***