V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
DO3956
V2EX  ›  问与答

logstash 无法发送数据给 elasticsearch

  •  
  •   DO3956 · Nov 1, 2017 · 6457 views
    This topic created in 3112 days ago, the information mentioned may be changed or developed.

    直接运行

    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,并没有数据进来。而且输入的数据明显没有发送出去,在报错后,才在命令行被获取

    Supplement 1  ·  Nov 2, 2017

    host是logstash早期的语法,改为hosts也不行。

    logstash、elasticsearch版本都是5.2.2

    logstash.yml的配置是默认的,全被注释掉了,只有日志位置 [path.logs:/data/logstash/logs ] 被我改了一下

    # ------------ Debugging Settings --------------
    #
    # Options for log.level:
    #   * fatal
    #   * error
    #   * warn
    #   * info (default)
    #   * debug
    #   * trace
    #
    # log.level: info
    path.logs:/data/logstash/logs
    #
    
    9 replies    2020-02-25 17:57:42 +08:00
    vebuqi
        1
    vebuqi  
       Nov 1, 2017 via Android
    贴下你的 logstash.yml
    Phant0m
        2
    Phant0m  
       Nov 1, 2017
    host => "127.0.0.1:7101" 改成 hosts => "127.0.0.1:7101" 少了一个 s
    shiji
        3
    shiji  
       Nov 2, 2017
    楼上说的对
    DO3956
        4
    DO3956  
    OP
       Nov 2, 2017
    @vebuqi 已贴
    DO3956
        5
    DO3956  
    OP
       Nov 2, 2017
    @Phant0m
    @shiji
    不行,是一样的结果
    vebuqi
        6
    vebuqi  
       Nov 2, 2017
    感觉像是读配置文件读错了,或者没读到
    试试用 --path-setting 配置文件目录 参数启动一下

    或者 output 里先不往 es 里打,只写 stdout { codec => rubydebug }
    DO3956
        7
    DO3956  
    OP
       Nov 2, 2017
    @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
        8
    DO3956  
    OP
       Nov 2, 2017
    @vebuqi 等了 20 分钟左右,有返回了。继续用上面的配置,发送 elasticsearch 成功
    linhan0816
        9
    linhan0816  
       Feb 25, 2020
    我也遇到了这个错误,是 logstash.yml 配置原因,path.logs:/data/logstash/logs,冒号之后需要有一个空格,要写成 path.logs: /data/logstash/logs。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   850 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 20:32 · PVG 04:32 · LAX 13:32 · JFK 16:32
    ♥ Do have faith in what you're doing.