Назад | Перейти на главную страницу

Как запустить logstash-2.4.0

Когда я пробовал ELK, я установил logstash-2.4.0. И я написал log4j_to_es.conf. Когда я бегу ./bin/logstash agent -f config/log4j_to_es.conf У меня ошибка.

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"}

И log4j_to_es.conf вот так:

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

Система - CentOS 7.2.1511. На входе другой сервер. вывод - localhost.

IP-адрес, который вы указали во входных данных, недоступен в системе, в которой вы запускаете logstash. Я предполагаю, что предоставленный вами IP-адрес является IP-адресом системы, которая отправляет журналы?

Если да, то вы неверно истолковали синтаксис конфигурации. Вам не нужно указывать IP-адрес во входных данных. Если вы опустите эту запись, logstash будет прослушивать все доступные интерфейсы. Если, с другой стороны, вы действительно хотите, чтобы logstash прослушивал только определенный IP-адрес, вам необходимо убедиться, что указанный IP-адрес настроен на сервере logstash.

- Изменить: вы хотите, чтобы logstash получал сообщения, которые отправляет ваш log4j? Если это так, применяется вышеуказанное исправление. Если, с другой стороны, вы хотите, чтобы logstash подключался к вашему экземпляру log4j на удаленном сервере, все, что вам нужно сделать, это изменить свой «режим» с «сервера» на «клиент».

Вы читали logstash документация log4j? Это все проясняет.