Como executar logstash-2.4.0

1

Quando eu estava tentando o ELK, eu instalo o logstash-2.4.0. E eu escrevi o log4j_to_es.conf . Quando executo ./bin/logstash agent -f config/log4j_to_es.conf , recebo um erro.

Settings: Default pipeline workers: 4
Pipeline aborted due to error {:exception=>"Errno::EADDRNOTAVAIL", :backtrace=>[
"org/jruby/ext/socket/RubyTCPServer.java:118:in 'initialize'", 
"org/jruby/RubyIO.java:871:in 'new'", 
"/home/tools/logstash-2.4.0/vendor/bundle/jruby/1.9/gems/logstash-input-log4j-2.0.7-java/lib/logstash/inputs/log4j.rb:71:in 'register'", 
"/home/tools/logstash-2.4.0/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:330:in 'start_inputs'", 
"org/jruby/RubyArray.java:1613:in 'each'", 
"/home/tools/logstash-2.4.0/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:329:in 'start_inputs'", 
"/home/tools/logstash-2.4.0/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:180:in 'start_workers'", 
"/home/tools/logstash-2.4.0/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/pipeline.rb:136:in 'run'", 
"/home/tools/logstash-2.4.0/vendor/bundle/jruby/1.9/gems/logstash-core-2.4.0-java/lib/logstash/agent.rb:491:in 'start_pipeline'"], 
:level=>:error}
stopping pipeline {:id=>"main"}

E o log4j_to_es.conf é assim:

input {
  log4j {
    mode => "server"
    host => "120.13.243.95"
    port => 4567
  }
}
output {
  elasticsearch {
    action => "index"
    hosts  => "192.168.1.54:9200"
    index  => "applog"
  }
}

O sistema é o CentOS 7.2.1511. A entrada é outro servidor. a saída é localhost.

    
por blackdog 18.09.2016 / 03:34

1 resposta

2

O endereço IP que você especificou em sua entrada não está disponível no sistema em que você está executando o logstash. Eu presumo que o IP que você forneceu é o endereço IP do sistema que está enviando os logs?

Nesse caso, você interpretou mal a sintaxe de configuração. Você não precisa especificar um endereço IP na entrada. Se você omitir essa entrada, o logstash escutará todas as interfaces disponíveis. Se, por outro lado, você quiser apenas que o logstash ouça em um IP específico, será necessário garantir que o IP especificado seja aquele configurado no servidor logstash.

Edit: você quer que o logstash receba mensagens que o seu log4j envia? Nesse caso, a correção acima se aplica. Se, por outro lado, você quiser que o logstash se conecte à sua instância do log4j no servidor remoto, então tudo que você precisa fazer é mudar o "modo" de "servidor" para "cliente".

Você leu a documentação do logstash log4j ? Isso deixa tudo bem claro.

    
por 18.09.2016 / 03:52

Tags