我对Netdata和Docker Swarm还是很陌生。我在单个主机上运行Netdata一段时间,但现在尝试在集群环境中将Netdata从工作者流式传输到管理器节点,在该环境中管理器也应充当中央Netdata实例。我的目标是仅监视管理器中的数据。
这是我的堆栈文件:
subprocess.check_output
管理器上的Netdata正常运行,并且容器在我正在测试的一个工作节点上运行。根据日志输出,它似乎运行良好,并从在本地环境中运行的docker容器收集名称。
问题是它无法连接到管理器上运行的netdata-central服务。
这是错误消息:
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
不确定为什么它不能解析主机名,以为它应该在覆盖网络上以这种方式工作。也许有更好的连接方式而不依赖主机名?
感谢您的帮助。
编辑:可能会出现此问题-控制主机上的防火墙(ufw)处于非活动状态,我也认为错误消息明确指出了名称解析问题。
答案 0 :(得分:0)
您的API密钥格式错误。必须是GUID。您可以使用“ uuidgen”命令生成一个...
答案 1 :(得分:0)
在最新图像中,环境变量不起作用。 解决方案是为流创建一个配置文件。 我的工作撰写文件是:
version: '3.7'
configs:
netdata_stream_master:
file: $PWD/stream-master.conf
netdata_stream_client:
file: $PWD/stream-client.conf
services:
netdata-client:
image: netdata/netdata:v1.21.1
hostname: "{{.Node.Hostname}}"
depends_on:
- netdata-central
configs:
-
mode: 444
source: netdata_stream_client
target: /etc/netdata/stream.conf
security_opt:
- apparmor:unconfined
environment:
- PGID=999
volumes:
- /proc:/host/proc:ro
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /sys:/host/sys:ro
- /var/run/docker.sock:/var/run/docker.sock
deploy:
mode: global
netdata-central:
image: netdata/netdata:v1.21.1
hostname: control
configs:
-
mode: 444
source: netdata_stream_master
target: /etc/netdata/stream.conf
security_opt:
- apparmor:unconfined
environment:
- PGID=999
ports:
- '19999:19999'
volumes:
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /var/run/docker.sock:/var/run/docker.sock
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]