DatadogでDocker Integrationを有効化する方法
Contents
概要
はじめに
- 今回は、DatadogのDocker Integrationを有効化する方法をご紹介します。
- Datadog の概要は、下記のログミーTechで公開されている服部さんの記事を参照ください。
Datadogで実現するDockerの監視
- DatadogのIntegrationを利用して、Dockerデーモンおよびコンテナの死活監視が可能です。Datadogのドキュメントは、以下を参照。
- Dockerの場合は “docker.d" のconf を使用します。
Docker Integrationのインストール
- 先ず、Integrations → Integrations にて、Availableの一覧から「Docker」を選択して、「Install」を押します。
- Integrationをインストールしただけでは、「No data received」となり、まだ監視対象のサーバーから情報を取得できていません。
- DockerのIntegrationには、下記の説明があります。dd-agentユーザーの設定変更、conf.yamlの作成が必要となる様ですね。
1. Make sure that Docker is installed and running on your server2. Add the user running the Agent to docker’s group.usermod -a -G docker dd-agent3. Configure the Agent to connect to DockerEdit conf.d/docker.d/docker_daemon.yamlinit_config:instances:– url: “unix://var/run/docker.sock"new_tag_names: true4. Restart the Agent5. Execute the Agent status command and verify that the integration check has passed. Look for docker under the Checks section.
- 以下は実際のIntegrationの説明画面です。
dd-agentユーザーの設定変更
- idコマンドを実行し、dd-agentユーザーの所属するグループを確認します。現在プライマリグループにdd-agentのみ所属しています。
- usermodコマンドを使用して、dd-agentユーザーのセカンダリグループを設定します。
- /etc/group, idコマンドより、セカンダリグループが追加されていることを確認します。
$ id -a dd-agent
uid=498(dd-agent) gid=496(dd-agent) groups=496(dd-agent)
$ grep docker /etc/group
docker:x:497:
$ sudo usermod -a -G docker dd-agent
$ grep docker /etc/group
docker:x:497:dd-agent
$ id -a dd-agent
uid=498(dd-agent) gid=496(dd-agent) groups=496(dd-agent),497(docker)
conf.yamlを作成する
- conf.yamlを作成します。以下に、サンプルを記載します。
init_config:
instances:
- url: "unix://var/run/docker.sock"
new_tag_names: true
conf.yamlを配置する
- conf.yaml を/etc/datadog-agent/conf.d/docker.d配下に配置します。
- datadog-agent.serviceを再起動します。
$ cd /etc/datadog-agent/conf.d/docker.d
$ sudo vi conf.yaml
$ sudo systemctl restart datadog-agent.service
Datadogでmonitor を作成する
- monitor typeに「Metric」を選択し、monitorを作成します。
- メトリクスの候補から「docker.service_up」、「docker.container_health」を選択します。
- 以下、メトリクスの説明です。
- docker.service_up: Agent が Docker デーモンからコンテナのリストを収集できない場合は、
CRITICAL
を返します。それ以外の場合は、OK
を返します。 - docker.container_health: このサービスチェックは、Agent v5 でのみ使用できます。コンテナが正常でない場合は
CRITICAL
、健全性が不明な場合はUNKNOWN
、それ以外の場合はOK
を返します。 - docker.exit: コンテナが 0 以外の終了コードで終了した場合は、
CRITICAL
を返します。それ以外の場合は、OK
を返します。
- docker.service_up: Agent が Docker デーモンからコンテナのリストを収集できない場合は、