【问题标题】:Spring Data Elasticsearch @Id for Logstash Records from Spring Boot (logstash-logback-encoder)来自 Spring Boot 的用于 Logstash 记录的 Spring Data Elasticsearch @Id (logstash-logback-encoder)
【发布时间】:2018-03-16 07:20:26
【问题描述】:

我很好奇人们使用 Spring-Data-Elasticsearch 提取 Logstash 数据的 Java 实体中的 @Id 是什么?流入 Logstash 的日志数据没有明显的候选者。最接近的可能是时间戳,但不能保证它是唯一的。同样显然 Spring 不支持 ZonedDateTime 作为@Id。

我正在使用 Spring Boot 2.0.0.RELEASE。默认的 logback logstash 编码器可以很好地写入文件系统。我让 Filebeat 将其发送到 Logstash,然后发送到 Elasticsearch (5.5.x)。

我正在编写一个 Java 应用程序来对日志执行各种操作。我正在使用 Spring Data Elasticsearch (3.0.5.Release)。

上面写的 Elasticsearch 中的记录示例:

{
"_index":"logstash-2017.09.08", "_type":"log", "_id":"AV5j2z-qpNewjNB_ukIA", "_version":1, "_score":1, "_source":{
"offset":18441, "level":"ERROR", "input_type":"log", "source":"/var/log/somecompany/configuration_service/json/configuration_service_json_events.json", "message":" *************************** APPLICATION FAILED TO START *************************** Description: The Tomcat connector configured to listen on port 8888 failed to start. The port may already be in use or the connector may be misconfigured. Action: Verify the connector's configuration, identify and stop any process that's listening on port 8888, or configure this application to listen on another port. ", "type":"log", "tags":[
"beats", "beats_input_codec_plain_applied" ], "@timestamp":"2017-09-08T23:37:41.639Z", "application_name":"configuration-service", "thread_name":"main", "level_value":40000, "@version":1, "beat":{
"hostname":"f3758598e319", "name":"f3758598e319", "version":"5.5.2" }, "host":"f3758598e319", "logger_name":"org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter", "application_version":"3.14.0-SNAPSHOT" } }

【问题讨论】:

    标签: logstash spring-data-elasticsearch


    【解决方案1】:

    我在发布后不久就发现了我的答案。

    如果我声明一个字符串 id 并将其注释为 @Id,那么框架会正确地从 E.S. 中拉回内部自动生成的 _id 字段

    @Id
    private String id;
    
    public String getId() {
       return id;
    }
    
    public void setId(String id) {
       this.id = id;
    }
    

    【讨论】:

      猜你喜欢
      • 2018-09-10
      • 2015-09-17
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 2017-01-21
      相关资源
      最近更新 更多