Encaminha os logs do linux para fluentd no linux

2

Em uma VM, eu tenho isso em /etc/rsyslog.d/50-default.conf

*.* @192.168.29.1:42185

#  Default rules for rsyslog.

Na vm com fluentd eu tenho isso:

Eu tenho isso em /etc/td-agent/td-agent.conf

<source>
  type syslog
  port 42185
  tag  rsyslog
</source>

<match rsyslog.**>
  type copy
  <store>
    # for debug (see /var/log/td-agent.log)
    type stdout
  </store>
  <store>
    type elasticsearch
    logstash_format true
    flush_interval 10s # for testing.
  </store>
</match>

Mas nada parece estar sendo enviado para a máquina remota, como eu vejo em /var/log/td-agent.log e vejo

2014-08-08 10:51:10 -0700 [info]: adding source type="syslog"
2014-08-08 10:51:10 -0700 [info]: adding source type="forward"
2014-08-08 10:51:10 -0700 [info]: adding source type="http"
2014-08-08 10:51:10 -0700 [info]: adding source type="debug_agent"
2014-08-08 10:51:10 -0700 [info]: adding match pattern="td.*.*" type="tdlog"
2014-08-08 10:51:10 -0700 [info]: adding match pattern="debug.**" type="stdout"
2014-08-08 10:51:10 -0700 [info]: adding match pattern="rsyslog.**" type="copy"
2014-08-08 10:51:10 -0700 [info]: listening fluent socket on 0.0.0.0:24224
2014-08-08 10:51:10 -0700 [info]: listening dRuby uri="druby://127.0.0.1:24230" object="Engine"
2

Eu não sei porque os logs não estão sendo enviados, e não vejo como saber se algo está errado com rsyslog e simplesmente não está enviando os arquivos.

    
por James Black 08.08.2014 / 20:51

1 resposta

3

Se não me engano, o rsyslog encaminha os logs sobre TCP (no arquivo de configuração, isso é listado como "por confiabilidade"), mas o ouvinte do fluentD usa como padrão a escuta no UDP. Esta alteração na sua configuração do fluentD deve permitir que você receba os logs no TCP:

<source>
  type syslog
  port 42185
  protocol_type tcp
  tag  rsyslog
</source>

Gostaria de verificar com o TCP se o tráfego está sendo recebido no agente, se você ainda não estiver recebendo logs após fazer essa alteração:

tcpdump -i any port 42185

Isso também deve indicar se o TCP ou UDP está sendo recebido (apenas especificando port e não tcp ou udp )

EDIT: além disso, certifique-se de que sua configuração do rsyslog esteja correta: todos os exemplos que vi e usei possuem um% @@ duplo na regra direta:

*.* @@192.168.29.1:42185

link

    
por 09.08.2014 / 20:24