我对 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 工作正常,容器在我正在测试的一个工作节点上运行。根据日志输出,它似乎运行良好,并且像在本地环境中一样从运行的 docker 容器中收集名称。
问题是它无法连接到管理器上运行的 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)处于非活动状态,我也认为错误消息清楚地指出了名称解析的问题。