簡體   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