【问题标题】:Dynamic elasticsearch index_type using logstash使用logstash的动态elasticsearch index_type
【发布时间】:2023-03-16 14:03:01
【问题描述】:

我正在使用来自 rabbitmq 服务器的 logstash 在 elasticsearch 上存储数据。

我的 logstash 命令看起来像

logstash -e 'input{
rabbitmq {
    exchange => "redwine_log"
    key => "info.redwine"
    host => "localhost"
    durable => true
    user => "guest"
    password => "guest"
}
}

output {
  elasticsearch {
    host => "localhost"
    index => "redwine"
  }
}
filter {
  json {
    source => "message"
    remove_field => [ "message" ]
  }
}'

但我需要 logstash 将数据放入 elasticsearch 集群中的不同类型。我所说的类型是:

"hits": {
      "total": 3,
      "max_score": 1,
      "hits": [
         {
            "_index": "logstash-2014.11.19",
            "_type": "logs",
            "_id": "ZEea8HBOSs-QwH67q1Kcaw",
            "_score": 1,
            "_source": {
               "context": [],
               "level": 200,
               "level_name": "INFO",

这是搜索结果的一部分,您可以在其中看到logstash,默认创建一个名为“logs”的类型(_type:“logs”)。在我的项目中,我需要动态类型,并且应该根据输入数据创建。 例如:我的输入数据看起来像

{
    "data":"some data",
    "type": "type_1"
}

我需要logstash在elasticsearch中创建一个名为“type_1”的新类型..

我尝试使用 grok..但无法获得此特定要求。

【问题讨论】:

    标签: elasticsearch logstash grok


    【解决方案1】:

    它以这种方式对我有用

    elasticsearch {
        host => "localhost"
        index_type => "%{type}"
      }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2015-08-27
    • 2018-08-14
    相关资源
    最近更新 更多