2017-08-07 77 views
0

我已经配置了docker-daemon,并且还添加了修改过的auto_conf。我应该如何传递%% host %%变量?如何为容器设置自动发现?

sudo docker run -d --name dd-agent \ 
    -v /var/run/docker.sock:/var/run/docker.sock:ro \ 
    -v /proc/:/host/proc/:ro \ 
    -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ 
    -e API_KEY=XXXXXXXXXXXXXXX \ 
    -e SD_BACKEND=docker \ 
    -e SD_CONFIG_BACKEND=etcd \ 
    -e SD_BACKEND_HOST=XX.XXX.XX.XX \ 
    -e SD_BACKEND_PORT=XXXX \ 
    datadog/docker-dd-agent:latest 

改变etcd.yaml

docker_images: 
    - image1 

init_config: 

instances: 
    - url: "http://XX.XXX.XX.XX:XXXX" 

但是当我尝试做

须藤泊坞窗EXEC -IT DD-剂/etc/init.d/datadog-agent ConfigCheck的

2017-08-07 19:18:37,637 | WARNING | dd.collector | utils.service_discovery.abstract_sd_backend(abstract_sd_backend.py:66) | Failed to interpolate variable %%host%% for the url parameter. Dropping this configuration. 

收藏者日志显示

NotFound: 404 Client Error: Not Found ("No such image: sha256:6d13e6f1665c7abcd9edeba651a1f883ab68dbb73153d6cc55145add585373fc") 
2017-08-08 17:16:11 UTC | ERROR | dd.collector | utils.dockerutil(dockerutil.py:548) | Exception getting docker image name 
Traceback (most recent call last): 
    File "/opt/datadog-agent/agent/utils/dockerutil.py", line 533, in image_name_extractor 
    image_spec = self.client.inspect_image(image) 
    File "/opt/datadog-agent/embedded/lib/python2.7/site-packages/docker/utils/decorators.py", line 21, in wrapped 
    return f(self, resource_id, *args, **kwargs) 
    File "/opt/datadog-agent/embedded/lib/python2.7/site-packages/docker/api/image.py", line 136, in inspect_image 
    self._get(self._url("/images/{0}/json", image)), True 
    File "/opt/datadog-agent/embedded/lib/python2.7/site-packages/docker/client.py", line 178, in _result 
    self._raise_for_status(response) 
    File "/opt/datadog-agent/embedded/lib/python2.7/site-packages/docker/client.py", line 173, in _raise_for_status 
    raise errors.NotFound(e, response, explanation=explanation) 

回答

1

嗯,所以你想使用自动发现来查找哪个容器的dd代理应该运行etcd检查?你正在使用auto_conf文件方法?在那里,你想知道如何应用%%host%%模板变量?

如果这就是你感兴趣的,我想你会希望将其添加到您的etcd.yamlurl线,如图the example file像这样:

docker_images: 
    - etcd 

init_config: 

instances: 
    - url: "http://%%host%%:%%port_0%%" 
+0

没有,没有工作?我有一个容器A可以在ipaddress:port中访问,我正在尝试为该url设置自动发现。但我似乎无法让它工作。 我修改了Apache和etc文件以指向容器映像,然后我给了docker dd-agent映像中的主机和端口。 这是我们如何设置自动发现? – Swat

+2

嗯,我不知道。我认为在这一点上,您可能希望与数据支持团队支持团队([email protected])联系以获得更多的指导意见,他们响应速度非常快,并且非常擅长解决这类问题。 – stephenlechner