首页 文章

如何让logstash输出到私有ip上的elasticsearch?

提问于
浏览
2

不幸的是,Logstash没有尝试以正确的IP地址输出到Elasticsearch . Elasticsearch在端口9200上的私有IP地址配置.Logstash尝试在localhost:9200输出到Elasticsearch . 这显示在下面的日志中 .

{:timestamp=>"2016-02-08T16:27:58.572000-0500", :message=>"Attempted to send a bulk request to Elasticsearch configured at '[\"http://localhost:9200/\"]', but Elasticsearch appears to be unreachable or down!", :client_config=>{:hosts=>["http://localhost:9200/"], :ssl=>nil, :transport_options=>{:socket_timeout=>0, :request_timeout=>0, :proxy=>nil, :ssl=>{}}, :transport_class=>Elasticsearch::Transport::Transport::HTTP::Manticore, :logger=>nil, :tracer=>nil, :reload_connections=>false, :retry_on_failure=>false, :reload_on_failure=>false, :randomize_hosts=>false}, :error_message=>"Connection refused", :class=>"Manticore::SocketException", :level=>:error}

我的配置文件如下:/etc/elasticsearch/elasticsearch.yml

network.host: PRIVATE_IP_ADDRESS

/opt/logstash/conf.d/logstash.conf

input {
  beats {
    port => 5044
  }
}

output {
  elasticsearch {
    hosts => ["PRIVATE_IP_ADDRESS:9200"]
    manage_template => false
    index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}"
    document_type => "%{[@metadata][type]}"
  }
}

我在/etc/logstash/conf.d/logstash.conf中有相同的文件,因为我不知道在哪里放置logstash配置文件 .

当我运行 curl PRIVATE_IP_ADDRESS:9200 时,我得到以下输出

{
  "name" : "Gabriel Summers",
  "cluster_name" : "elasticsearch",
  "version" : {
    "number" : "2.1.1",
    "build_hash" : "40e2c53a6b6c2972b3d13846e450e66f4375bd71",
    "build_timestamp" : "2015-12-15T13:05:55Z",
    "build_snapshot" : false,
    "lucene_version" : "5.3.1"
  },
  "tagline" : "You Know, for Search"
}

如何配置Logstash以输出到PRIVATE_IP_ADDRESS的Elasticsearch:9200而不是localhost:92000?

4 回答

  • 0

    只需使用以下代码片段就可以使用conf文件了 .

    output {
      elasticsearch {
         hosts => "PRIVATE_IP_ADDRESS:9200"
      }
    }
    
  • 0

    事实证明,当我重新启动logstash时,所有进程都没有被终止 . 我的配置文件不是问题 .

    以下是我为解决此问题而运行的命令: ps -ef | grep logstash sudo kill EACH_PID sudo kill -9 PID_THAT_WASNT_KILLED_BEFORE sudo /etc/init.d/logstash start

  • 0

    如果使用RPM安装,则配置应位于 /etc/logstash/conf.d/ 下 .

    因此,请尝试将您提到的文件( opt/logstash/conf.d/logstash.conf )移动到 /etc/logstash/conf.d 目录中,然后重新启动logstash服务并将其检出 .

  • 0

    我会仔细检查logstash实际上是否正在使用该配置文件 .

相关问题