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

logstash将数据传输到elasticsearch解析日期错误

薛寒
2023-03-14

这是我的Mysql。配置

input {
    stdin {
    }
    jdbc {

    jdbc_connection_string => "jdbc:mysql://localhost:3306/xc_course?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC"
    # the user we wish to excute our statement as
    jdbc_user => "root"
    jdbc_password => "1234"
    # the path to our downloaded jdbc driver
    jdbc_driver_library =>"/usr/local/elasticsearch/logstash/mysql-connector-java-5.1.4.jar"
    # the name of the driver class for mysql
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_paging_enabled => "true"
    jdbc_page_size => "50000"
    #statement_filepath => "/conf/course.sql"
    statement => "select * from course_pub where timestamp > date_add(:sql_last_value,INTERVAL 8 HOUR)"
    schedule => "* * * * *"

    record_last_run => true

    last_run_metadata_path => "/usr/local/elasticsearch/elasticsearch-6.2.1/config/logstash_metadata"   

    }
}
output {
    elasticsearch {
    hosts => "localhost:9200"
    #hosts => ["localhost:9200","localhost:9202","localhost:9203"]
    index => "xc_course"
    document_id => "%{id}"
    document_type => "doc"
    template =>"/usr/local/elasticsearch/logstash-6.2.1/config/xc_course_template.json"
    template_name =>"xc_course"
    template_overwrite =>"true"

    }
    stdout {

        codec => json_lines

    }
}

这是我的模板。json

{
    "mappings": {
        "doc": {
            "properties": { 
                "charge": {
                    "type": "keyword"
                },
                "description": {
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_smart",
                    "type": "text"
                },
                "end_time": {
                    "format": "yyyy‐MM‐dd HH:mm:ss",
                    "type": "date"
                },
                "expires": {
                    "format": "yyyy‐MM‐dd HH:mm:ss",
                    "type": "date"
                },
                "grade": {
                    "type": "keyword"
                },
                "id": {
                    "type": "keyword"
                },
                "mt": {
                    "type": "keyword"
                },
                "name": {
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_smart",
                    "type": "text"
                },
                "pic": {
                    "index": false,
                    "type": "keyword"
                },
                "price": {
                    "type": "float"
                },
                "price_old": {
                    "type": "float"
                },
                "pub_time": {
                    "format": "yyyy‐MM‐dd HH:mm:ss",
                    "type": "date"
                },
                "qq": {
                    "index": false,
                    "type": "keyword"
                },
                "st": {
                    "type": "keyword"
                },
                "start_time": {
                    "format": "yyyy‐MM‐dd HH:mm:ss",
                    "type": "date"
                },
                "status": {
                    "type": "keyword"
                },
                "studymodel": {
                    "type": "keyword"
                },
                "teachmode": {
                    "type": "keyword"
                },
                "teachplan": {
                    "analyzer": "ik_max_word",
                    "search_analyzer": "ik_smart",
                    "type": "text"
                },
                "users": {
                    "index": false,
                    "type": "text"
                },
                "valid": {
                    "type": "keyword"
                }
            }
        }
    },
    "template": "xc_course"
}

这是我的elasticSearch索引映射

    {
        "properties": {
            "description": {
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_smart",
                "type": "text"
            },
            "grade": {
                "type": "keyword"
            },
            "id": {
                "type": "keyword"
            },
            "mt": {
                "type": "keyword"
            },
            "name": {
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_smart",
                "type": "text"
            },
            "users": {
                "index": false,
                "type": "text"
            },
            "charge": {
                "type": "keyword"
            },
            "valid": {
                "type": "keyword"
            },
            "pic": {
                "index": false,
                "type": "keyword"
            },
            "qq": {
                "index": false,
                "type": "keyword"
            },
            "price": {
                "type": "float"
            },
            "price_old": {
                "type": "float"
            },
            "st": {
                "type": "keyword"
            },
            "status": {
                "type": "keyword"
            },
            "studymodel": {
                "type": "keyword"
            },
            "teachmode": {
                "type": "keyword"
            },
            "teachplan": {
                "analyzer": "ik_max_word",
                "search_analyzer": "ik_smart",
                "type": "text"
            },
            "expires": {
                "type": "date",
                "format": "yyyy‐MM‐dd HH:mm:ss"
            },
            "pub_time": {
                "type": "date",
                "format": "yyyy‐MM‐dd HH:mm:ss"
            },
            "start_time": {
                "type": "date",
                "format": "yyyy‐MM‐dd HH:mm:ss"
            },
            "end_time": {
                "type": "date",
                "format": "yyyy‐MM‐dd HH:mm:ss"
            }
        }
    }

