2015-02-03 2 views
0

내 시스템 감사 로그에 created_at ": 1422765535789와 같은 날짜 형식이 포함되어 있으므로 탄성 검색 결과에도 날짜가 같은 스타일로 표시되지만 변환하고 인쇄하려면 1422765535789를 유닉스로 인쇄하십시오 (또 다른 질문 스레드에 의해 제안) 스타일 날짜 형식입니다.logstash 탄성 검색 날짜 출력이 다릅니다

나는 syslog 파일에서이 형식을 사용했습니다.하지만 유닉스 스타일의 날짜 형식 날짜 { 경기 => [ "created_at"에 위의 값을 받고 있지 않다 , "UNIX_MS"] }

안녕하세요, 저는 syslog에서 코드를 업데이트했습니다. 그러나 created_at를 여전히 elast에 출력하고 있습니다. 1422765535789 같은 동일한 형식에 IC 검색 페이지는 date 필터는 @timestamp 필드 값을 업데이트하는 데 사용되는 수정 된 코드

input { 
     stdin { 

     } 
} 


filter { 
     grok { 
     match => [ "message", "%{NUMBER:created_at}" 
     ] 
    } 
if [message] =~ /^created_at/ { 

     date { 
       match => [ "created_at" , "UNIX_MS" ] 
     } 
     ruby { 
      code => " 
        event['created_at'] =  Time.at(event['created_at']/1000); 
      " 
     } 
    } 
} 
output { 
    elasticsearch { host => localhost } 
    stdout { codec => rubydebug } 
} 

답변

0

을 찾아주십시오.

input { 
    stdin { 

    } 
} 

filter { 
    grok { 
      match => [ "message", "%{NUMBER:created_at:int}" 
        ] 
    } 
    if "_grokparsefailure" not in [tags] 
    { 
      date { 
        match => [ "created_at" , "UNIX_MS" ] 
      } 
      ruby { 
        code => " 
          event['created_at'] = Time.at(event['created_at']/1000); 
        " 
      } 
    } 
} 

output 
{ 
    stdout { 
      codec => rubydebug 
    } 
} 

여기 내 설정입니다. 1422765535789을 입력하면 값을 구문 분석하고 @timestamp 필드 값을 업데이트 할 수 있습니다.

출력 당신은 @timestamp의 값이 created_at와 동일 찾을 수

{ 
     "message" => "1422765535789", 
     "@version" => "1", 
    "@timestamp" => "2015-02-01T04:38:55.789Z", 
      "host" => "ABC", 
    "created_at" => "2015-02-01T12:38:55.000+08:00" 
} 

입니다. 그리고 필터는 created_at을 UTC 형식으로 변환하는 데 사용됩니다.

참고하시기 바랍니다.

+0

안녕하세요, 당신의 도움을 주셔서 감사합니다. 위의 코드를 syslog에 사용했지만 logstash 오류가 실행되는 동안이 오류가 발생합니다 : //logstash.net/docs/1.4.2/plugin-milestones {: level => : warn} 필터 워커 예외 { "예외"=> # [ "(루비 필터 코드) : 2 : ("eval") ","org/jruby/RubyProc.java : 271 :'call "에서", "/logstash/logstash-1.4.2/lib/logstash/filters/ruby.rb:38:38 : : 63 :''초기화 '' ', "org/jruby/RubyProc.java : 271 :''call'", "/"/logstash/logstash-1.4.2/lib/logstash/pipeline.rb:262:in'filter ' ", – organicuser

+0

오류 로그는 created_at가 타임 스탬프가 없음을 의미합니다. 따라서 created_at 필드에 유효한 타임 스탬프 값인 –

+0

이 있는지 확인하기 위해 if를 추가 할 수 있습니다. 안녕하세요, 제 질문에 업데이트 된 코드를 찾으십시오. 나는 여전히 1422765535789와 같은 로그 은닉 UI 페이지에서 같은 형식을 얻고있다. 감사합니다. – organicuser