当前位置: 首页 > 知识库问答 >
问题:

由于日期格式错误,ElasticSearch拒绝服务器的日志存储记录

林丁雷
2023-03-14

我在安装ELK包括REDIS的过程中,并成功地获得了一个服务器/进程通过ElasticSearch(ES)交付其日志。对此最满意。然而,在更新现有的服务器/进程以开始使用logstash时,我看到日志以yyyyy-MM-dd HH: mm: ss, sss的形式出现。注意日期和时间之间没有T。ES对此并不满意。

两台服务器使用的Log4j模式是:

<PatternLayout pattern="~%d{ISO8601} [%p] [%t] [%c{1.}] %m%n"/>

Logstash配置与源日志文件的路径相同

input{

    file{
        type => "log4j"
        path => "/var/log/restapi/*.log"
        add_field => {
            "process" => "restapi"
            "environment" => "DEVELOPMENT"
        }
        codec => multiline {

           pattern => "^~%{TIMESTAMP_ISO8601} "
           negate => "true"
           what => "previous"
        }
    }


}

filter{

    if [type] == "log4j"{
        grok{
            match => {
                message => "~%{TIMESTAMP_ISO8601:logdate}%{SPACE}\[%{LOGLEVEL:level}\]%{SPACE}\[%{DATA:thread}\]%{SPACE}\[%{DATA:category}\]%{SPACE}%{GREEDYDATA:messagetext}"
            }            
        }


    }

}

output{
    redis{
        host => "sched01"
        data_type => "list"
        key => "logstash"
        codec => json
    }

    stdout{codec => rubydebug}

}

与高级别的唯一区别是服务器的构建时间。寻找可能导致T的原因或将T添加到字段中的方法

共有1个答案

翟善
2023-03-14

在DatePattern转换器ISO8601_PATTERN下出现的一个错误不符合ISO8601https://issues.apache.org/jira/browse/LOG4J2-670导致我检查旧应用程序中使用的log4j2库的版本。发现是贝塔。更新到v2.3并且dateTime值开始正确填充。现在正确形成的值,弹性搜索很乐意接受它。

 类似资料:
  • 问题内容: 我想在Elasticsearch中添加一个日期时间字符串时遇到问题。 该文件如下: 该文档提出了一个错误 我知道我可以在Elasticsearch中使用日期格式,但是即使阅读网站上的文档,我也不知道如何使用。 和 错了。 如何在Elasticsearch中将datetime字符串转换为日期格式? 如何将datetime字符串直接存储到Elasticsearch中? 问题答案: 你快到了

  • 我知道有很多关于这个的问题,但是我确实经历了所有的问题,并且有点困惑自己,我列出了我遵循的步骤,请让我知道我把它搞砸了。 1) 我只想在应用程序级别使用Log4j,所以需要复制WL_HOME/server/lib/wllog4j。jar和log4j。jar在Domail_Home/Lib? 2) 我使用的是Maven,我在pom中添加了Log4j依赖项。xml[war]。我把战争藏在耳朵里。 3)

  • 问题内容: 我在解析我的代码中的平面文件后,试图转换作为文件存在于平面文件中的String 值。 我已经写了代码来做到这一点,但是当我格式化日期时,它总是给我一个指定日期超过1天的日期,有时它会加5:30。 以下是该代码: 上面的输出是 您能告诉我这里是什么问题吗?我在课堂上使用的模式有问题吗?还是代码有问题?我已经为此挠了很久。 问题答案: 您的系统时区不同。输出显示IST-或印度标准时间,与P

  • 问题内容: 我在用 : 输出为: 我如何只打印不带日期和INFO的消息? 问题答案: 使用系统属性更改SimpleFormatter的格式: 或在logging.properties中: 所有这些属性都以format方法记录。

  • 您好,我正在从db中获取日期,其中日期列的类型为“date”,然后将其拆分并串联成字符串存储在db中 当从本地环境执行程序时,它工作正常,时间存储为28-09-2021 15:34:42,当通过服务器执行程序时,它以12小时格式28-09-2021 03:34:42PM存储,这会产生问题并引发错误。如果您有任何关于如何解决此问题的想法,我们将不胜感激。

  • 我试图在新安装的ApacheFelix容器中使用pax日志。已安装以下捆绑包: 尝试启动bundle 39(Pax Logging-Service)会导致: 我手动检查了Pax日志API包(Pax-Logging-API-1.8.3.jar)——文件。我还检查了(pax-logging-API-1.8.3.jar)。部分以导出包开头: 组织。阿帕奇。阿瓦隆。框架记录器;用法:=“org.apach