先日、Datadogで設定したモニターからSlackに通知を送信する際、通知内でインスタンスIDではなく、わかりやすいインスタンス名を表示したいという課題に直面しました。この記事では、その解決方法を共有します。
問題の背景
Datadogのモニターを設定し、アラートをSlackに通知すると、デフォルトではホスト名がインスタンスIDとして表示されます。これではどのインスタンスで問題が発生したのか直感的に把握しづらいです。
解決策
Datadog Agentが使用するホスト名は、以下の優先順位で決定されます。
- agent-hostname: Datadog Agentの設定ファイルで明示的に設定されたホスト名(
ip-
やdomu
で始まらない場合)。 - hostname: システムのDNSホスト名(EC2のデフォルトでない場合)。
- instance-id: AgentがEC2のメタデータエンドポイントにアクセスできる場合。
- hostname: EC2のデフォルトのDNSホスト名。
現在、インスタンスIDがホスト名として設定されているため、Datadog Agentの設定ファイルでホスト名を指定することで解決できます。
手順
- Datadog Agentの設定ファイルを編集 Datadog Agentのメイン設定ファイルである
datadog.yaml
を開き、以下のようにhostname
を設定します。hostname: <あなたのインスタンス名>
<あなたのインスタンス名>
を実際のホスト名に置き換えてください。 - Datadog Agentの再起動 設定を反映させるため、Datadog Agentを再起動します。
- Linuxの場合:
sudo systemctl restart datadog-agent
- Windowsの場合: サービスマネージャから
DatadogAgent
サービスを再起動します。
- Linuxの場合:
- 変更の確認 Datadogのダッシュボードでホスト名が更新されていることを確認します。また、Slack通知でもインスタンス名が表示されていることを確認します。
まとめ
Datadog Agentの設定ファイルでhostname
を指定し、Agentを再起動することで、Slack通知に表示されるホスト名をインスタンス名に変更することができました。同じ問題でお困りの方の参考になれば幸いです。
コメント