Ubuntu
HTTP 請求在其他工作的 VLAN 設置中掛起
我有 2 個 kvm 虛擬化伺服器。每個主機都有一個面向網際網路的介面
ens3
和一個ens6
用於 VLAN 的介面。我正在執行 Ubuntu 18.04。我已經通過
netplan
.network: version: 2 renderer: networkd ethernets: ens3: dhcp4: yes ens6: dhcp4: no addresses: [10.0.0.10/24]
另一台機器有
10.0.0.20/24
。一台機器執行多個服務,另一台執行 Prometheus。我
node_exporter
在兩台機器上都進行了設置,並監聽了私有網路的 IP 地址。我可以從一台機器ping到另一台機器,也可以通過ssh
它們之間的連接。似乎連接通常有效。我什至可以
node_exporter
從第二台機器捲曲curl http://10.0.0.10:9100 -v * Rebuilt URL to: http://10.0.0.10:9100/ * Trying 10.0.0.10... * TCP_NODELAY set * Connected to 10.0.0.10 (10.0.0.10) port 9100 (#0) > GET / HTTP/1.1 > Host: 10.0.0.10:9100 > User-Agent: curl/7.58.0 > Accept: */* > < HTTP/1.1 200 OK < Date: Mon, 31 Dec 2018 09:00:42 GMT < Content-Length: 150 < Content-Type: text/html; charset=utf-8 < <html> <head><title>Node Exporter</title></head> <body> <h1>Node Exporter</h1> <p><a href="/metrics">Metrics</a></p> </body> * Connection #0 to host 10.0.0.10 left intact
當實際嘗試提取指標時,問題就出現了:
curl http://10.0.0.10:9100/metrics -v * Trying 10.0.0.10... * TCP_NODELAY set * Connected to 10.0.0.10 (10.0.0.10) port 9100 (#0) > GET /metrics HTTP/1.1 > Host: 10.0.0.10:9100 > User-Agent: curl/7.58.0 > Accept: */* > ^C
連接只是掛起。
從另一台機器本身執行相同的
curl
命令時,它按預期工作。我也嘗試綁定node_exporter
到0.0.0.0
. 這也有效,我可以通過伺服器公共 IP 地址獲取指標。我很困惑,呼叫
http://10.0.0.10:9100
有效但不呼叫http://10.0.0.10:9100/metrics
. 我的日誌中沒有錯誤或任何內容。知道這可能是什麼原因嗎?
根據 VLAN 實施,您可能需要降低 MTU。
嘗試將介面的 MTU 降低到 1400,如下所示:
ifconfig ens6 mtu 1400