Netdata в среде роя докеров - PullRequest
       33

Netdata в среде роя докеров

0 голосов
/ 04 января 2019

Я новичок в Netdata, а также в Docker Swarm.Некоторое время я запускал Netdata на отдельных хостах, но теперь пытался передавать Netdata с рабочих на узел менеджера в среде роя, где менеджер также должен действовать как центральный экземпляр Netdata.Я собираюсь отслеживать только данные из менеджера.

Вот мой файл компоновки для стека:

version: '3.2'

services:
  netdata-client:
    image: titpetric/netdata
    hostname: "{{.Node.Hostname}}"
    cap_add:
      - SYS_PTRACE
    security_opt:
      - apparmor:unconfined
    environment:
      - NETDATA_STREAM_DESTINATION=control:19999
      - NETDATA_STREAM_API_KEY=1x214ch15h3at1289y
      - PGID=999
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - netdata
    deploy:
      mode: global
      placement:
        constraints: [node.role == worker]

  netdata-central:
    image: titpetric/netdata
    hostname: control
    cap_add:
      - SYS_PTRACE
    security_opt:
      - apparmor:unconfined
    environment:
      - NETDATA_API_KEY_ENABLE_1x214ch15h3at1289y=1
    ports:
      - '19999:19999'
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - netdata
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]

networks:
  netdata:
    driver: overlay
    attachable: true

Netdata в менеджере работает нормально, а контейнер работает на одном работнике.узел, на котором я тестирую.Судя по выводу журнала, он работает нормально и собирает имена из контейнеров докера, работающих так же, как и в локальной среде.

Проблема в том, что он не может подключиться к службе netdata-central, работающей в диспетчере.

Это сообщение об ошибке:

2019-01-04 08:35:28: netdata INFO  : STREAM_SENDER[7] : STREAM 7 [send to control:19999]: connecting...,
2019-01-04 08:35:28: netdata ERROR : STREAM_SENDER[7] : Cannot resolve host 'control', port '19999': Name or service not known,

не знаю, почемуне могу разрешить имя хоста, думал, что так должно работать в оверлейной сети.Может быть, есть лучший способ подключиться и не полагаться на имя хоста?

Любая помощь приветствуется.

РЕДАКТИРОВАТЬ: как может возникнуть этот вопрос - брандмауэр (UFW) на управляющем хостенеактивен, также я думаю, что сообщение об ошибке явно указывает на проблему с разрешением имени.

1 Ответ

0 голосов
/ 19 марта 2019

Ваш API-ключ имеет неправильный формат. Это должен быть GUID.Вы можете создать его с помощью команды "uuidgen" ...

https://github.com/netdata/netdata/blob/63c96aa96f96f3aea10bdcd2ecd92c889f26b3af/conf.d/stream.conf#L7

...