2014-11-19 1 views
0

rabbitmq 서버의 logstash를 사용하여 elasticsearch에 데이터를 저장하려고합니다. 내가 elasticsearch 클러스터의 다른 유형에 데이터를 넣어 logstash 필요하지만 logstash를 사용한 동적 elasticsearch index_type

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 명령을 보인다. 내가 뭘 유형을 의미하는 것입니다 :

"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는 "로그"("로그"_type)라는 이름의 유형을 만들어 볼 수있는 검색 결과의 일부입니다. 내 프로젝트에서 나는 동적 인 유형이 필요하고 입력 데이터를 기반으로 만들어야합니다. 예를 들어 : 나는 grok..But가 수 couldnt는 사용하여 시도

.. 내 입력 데이터는

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

처럼 보인다 그리고 난 이름 "TYPE_1"와 elasticsearch의 새로운 유형을 만들 수 logstash 필요 이 특정 requirment를 얻으십시오.

답변

5

그것은

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

INDEX_TYPE이 (https://github.com/elastic/logstash/issues/3151 참조) 1.5 DOCUMENT_TYPE로 이름이 바뀌 었습니다 이런 식으로 날 위해 일했습니다. 현재 문서 : https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html#plugins-outputs-elasticsearch-document_type –

+0

감사합니다. 새 항목으로 마이그레이션하는 동안주의 할 것입니다. – Ysak

관련 문제