2017-10-17 2 views
0

ELK 스택을 처음 사용했습니다. 지난 1 주간의 대담과 신축성있는 수사를 탐구합니다. 타임 스탬프 (기본값은 문자열 유형으로 간주 됨)를 날짜 유형 필드로 변환하는 데 어려움이 있습니다. 문자열 "Thu May 18 06:39:44 CEST 2017"은 logstash 필터 날짜 플러그인을 사용하여이 문자열을 날짜 필드로 변환하려는 도구 로그의 타임 스탬프를 나타냅니다. 나는 그것을 어떻게 만드는지 모른다. 어떤 제안이나 도움을 주시면 감사하겠습니다. 감사 !logstash 필터 플러그인에서 문자열을 데이터 필드로 변환하는 방법

filter {  
csv {  
    columns =>["Make","Color","Price","Sold"]  
    separator =>","  
}  
date 
{  
match => ["Sold", "DD-MM-YYYY"] # Not sure how to match timestamp in log file to convert to date type.   
target => "Sold"  
}  
mutate{  
    convert => ["Price","float"]  
    }  
} 

// 내 csv 파일에 아래 로그가 포함되어 있다고 가정 해 보겠습니다. 타임 스탬프 아이폰,은, 260의 마지막 필드, 목 9월 7일 중부 유럽 표준시 11시 05분 7초 2017 아이폰, 금, (400), 목 10월 7일 12시 5분 7초가 CEST

+0

먼저 노력의 일부를 표시합니다. –

+0

logstash 설정 파일을 공유하십시오. –

+0

@HatimStovewala. 답장을 보내 주셔서 감사합니다. pls는 config 파일을 찾습니다. – Arockiyaraj

답변

0

2017 당신의 색인을 설정

first below 명령. (... 열 당신의 휴식과 자신의 종류로 교체하십시오. Elasticsearch Put Mapping를 참조하십시오)

PUT date 
{ 
    "mappings": { 
    "date": { 
     "properties": { 
     ..., 
     "TimeStamp": { 
      "type": "date", 
      "format": "EEE MMM dd HH:mm:ss zzz yyyy" 
     }, 
     ... 
     } 
    } 
    } 
} 

지금, 당신은 ES로 데이터를 밀어 logstash으로 앞서 갈 수 있습니다. logstash 설정 파일에서 날짜 필터를 제거하십시오. ES는 문자열을 날짜로 구문 분석합니다.

참고 : 샘플 데이터로 테스트하는 동안 CEST은 시간대로 허용되지 않습니다. CEST를 CST로 대체해야 할 것 같네요. 이러한 종류의 구문 분석에 약간의 문제가 있습니다 (refer).

시간대가 데이터에 CEST에 고정되어있는 경우 다음이 해결 수행 할 수 있습니다

PUT date 
{ 
    "mappings": { 
    "date": { 
     "properties": { 
     ..., 
     "TimeStamp": { 
      "type": "date", 
      "format": "EEE MMM dd HH:mm:ss 'CEST' yyyy" 
     }, 
     ... 
     } 
    } 
    } 
} 
+0

답변 해 주셔서 감사합니다. 나는이 솔루션을 시도하고 당신을 업데이 트합니다! – Arockiyaraj

+0

그것은 작동합니다! 내 시간을 구 했잖아. 고마워요 :) – Arockiyaraj