はじめに
Datadogは、インフラやアプリケーションの監視を一元管理できるプラットフォームで、AWS、GCP、Azureとも簡単に統合できます。
今回は、Datadog Agentの導入が完了したので、実際に監視設定を作成する手順をまとめます。
システムの状態をリアルタイムで把握したい、インシデント対応をスムーズにしたいと考えている場合は、
無料トライアルで試してみるのもおすすめです!
書こうと思ったきっかけ
受講しているITスクールのチーム開発において、今回は運用監視をDatadogで一元管理することにしました。
一部AWSのCloudWatchやLambdaといったサーバーレスアーキテクチャを構築していますが、基本的なリソース監視やログ監視はDatadogを活用する方針です。
その中で、今回トライアル期間を活用して実装を進めてみようと思い、改めてDatadogについてキャッチアップしていきます。
Datadogとは?
Datadog は、クラウドやオンプレミス環境の 監視・分析 を行うための SaaS型オブザーバビリティプラットフォーム です。
引用画像:https://www.datadoghq.com/ja/blog/network-performance-monitoring/
サーバー・コンテナ・アプリケーション・ネットワーク・セキュリティ など、システム全体のパフォーマンスを リアルタイムに可視化・監視 できます。
Datadogに関する基本的な内容については、過去の記事でまとめていますので、そちらも参考にしてみてください。
実際にやってみた
ここでは、AWS上のWindowsサーバーにDatadog Agentが既に導入されていることを前提 に進めます。
まだ導入が完了していない場合は、以下の記事で詳しく解説しているので、参考にしてください。
Datadog Agentの導入手順
事前準備
Datadog Agent の実行ユーザー(例: ddagentuser
)に、ログファイルを読み取る権限を付与 する必要があります。
そのため、ローカルの Administrators グループに追加 しました。
以下のように設定しました。
Datadog Agent のログ監視を有効化
Datadog Agent のログ収集が有効になっているか確認し、設定を行います。
Datadog のメイン設定ファイル (datadog.yaml
) を編集し、ログ収集を有効化します。
設定ファイルを開く
以下のコマンドを実行して、設定ファイルを開きます。
notepad "C:\ProgramData\Datadog\datadog.yaml"
設定の変更
設定ファイル内で、以下の行を追加または変更します。
logs_enabled: true
変更を保存したら、Datadog Agent を再起動 します。
restart-service datadogagent
再起動時のエラー対応
Windows Server で restart-service datadogagent
コマンドを実行すると、以下のエラーが発生することがあります。
Cannot stop service 'Datadog Agent (datadogagent)' because it has dependent services.
It can only be stopped if the Force flag is set.
このエラーは、Datadog Agent に依存する別のサービスがあるため、通常の方法では停止できない ことを意味します。
そのため、依存するサービスも含めて強制的に再起動する必要があります。
restart-service datadogagent -Force
※注意:
-Force
オプションを使用すると、Datadog Agent に依存するサービスも強制的に停止される可能性があるため、事前に datadogagent に依存するサービスを確認することをおすすめします。
監視対象のログファイルを設定
次に、デスクトップ上のログファイルを監視対象として設定 します。
Datadog の conf.d
ディレクトリ内に、ログ監視用の設定ファイルを作成します。
設定ファイルを作成(custom_log.d/conf.yaml
)
以下のコマンドを実行し、ログ監視用の設定ファイルを開きます。
notepad "C:\ProgramData\Datadog\conf.d\custom_log.d\conf.yaml"
設定を追加
以下の内容を conf.yaml
に追加し、保存します。
logs:
- type: file
path: "C:/Users/Administrator/Desktop/test.log"
service: custom-app
source: custom_log
log_processing_rules:
- type: include_at_match
name: "error_filter"
pattern: "ERROR"
** 設定のポイント**
- 特定のログファイルを
path
で指定 log_processing_rules
を使用して、"ERROR" を含むログのみをDatadogに送信- 不要なログを除外することで、ログデータ量を最適化
設定を保存し、Datadog Agent を再起動
設定を反映させるため、Datadog Agent を再起動します。
restart-service datadogagent
Datadog でログ監視ルール(Monitor)を作成
Datadog のダッシュボードで、"ERROR" を含むログが記録された際にアラートを発生 させるように設定します。
Monitor の作成
- Datadog ダッシュボードにログイン
- 「Monitors」 → 「New Monitor」 をクリック
- 「Log Monitor」 を選択
クエリの入力
検索バーに以下のクエリを入力し、"ERROR" を含むログのみを監視対象 にします。
source:custom_log "ERROR" host:xxx
アラートの条件を設定
- トリガー条件:
"ERROR"
のログが 1 回でも発生した場合にアラートを発生 - 通知の設定: メール、Slack などの通知先を指定
アラートメッセージのテンプレート
以下は、一例としてのアラートメッセージのテンプレートになります。
🚨【アラート】ログファイルに "ERROR" が検出されました 🚨
📌 **発生ホスト**: {{host.name}}
📌 **ログパス**: C:\Users\Administrator\Desktop\test.log
🛠 **対応方法**
1. ログファイルを確認し、"ERROR" の内容を調査
2. システムやアプリケーションの状態を確認
3. 必要に応じて修正作業を実施
🔍 **詳細確認**
- Datadog ログビュー: [ログの詳細](https://app.datadoghq.com/logs)
- Ops Guide: [対応手順](http://ops.myorg.com/guide)
🔔 **通知先:** @xxx
上記以外は特に変更せず、デフォルトの設定のまま進めました。
ログファイルに "ERROR" の文字列を出力してみた
ここでは、以下のように echo
コマンド を使って、あらかじめ準備しておいたログファイルに "ERROR" を出力しました。
echo "ERROR" >> "C:\Users\Administrator\Desktop\test.log"
実際の出力画面
Datadog管理コンソール側で確認してみた
Datadog の 「Logs」メニュー で、"ERROR" を含むログが表示されているか確認しました。
すると、Datadog の監視結果が更新され、ホストの状態が緑色マークから赤色マークに変化し、アラートが発生した ことを確認しました。
その結果、想定通りのアラートメールが届いていることを確認 できたため、今回の検証は成功と言えます。
受信したアラートメール
まとめ
Windows サーバー上で Datadog を使い、デスクトップ上のログファイルを監視し、"ERROR" を含むログを検出してアラートを発生させる方法 を解説しました。
今回も少し苦戦しましたが、最終的に うまく実装できて一安心 しています。
次回は、他のサービス監視やプロセス監視の設定 についても試していこうと思いますので、興味のある方はぜひ読んでみてください!