zabbix_agent + socat が close_wait でハングする

zabbix_agent + socat が close_wait でハングする

次のような設定になっています: リモート デバイスは、socat を使用して HTTPS プロキシをトンネリングし、アクティブな zabbix_agentd (バージョン 2.0) を実行しています。

サーバー側: localhost:10051 (zabbix_proxy) への CONNECT を許可するプロキシ サービスを備えた Apache。接続は 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に接続するように設定されています。

問題: 一部のマシン (少数) では、一部の接続が適切に閉じられず、TCP ソケットが CLOSE_WAIT 状態のまま socat 子プロセスがハングします。問題のソケットのローカル エンドポイントは 127.0.0.1:10051 であるため、zabbix_agentd がソケットを適切に閉じない原因であると思われます。ハングした socat プロセスは CPU サイクルを大量に消費し、最終的にシステムをクラッシュさせます。これらをクリアする唯一の方法は、SIGKILL シグナルを使用することです。

ハングしているプロセスを定期的に終了する以外に、この問題に対処するための推奨事項はありますか?

ありがとう。

関連情報