【问题标题】:Logstash: Simplest pipeline possible not workingLogstash:最简单的管道可能无法正常工作
【发布时间】:2018-11-02 20:00:55
【问题描述】:

Ubuntu 16.04上使用logstash 2.4(我有我的理由)

root@logbox:/etc/logstash/conf.d# ls -al
total 16
drwxrwxr-x 2 root root 4096 Nov  2 19:53 .
drwxrwxr-x 3 root root 4096 Nov  2 15:46 ..
-rwxrwxrwx 1 root root  277 Nov  2 19:52 01_01_input.conf
-rwxrwxrwx 1 root root  604 Nov  2 19:48 03_02_output_pa_http.conf


root@logbox:/etc/logstash/conf.d# cat *.conf

input {

  stdin {}

  file {
    path => "/usr/share/logstash/files/production_input.txt"
    start_position => "beginning"
    # codec => plain { charset => "ISO-8859-1" }
    codec => json
    # add_field => [ 'redis_db', '10' ]
  }



}
output {

  stdout {}

}


root@logbox:/etc/logstash/conf.d# ls -al /usr/share/logstash/files/production_input.txt
-rwxrwxrwx 1 root root 11910 Nov  2 16:09 /usr/share/logstash/files/production_input.txt

不过……

vagrant@logbox:/etc/logstash/conf.d$ sudo tail -f /var/log/logstash/logstash*


Sending logstash logs to /var/log/logstash/logstash.log.

==> /var/log/logstash/logstash.log <==
{:timestamp=>"2018-11-02T19:59:52.947000+0000", :message=>"Pipeline main started"}

==> /var/log/logstash/logstash.stdout <==
{:timestamp=>"2018-11-02T19:59:52.947000+0000", :message=>"Pipeline main started"}

文件未打印在stdout...我尝试了两种编解码器(jsonplain

edit:实际上可能是文件被只读一次;这和sincedb 有关系吗? 我如何强制logstash再次读取它? start_position =&gt; beginning 还不够吗?

【问题讨论】:

  • 你试过stdout { codec =&gt; rubydebug }吗?

标签: logstash


【解决方案1】:

start_position在第一次读取文件时使用。

如果你想强制logstash再次读取它,你需要在你的文件输入插件conf中添加这个参数: sincedb_path =&gt; "/dev/null"

请阅读此内容以获得进一步说明 How to force Logstash to reparse a file?

【讨论】:

    猜你喜欢
    • 2020-10-10
    • 2020-01-10
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    相关资源
    最近更新 更多