如何运行 logstash-2.4.0

如何运行 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。

答案1

您在输入中指定的 IP 地址在运行 logstash 的系统上不可用。我假设您在此处提供的 IP 是发送日志的系统的 IP 地址?

如果是这样,则说明您误解了配置语法。您不需要在输入中指定 IP 地址。如果省略该条目,logstash 将监听所有可用接口。另一方面,如果您确实只希望 logstash 监听特定 IP,则需要确保指定的 IP 是在 logstash 服务器上配置的 IP。

-- 编辑:您是否希望 logstash 接收 log4j 发送的消息?如果是,则上述修复适用。另一方面,如果您希望 logstash 连接到远程服务器上的 log4j 实例,那么您需要做的就是将“模式”从“服务器”更改为“客户端”。

你读过logstash log4j 文档? 这一切都很清楚。

相关内容