Conexão syslog ao Logstash não redefinindo

1

Temos uma configuração com um servidor Logstash (1.4.2, usando o Elasticsearch incorporado) para receber logs de vários outros clientes (via TCP e de suas instâncias rsyslogd ). Um problema que agora acontece repetidamente é que as mensagens de um por um dos hosts não são mais recebidas, no entanto, não há mensagens de erro em lugar algum para serem vistas.

Parece basicamente que o host do Logstash não pode processar a quantidade de mensagens recebidas e as conexões são deixadas em um estado estranho; Eu fiz lsof / strace no cliente rsyslogd instâncias e também capturei algum tráfego nos clientes e no servidor e parece que enquanto os clientes ainda têm uma conexão aberta:

rsyslogd 30088 syslog    1u  IPv4           14878202       0t0        TCP 10.129.X.X:47492->10.129.X.X:5544 (ESTABLISHED)

, essa conexão é basicamente quebrada quando o servidor (porta 5544 ) envia mensagens TCP Zero Window, que, como Wireshark me diz , é basicamente o Logstash que não está acompanhando (o uso da CPU no host nem sempre está no máximo, mas regularmente em cerca de 75% nos quatro núcleos).

A minha pergunta é: Existe flag / setting / ... para obter os daemons rsyslogd para recuar / reconectar em tal situação, ou para o Logstash fechar corretamente as conexões se ele não puder acompanhar? ? (Isso é um problema conhecido ?, porque não consegui encontrar nenhum link relevante.)

Edit: Enquanto isso, alteramos o plug-in de entrada para tcp em vez de syslog , o que, junto com o manual grok parsing, parece lidar melhor com a carga. Eu ainda gostaria de entender o problema original.

    
por ferada 20.01.2015 / 16:47

0 respostas