Como enviar o endereço IP para logstash usando a entrada como “arquivo”?

3

Estou enviando alguns logs para logstash no servidor central usando outro logstash no cliente como remetente. O tipo de entrada é "arquivo". As mensagens são recebidas no servidor, mas não refletem o endereço IP do cliente. Ele envia o nome do host no campo "@source_host". Existe alguma coisa que eu possa fazer para obter o IP como um campo? Talvez um filtro?

Conf do cliente:

input {
  file {
    format => "plain"
    path => "/var/log/app/test1.txt"
    type => "start"
  }
}

output {
  redis {
    host => "test.example.com"
    data_type => "list"
    key => "logstash"
  }
}
    
por Aditya Patawari 26.02.2013 / 14:13

2 respostas

0

Você pode usar o filtro 'dns' para fazer uma pesquisa inversa e usá-lo para definir o campo. link

    
por 23.10.2013 / 18:20
0

Se o IP do cliente que você deseja é estático, sugiro substituir o conteúdo @source_host usando o mutate filter

Por exemplo :

filter {
  mutate {
    replace => ["@source_host","xx.xx.xx.xx"]
  }
}

Se você quisesse apenas o IP em um campo (em vez de usar @source_host), poderia adicioná-lo à sua entrada:

input {
  file {
    format => "plain"
    path => "/var/log/app/test1.txt"
    type => "start"
    add_field => ['source_ip','xx.xx.xx.xx']
  }
}

Caso contrário, se você realmente precisar resolver nomes de host de clientes não-estáticos, então @ Dan Garthwaite A resposta é a correta.

    
por 19.03.2017 / 11:18

Tags