2017-08-07 2 views
0

Ich habe den Docker-Daemon konfiguriert und auch die Auto_conf geändert. Wie sollte ich die %% host %% Variable übergeben?Wie wird die automatische Erkennung für einen Container eingerichtet?

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 

änderte die etcd.yaml

docker_images: 
    - image1 

init_config: 

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

aber wenn ich versuche

sudo Docker exec -es dd-agent /etc/init.d/datadog-agent configcheck

zu tun
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. 

die Kollektorprotokolle zeigen

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) 

Antwort

1

hmm, du versuchst also mit autodiscovery herauszufinden, in welchem ​​container der dd-agent die etcd-überprüfung ausführen soll? und Sie verwenden den Ansatz der auto_conf-Dateien? Und Sie fragen sich, wie Sie die Vorlagenvariable %%host%% anwenden können?

Wenn das, was Sie interessiert sind, ich glaube, Sie werden es in Ihrem etcd.yaml auf der url Linie hinzufügen möchten, wie in the example file wie so gezeigt:

docker_images: 
    - etcd 

init_config: 

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

keine, die nicht funktioniert? Ich habe einen Container A, der in ipaddress: port zugänglich ist, ich versuche, automatische Erkennung für diese URL einzurichten. aber ich scheine, ich kann es nicht funktionieren lassen. Ich modifizierte die Apache und etc Datei, um auf das Containerbild zu zeigen, und dann gab ich den Host und den Port im Andockfenster dd-agent image. ist dies wie wir Auto-Discovery einrichten? – Swat

+2

hmm, ich weiß nicht. Ich denke an dieser Stelle möchten Sie vielleicht das datadog Support Team ([email protected]) kontaktieren, um gezielter zu beraten, sie sind sehr reaktionsfreudig und sind sehr gut in der Fehlersuche. – stephenlechner

Verwandte Themen