logstash 无法发送数据给 elasticsearch

2017-11-01 23:00:42 +08:00
 DO3956

直接运行

bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'

成功,输入后有输出。

但是输出到 elasticsearch 就报错了

bin/logstash -f logstash.config

一段时间没有响应,并在报错后结束进程。

报错如下: An unexpected error occurred! {:error=>#<ArgumentError: Setting "" hasn't been registered>, :backtrace=>["/data/logstash/logstash-5.2.2/logstash-core/lib/logstash/settings.rb:29:in get_setting'", "/data/logstash/logstash-5.2.2/logstash-core/lib/logstash/settings.rb:61:inset_value'", "/data/logstash/logstash-5.2.2/logstash-core/lib/logstash/settings.rb:80:in merge'", "org/jruby/RubyHash.java:1342:ineach'", "/data/logstash/logstash-5.2.2/logstash-core/lib/logstash/settings.rb:80:in merge'", "/data/logstash/logstash-5.2.2/logstash-core/lib/logstash/settings.rb:115:invalidate_all'", "/data/logstash/logstash-5.2.2/logstash-core/lib/logstash/runner.rb:210:in execute'", "/data/logstash/logstash-5.2.2/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:67:inrun'", "/data/logstash/logstash-5.2.2/logstash-core/lib/logstash/runner.rb:183:in run'", "/data/logstash/logstash-5.2.2/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:132:inrun'", "/data/logstash/logstash-5.2.2/lib/bootstrap/environment.rb:71:in `(root)'"]}

logstash.config 配置内容如下:

input{
    stdin { }
}
output{
    elasticsearch {
        host => "127.0.0.1:7101"
        index => "logstash_test"
        flush_size => 2000
        idle_flush_time => 5
    }
}

查过 elasticsearch,并没有数据进来。而且输入的数据明显没有发送出去,在报错后,才在命令行被获取

6015 次点击
所在节点    问与答
9 条回复
vebuqi
2017-11-01 23:32:29 +08:00
贴下你的 logstash.yml
Phant0m
2017-11-01 23:34:14 +08:00
host => "127.0.0.1:7101" 改成 hosts => "127.0.0.1:7101" 少了一个 s
shiji
2017-11-02 04:20:18 +08:00
楼上说的对
DO3956
2017-11-02 09:30:47 +08:00
@vebuqi 已贴
DO3956
2017-11-02 09:31:07 +08:00
@Phant0m
@shiji
不行,是一样的结果
vebuqi
2017-11-02 10:35:22 +08:00
感觉像是读配置文件读错了,或者没读到
试试用 --path-setting 配置文件目录 参数启动一下

或者 output 里先不往 es 里打,只写 stdout { codec => rubydebug }
DO3956
2017-11-02 12:52:01 +08:00
@vebuqi
忘了说了,每次启动都会有这个警告
OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N。

非常奇怪的事情,我现在运行 bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
也没有数据返回了

然后重新下了 5.2.0 的版本,第一次运行 bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}' 成功
再运行就一直没有返回,也没有错误
DO3956
2017-11-02 14:24:25 +08:00
@vebuqi 等了 20 分钟左右,有返回了。继续用上面的配置,发送 elasticsearch 成功
linhan0816
2020-02-25 17:57:42 +08:00
我也遇到了这个错误,是 logstash.yml 配置原因,path.logs:/data/logstash/logs,冒号之后需要有一个空格,要写成 path.logs: /data/logstash/logs。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/402773

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX