【问题标题】:logstash apache2 not getting converted to jsonlogstash apache2 未转换为 json
【发布时间】:2015-08-10 19:56:55
【问题描述】:

一个简单的 logstash 示例不适合我。我想阅读我的 apache access.log 并将其转储出去。我使用以下配置文件

input {
    file {
        path => "/var/log/apache2/access.log"
        start_position => beginning
    }
}
filter {
    grok {         
        match => { "message" => "%{COMBINEDAPACHELOG}"}
    }
}
output {
    stdout {}
}

我无法从 logstash 获取 json 输出,如此处所示。

root@rick-VirtualBox:/opt/logstash# ./bin/logstash -f /home/rick/log_conf/first-pipeline.conf Logstash 启动完成 2015-08-10T18:58:07.660Z rick-VirtualBox 192.168.56.1 - - [10/Aug/2015:12:46:21 -0400] "GET / HTTP/1.1" 200 427 "-" "Mozilla/5.0 ( Macintosh;Intel Mac OS X 10_10_3) AppleWebKit/600.6.3 (KHTML, like Gecko) Version/8.0.6 Safari/600.6.3"

当我在上面一行使用 grokdebugger 时,它说它是一个 COMBINEDAPACHELOG 模式,我相信这就是我所要求的。

logStash 不应该创建 json 吗?

【问题讨论】:

    标签: json apache logstash


    【解决方案1】:

    其实json并不是默认的编解码器。根据docsLogstash 的标准输出默认输出编解码器是line

    试试:

    output {
      stdout { codec => json }
    }
    

    您也可以考虑使用codec => rubydebug,它也会产生非常干净的输出。

    【讨论】:

    • 做到了。我将其更改为 ruby​​debug 语句。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 2017-01-21
    相关资源
    最近更新 更多