概要

はじめに

  • 今回は、DatadogのDocker Integrationを有効化する方法をご紹介します。
  • Datadog の概要は、下記のログミーTechで公開されている服部さんの記事を参照ください。
2018年9月22日、Japan Azure User Groupが主催するイベント「Japan Azure User Group 8周年イベント」が開催されました。JAZUG設立8周年を記念した本イベント。Microsoft Azureを用いてサービス開発を行うエンジニアたちが一堂に会し、自身の経験と知見を元に新たな...

Datadogで実現するDockerの監視

  • DatadogのIntegrationを利用して、Dockerデーモンおよびコンテナの死活監視が可能です。Datadogのドキュメントは、以下を参照。
  • Dockerの場合は “docker.d” のconf を使用します。
Datadogが大規模なクラウドのモニタリングサービスをリードします。

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 server
  2. Add the user running the Agent to docker’s group.
    usermod -a -G docker dd-agent
  3. Configure the Agent to connect to Docker
    Edit conf.d/docker.d/docker_daemon.yaml
    init_config:
    instances:
    – url: “unix://var/run/docker.sock”
    new_tag_names: true
  4. Restart the Agent
  5. 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 を返します。

元記事はこちら

DatadogでDocker Integrationを有効化する方法