Когда я пробовал 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? Это все проясняет.