Falha do Logstash local ao encaminhar / var / log / syslog para o Logstash central

1

Eu quero que minha instância local do Logstash encaminhe o syslog e todos os arquivos /var/log/* para uma instância remota e central do Logstash.

O pipeline em /etc/logstash/conf/logstash-local.conf é o seguinte:

input {
 file {
 type => "syslog"
 path => [ "/var/log/*.log", "/var/log/syslog" ]
 }
}
output {
 stdout { codec => rubydebug }
 tcp {
 host => "logging.example.com"
 port => 5000
 }
}

Quando tento executar logger "foo" , o evento é registrado no syslog local, mas não é encontrado em meu Logstash remoto. Nem são outros eventos do syslog.

Coisas que tentei:

  • O Logstash local relata em seu arquivo de log que o pipeline está sendo executado corretamente
  • conectei-me com o telnet ao servidor remoto e verifiquei se a entrada direta está processada corretamente
  • As permissões foram alteradas localmente para conceder ao usuário Logstash associação no grupo adm

Tudo parece perfeito ... mas não funciona! :)

    
por 0xF2 24.04.2018 / 18:16

1 resposta

2

Se você não tiver certeza disso, a saída tcp {} usa o codec json para transmissões. Se o seu lado de recebimento não está esperando isso, você não terá muito de nada. Fora isso, a configuração que você tem parece sólida. Nenhum filtro nas saídas, então tudo deve ir para ambos.

Em termos de depuração, quando for iniciado, verifique suas estatísticas de rede para ver se uma conexão TCP está tentando ser aberta para o seu controle remoto. Algo preso em SYN_SENT é um sinal de que algo diferente de Logstash é o problema aqui. Se você ainda não conseguir abrir essa conexão, provavelmente vale a pena lançar o logstash com um rastreador de chamadas do sistema como strace (sistemas Linux) ou procmon (sistemas Windows) para ver o que acontece com a chamada de criação de conexão.

    
por 26.04.2018 / 14:58