【问题标题】:Datadog integration inside docker containersDocker 容器内的 Datadog 集成
【发布时间】:2017-03-10 15:45:24
【问题描述】:

datadog 的新手,所以我真的很困惑。第一次配置既快速又简单。但是,由于我想要一些特定于应用程序的图表,因此对于我当前的情况,它似乎不像以前那么清楚。

我们有一台主机和几台 docker 机器,每个服务一台: - nginx - 清漆 - 阿帕奇 - 数据库(mysql)

我们已经在主机内安装了 datadog 客户端,还安装了 docker 集成,一切正常。 我没有得到的是如何从 apache 或 varnish 或 docker 内的任何服务获取指标。 Reading the docs in varnish 例如你必须执行:

$ sudo usermod -G varnish -a dd-agent

但是,我应该在哪里运行命令? dd-agent 用户只存在于宿主机中,不存在于 docker 容器中。清漆正好相反。

是否需要在每个容器上安装代理?

它会被视为另一个主机定价?

在mysql的情况下,我只需要配置代理:

init_config:

instances:
  - server: localhost
    user: datadog
    pass: <UNIQUEPASSWORD>

    tags:
        - optional_tag1
        - optional_tag2
    options:

但是由于我的主机和容器位于不同的路由中,我是否应该使用代理创建一个新的 docker 容器,以便它可以访问 db 容器(更改服务器字段)? 是否再次被视为另一个主机?

【问题讨论】:

    标签: docker datadog


    【解决方案1】:

    在大多数情况下,datadog 代理通过连接到 URL 端点从集成中检索指标。 nginx、mysql等服务就是这种情况。

    这意味着您可以在主机上只运行一个 datadog 代理,并将其配置为侦听从每个容器公开的服务的 URL 端点。

    例如,假设使用以下命令运行 mysql docker 容器:

    docker run -d \
      --name mysql \
      -p 3306:3306 \
      -e MYSQL_ROOT_PASSWORD=secret \
      -e MYSQL_DATABASE=mySchema \
      mysql
    

    可以在mysql.yaml代理配置中指示宿主机上运行的代理连接容器IP:

    init_config:
    
    instances:
    - server: <container IP>
        user: datadog
        pass: secret
    
        tags:
            - optional_tag1
            - optional_tag2
        options:
    

    Varnish 略有不同,因为代理使用 varnishstat 二进制文件检索指标。根据示例模板:

    为了支持监控作为 Docker 容器运行的 Varnish 实例,我们需要使用在运行容器上执行 docker exec 的脚本来包装命令 (varnishstat)。

    为此,在主机上为容器创建一个包装脚本:

    echo "/usr/bin/docker exec varnish_container_name varnishstat "$@"" > /home/myuser/docker_varnish
    

    然后在varnish.yaml代理配置中指定脚本位置:

    init_config:
    
    instances:
        - varnishstat: /home/myuser/docker_varnish
    

    【讨论】:

      猜你喜欢
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      • 2018-01-27
      • 1970-01-01
      • 2022-08-09
      • 2022-10-04
      • 1970-01-01
      相关资源
      最近更新 更多