zabbix_agent + socat 掛在 close_wait 上

zabbix_agent + socat 掛在 close_wait 上

我有以下設定:運行活動 zabbix_agentd (版本 2.0)的遠端裝置使用 socat 透過 HTTPS 代理建立隧道。

在伺服器端:具有代理服務的 Apache 允許連接到 localhost:10051 (zabbix_proxy)。連線使用 SSL 加密,需要有效的客戶端憑證。

在客戶端:Socat beta8 命令列:

socat -d -d -ly "TCP-LISTEN:10051,bind=127.0.0.1,reuseaddr,fork" "PROXY:127.0.0.1:10051,connect-timeout=30 | OPENSSL:<server_domain_name>:443,connect-timeout=30,cafile=<CA_CERT_FILE>,certificate=<CLIENT_CERT_FILE>"

zabbix_agentd 配置為僅在主動模式下工作並連接到 localhost:10051

問題:在某些機器(一小部分)上,某些連線無法正確關閉,socat 子進程掛起,TCP 套接字處於 CLOSE_WAIT 狀態。有問題的套接字的本地端點為 127.0.0.1:10051,因此看起來 zabbix_agentd 是未正確關閉套接字的罪魁禍首。掛起的 socat 進程會消耗大量 CPU 週期並最終導致系統崩潰。清除它們的唯一方法是使用 SIGKILL 訊號。

除了定期終止掛起的進程之外,還有關於處理此問題的建議嗎?

謝謝。

相關內容