Я хотел бы собирать метрики докеров удаленно с помощью плагина Telegraf [inputs.docker] из InfluxData на устройстве A. Telegraf и InfluxDB сами являются контейнером докеров на другом устройстве B. Оба устройства используют ОС Debian Linux.
Итак, как это можно сделать? Я прочитал множество сайтов с советами, но ни один из них не работал. Может я что-то упустил ...
Я попытался настроить файл службы докеров для systemd следующим образом:
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:2375
затем я записал IP как переменную среды, подобную этой, в A export DOCKER_HOST=tcp://IP-of-device-A:2375
и просто перезапустили устройство A с shutdown -r
. с участием sudo netstat -tunlp | grep docker
Я проверил, была ли сделана эта конфигурация. Когда я делаю curl http://IP-of-device-A:2375/images/json
на устройстве А работает нормально. Но на B я получил docker: Cannot connect to the Docker daemon at tcp://IP-of-device-A:2375. Is the docker daemon running?.
Что пошло не так?
Я также поместил эти команды в свою службу докеров в systemd
Environment="HTTP_PROXY=http://IP-of-device-A:2375"
Environment="HTTPS_PROXY=http://IP-of-device-A:2375"
Environment="NO_PROXY=localhost,127.0.0.1"
Но похоже, что это не работает.
Вот также конфигурация, которую я сделал в telegraf.conf
[[inputs.docker]]
# ## Docker Endpoint
# ## To use TCP, set endpoint = "tcp://[ip]:[port]"
# ## To use environment variables (ie, docker-machine), set endpoint = "ENV"
#endpoint = "unix:///var/run/docker.sock"
endpoint = "tcp://IP-of-device-A:2375"
#
# ## Set to true to collect Swarm metrics(desired_replicas, running_replicas)
gather_services = false
#
Как я могу подключиться от B к демону докера на A? И как я могу собрать на B с помощью Telegraf-docker-container метрики докеров на A?
Кто-нибудь знает как это сделать?
ps: Я знаю, что с портом 2375 я использую небезопасное соединение, но я просто хотел начать с максимально простого. Так что пока этот маршрут подключения мне подходит.