繁体   English   中英

无法使用普罗米修斯收集 docker 指标

[英]can't collect docker metrics using prometheus

我想监控 Docker 引擎。 我正在关注“使用 Prometheus 收集 Docker 指标”来配置Docker 守护程序以获取稍后可以使用 Prometheus 收集和分析的 指标

在我的 PC 上(操作系统版本是 CentOS 7.4,Docker 版本是 17.12.0.ce),我已将以下内容粘贴到/etc/docker/daemon.json

{
  "metrics-addr" : "0.0.0.0:9323",
  "experimental" : true
}

然后,启动 Prometheus 实例,发现 Prometheus 和 Docker daemon 连接失败。

错误日志

Get http://localhost:9323/metrics: dial tcp 127.0.0.1:9323: connect: connection refused

我接下来可以做什么?

获取 docker ip 地址

ip addr show docker0    

在 prometherus.yml 配置中输入 docker ip addres

    static_configs:
  - targets: ['172.17.0.1:9323']

在此处输入图片说明

关于你的问题

我接下来可以做什么?

更改/etc/docker/daemon.json的配置后,需要

systemctl daemon-reload
systemctl restart docker 

您可以在此之后检查端口 9323 是否处于LISTEN状态

lsof -Pi TCP -a -c dockerd 

正如你在评论中提到的那样

curl http://$(hostname):9323/metrics  

在您的本地主机上正常工作,这表明您的网络存在问题。

由于 Prometheus 服务通常在其他地方运行,您可以检查是否有从远程机器到您的 Docker 主机的连接。 为此,您可以使用类似

root@prometheusHost:/# nc -vz dockerHost 9323

如果连接被拒绝,例如被防火墙拒绝,它会给你一个提示。

配置 Docker 守护进程

注意: 0.0.0.0即本地机器上的所有 IP 地址

/etc/docker/daemon.json

{
  "metrics-addr" : "0.0.0.0:9323",
  "experimental" : true
}

打开防火墙端口9323 --permanently

$ sudo firewall-cmd --zone=public --permanent --add-port=9323/tcp
success

一些检查

检查,记得列出--permanent配置,否则不会显示

$ sudo firewall-cmd --zone=public --permanent --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: dhcpv6-client http https ssh
  ports: 9323/tcp                            <= OPEN
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

$ sudo lsof -Pi TCP -a -c dockerd
COMMAND     PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
dockerd-c 28157 root   14u  IPv6 30732963      0t0  TCP *:9323 (LISTEN)
...

检查与localhost连接

nc -vz localhost 9323
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to ::1:9323.
Ncat: 0 bytes sent, 0 bytes received in 0.03 seconds.

检查与主机 IP 的连接,例如 10.223.37.14

$ nc -vz 10.223.37.14 9323
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.223.37.14:9323.
Ncat: 0 bytes sent, 0 bytes received in 0.03 seconds.

使用curl检查指标访问

curl http://localhost:9323/metrics

或使用另一台机器的 IP

curl http://10.223.37.14:9323/metrics

如果端口未打开,您将收到拒绝连接

curl http://10.223.37.14:9323/metrics
curl: (7) Failed to connect to 10.223.37.14 port 9323: Connection refused

但是一旦打开,您将能够看到指标

$ curl http://10.223.37.14:9323/metrics
# HELP engine_daemon_container_actions_seconds The number of seconds it takes to process each container action
# TYPE engine_daemon_container_actions_seconds histogram
engine_daemon_container_actions_seconds_bucket{action="changes",le="0.005"} 1
engine_daemon_container_actions_seconds_bucket{action="changes",le="0.01"} 1
engine_daemon_container_actions_seconds_bucket{action="changes",le="0.025"} 1
engine_daemon_container_actions_seconds_bucket{action="changes",le="0.05"} 1
engine_daemon_container_actions_seconds_bucket{action="changes",le="0.1"} 1
engine_daemon_container_actions_seconds_bucket{action="changes",le="0.25"} 1
engine_daemon_container_actions_seconds_bucket{action="changes",le="0.5"} 1
engine_daemon_container_actions_seconds_bucket{action="changes",le="1"} 1
...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM