zabbix_agent + socat hängt mit close_wait

zabbix_agent + socat hängt mit close_wait

Ich habe das folgende Setup: Remote-Geräte, auf denen aktiver zabbix_agentd (Version 2.0) ausgeführt wird, verwenden Socat zum Tunneln durch einen HTTPS-Proxy.

Auf der Serverseite: Apache mit einem Proxy-Dienst, der eine Verbindung zu localhost:10051 (zabbix_proxy) ermöglicht. Die Verbindung wird mit SSL verschlüsselt und erfordert ein gültiges Client-Zertifikat.

Auf der Clientseite: Socat Beta8-Befehlszeile:

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 ist so konfiguriert, dass es nur im aktiven Modus funktioniert und eine Verbindung zu localhost:10051 herstellt.

Problem: Auf einigen Maschinen (einer kleinen Minderheit) werden einige Verbindungen nicht richtig geschlossen und der untergeordnete Socat-Prozess bleibt mit dem TCP-Socket im Status CLOSE_WAIT hängen. Der fragliche Socket hat den lokalen Endpunkt 127.0.0.1:10051, daher scheint zabbix_agentd der Übeltäter zu sein, der den Socket nicht richtig schließt. Die hängenden Socat-Prozesse verbrauchen viele CPU-Zyklen und bringen das System schließlich zum Absturz. Sie können nur mit einem SIGKILL-Signal gelöscht werden.

Gibt es außer dem regelmäßigen Beenden hängender Prozesse irgendwelche Empfehlungen zum Umgang mit diesem Problem?

Danke.

verwandte Informationen