zabbix_agent + close_wait에 매달려 있는 socat

zabbix_agent + close_wait에 매달려 있는 socat

다음 설정이 있습니다. 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에 연결하도록 구성됩니다.

문제: 일부 시스템(소수)에서는 일부 연결이 제대로 닫히지 않고 socat 하위 프로세스가 CLOSE_WAIT 상태의 TCP 소켓과 함께 정지됩니다. 문제의 소켓에는 127.0.0.1:10051의 로컬 끝점이 있으므로 zabbix_agentd가 소켓을 올바르게 닫지 않는 원인인 것 같습니다. 중단된 socat 프로세스는 많은 CPU 주기를 소비하고 결국 시스템을 충돌시킵니다. 이를 지우는 유일한 방법은 SIGKILL 신호를 사용하는 것입니다.

정기적으로 정지 프로세스를 종료하는 것 외에 이 문제를 처리하기 위한 권장 사항이 있습니까?

감사해요.

관련 정보