我正在使用来自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",
这是搜索结果的一部分,您可以通过defualt看到logstash创建一个名为"logs"的类型(_type:"logs").在我的项目中,我需要类型是动态的,应该根据输入数据创建.例如:我的输入数据看起来像
{ "data":"some data", "type": "type_1" }
我需要logstash在elasticsearch中创建一个名为"type_1"的新类型.
我尝试使用grok ..但无法得到这个特定的要求.
它以这种方式为我工作
elasticsearch { host => "localhost" index_type => "%{type}" }