【问题标题】:(Kibana, logstash) How can I visualize Apache log data based on log's date and not logstash import date?(Kibana,logstash)如何根据日志日期而不是 logstash 导入日期可视化 Apache 日志数据?
【发布时间】:2018-04-09 06:46:18
【问题描述】:

我试图在新导入的 Apache 日志中进行搜索。 但是,很快我就意识到所有数据实际上都分配给了导入日期,而不是生成日志数据的日期。

日志文件中的日期时间在 Kibana 中没有任何作用,为什么? 导入时,我使用了 grok filter: combineapachelog 并验证它与我的日志匹配。

需要明确的是,我在 Kibana/Logstahs 数据中有两个时间戳字段: '@timestamp' 字段(日期)和 “时间戳”字段(str)

第一个是我认为的导入日期,后者可能是日志中的日期,但另一方面,日志不存储时间戳,而是 [MM/DD/YYYY HH:MM:SS] 日期时间(或类似日期)。

编辑:我打开了调试,它显示 _dateparsefailure 或类似的。 我做了一些小改动来过滤它就消失了-但是,现在可以很好地解析日期,时间错误并设置为 00:00:00。

【问题讨论】:

    标签: apache datetime logging logstash kibana


    【解决方案1】:

    自从我从事logstash以来已经有很长时间了。我当前解析 apache 日志的配置使用 timestamp str 字段。

    if [type] == "apache-access" {
            grok {
                    match => ["message", "%{IPORHOST:clientip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:timestamp}\] \"(?:%{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})?|%{DATA:rawrequest})\" %{NUMBER:response} (?:%{NUMBER:bytes}|-) %{QS:referrer}; %{QS:agent}",
                                                            "message", "%{COMBINEDAPACHELOG}"
                    ]
                    add_field => ["received_from", "%{[host]}"]
            }
    
            date {
                    match => ["timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]
                    locale => "en"
                    timezone => "Asia/Kolkata"
                    add_tag => ["tsmatch"]
            }
    }
    

    【讨论】:

    • 没错,我的也有。我如何在 Kibana 中利用这个领域?我需要根据它制作一个脚本字段还是什么?
    猜你喜欢
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多