但当它开始的时候

无法将事件索引到Elasticsearch.{: state=

解析[start_time]"、"caused_by"=失败

**msgstr"格式无效:\"2019-12-20T15:18:13.000Z\"在\"-12-20T15:18:13.000Z\"**

但是在我的数据库中,我的数据类型是2019-12-28 19:24:41

当我将date设置为null时,它的工作方式是,但就像2019-12-28 19:24:41一样,解析错误

那么怎么处理呢

共有1个答案

公冶和豫
2023-03-14

jdbc输入将自动将日期列更改为LogStash::Timestamp类型,但索引模板希望它们是文本。从索引模板中的日期字段中删除“格式”。

 类似资料:
  • 问题内容: 这是我另一个问题的跟进:Logstash中的JSON解析器忽略数据了吗? 但是这次我觉得问题比上次更清楚了,可能更容易回答。 我正在使用JSON解析器,如下所示: logstash.stdout中一个日志的输出部分看起来像这样: 当我删除JSON代码时,有一堆字段就像上面的字段一样工作。当我添加JSON过滤器时,由于某种原因,整个日志只会从elasticserach / kibana中

  • 问题内容: 如何使用Logstash将数据从Elasticsearch导出到CSV?我只需要包括特定的列。 问题答案: 安装2个插件:elasticsearch输入插件和csv输出插件。然后创建一个配置文件。这是这种情况的一个很好的例子。 您现在就可以开始了,只需运行: 并检查中指定的文件。

  • 问题内容: 我想使用elasticsearch-river-mysql以便将数据从MySQL数据库连续传输到ElasticSearch。我是ES和Rivers的初学者,所以希望您能为我的问题提供帮助。 据我所知,数据将从MySQL数据库流式传输到ES集群,后者将自动对其进行索引。那是对的吗?我需要了解任何超时或限制吗? 关系数据库表之间的外键关系将如何转换为ES?包含外键的表行是否将成为ES文档的

  • 问题内容: 首先我要说的是,我在这里已经通过了尽可能多的示例,但仍然无法奏效。我不确定是否是因为日志文件中JSON的复杂性。 我正在寻找示例日志条目,让Logstash读取它,并将JSON作为JSON发送到ElasticSearch。 (简化的)示例如下所示: 我尝试过的Logstash配置无效。到目前为止最接近的是: 我也尝试过: 我只想获取上面发布的JSON并将其“按原样”发送给Elastic

  • 问题内容: 我有一个名为的变量,它具有以下格式的今天的日期:。然后,将其格式化为MySQL的Date类型格式,即。这段代码可以做到: 我要做的是将其恢复为Date类型。我尝试了一些方法,但是它们没有用。主要解决方案是按照其他的问题中所述进行操作](http://codingdict.com/questions/2936),并通过一个小小的mod达到了我想要的功能: 但是它不起作用,因为尝试解析时出

  • 问题内容: 我在配置logstash以输出到AWS EC2上的Elasticsearch集群时遇到麻烦。 我正在使用Logstash版本1.1.5和Elasticsearch 1.19.8。 这是我在logstash中的输出配置: 这是elasticsearch.yml中的相应配置 我使用以下命令启动logstash: 在启动一段时间后,出现以下故障: 我的怀疑是,logstash需要使用诸如cl