Curl 如何让logstash输出到私有ip上的elasticsearch?
不幸的是,Logstash没有尝试以正确的IP地址输出到Elasticsearch。Elasticsearch配置在端口9200上的专用ip地址。Logstash正在尝试输出到本地主机9200上的Elasticsearch。这显示在下面的日志中Curl 如何让logstash输出到私有ip上的elasticsearch?,curl,
elasticsearch,configuration,logstash,elastic-stack,Curl,
elasticsearch,Configuration,Logstash,Elastic Stack,不幸的是,Logstash没有尝试以正确的IP地址输出到Elasticsearch。Elasticsearch配置在端口9200上的专用ip地址。Logstash正在尝试输出到本地主机9200上的Elasticsearch。这显示在下面的日志中 {:timestamp=>"2016-02-08T16:27:58.572000-0500", :message=>"Attempted to send a bulk request to Elasticsearch configured a
{: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\u IP\u 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:9200而不是localhost:92000处输出到Elasticsearch?我将仔细检查Logstash是否实际使用该配置文件 只需使用下面的代码片段创建conf文件,它就会工作
output {
elasticsearch {
hosts => "PRIVATE_IP_ADDRESS:9200"
}
}
事实证明,当我重新启动logstash时,所有进程都没有被终止。我的配置文件不是问题所在 以下是我为解决此问题而运行的命令:
ps-ef | grep logstash
sudo杀死每个\u PID
sudo kill-9以前没有被杀的PID\u
sudo/etc/init.d/logstash start
如果您使用RPM安装,那么您的配置应该位于/etc/logstash/conf.d/
下
因此,请尝试将您提到的文件(
opt/logstash/conf.d/logstash.conf
)移动到/etc/logstash/conf.d
目录中,然后重新启动logstash服务并将其签出。主机字段是一个表,我怀疑这是否是正确的语法。您能否说明如何安装logstash(rpm、deb、tarball)你是怎么开始的?顺便说一句,我强烈建议您更改elasticsearch群集名称,因为您的任何朋友,连接到同一个LAN可能会加入您的群集。我使用rpm安装了Logstash。谢谢你的建议。我现在就做。你打算怎么做?我将/etc/sysconfig/logstash更改为如下所示:#设置主目录LS_home=/opt/logstash#参数以传递给logstash代理LS_OPTS=“”#logstash配置目录LS_CONF_DIR=/opt/logstash/CONF.d KILL_ON_STOP_TIMEOUT=0
我还从/opt/logstash目录运行了bin/logstash-f/opt/logstash/CONF.d/logstash.CONF--debug
,并且没有出现错误。在设置了一些错误的配置后,可以验证logstash是否仍在运行知道应该失败。