2013-11-26 1 views
4

logstash를 사용하여 로그 파일을 읽으려고합니다. 나는 grok을 사용하여 메시지의 숫자를 숫자로 파싱하여 필드로 저장했습니다. 하지만 제가 알기 론, 키바 나는 시간이 지남에 따라 메시지가 발생하는 횟수를 그래프로 나타 냈습니다.Kibana에서 필드의 다른 값을 그래프로 표시하는 방법 - ClassCast 예외

나는 메시지가 발생하는 횟수 이상으로 키바나를 사용하여 행운을 얻지 못했습니다. 내 메시지의

예 :

1) "JvmStatsLoggerService - gc count: 58" 
2) "JvmStatsLoggerService - gc time: 2392 ms" 

I 추출/58 2392..I 마지막 5mins 이상 COUNT와 시간의 서로 다른 값을 그래프로 원하는 해당하는 값을 저장할 수와 시간 필드를 만들거나 시간이 지남에 따라 로그 파일에서 발생한 횟수보다 10 분이 소요됩니다.

live demo에 그것을 시도하지만 내 키바의 localost 콘솔에 내가 어떤 도움을 주시면 더 좋구요

Oops! ClassCastException[org.elasticsearch.index.fielddata.plain.PagedBytesIndexFieldData cannot be cast to org.elasticsearch.index.fielddata.IndexNumericFieldData] 

이 오류가 발생합니다.

+0

그것은 당신의 데이터가 아니라 숫자로보다, 문자열로 매핑 될 가능성을 지정하는 것입니다. ES를'curl -XGET http : // localhost : 9200/logstash-2013.11.26/_mapping'과 같이 직접 질의하여이를 확인할 수 있습니다. 이것이 문제라면 [this] (https://logstash.jira.com/browse/LOGSTASH-628) 또는 [this] (http://untergeek.com/2012/10/12)와 같은 페이지를 조금 둘러보십시오./using-elasticsearch-mappings-appropriate-to-map-as-type-ip-int-float-etc/등)를 사용하면 솔루션을 제공 할 수 있습니다. – rutter

+0

나는이 돌연변이를 이미하고 있었다 { convert => [ "count1", "integer"] }. 당신이 나에게 준 컬 디버깅 예제를 시도해 보도록하겠습니다. –

답변

7

탄성 검색 색인은 개수 및 시간 필드가 정수라는 것을 모릅니다. 유형의 그것을 인식하게하는 가장 쉬운 방법은 grok 수 패턴의 유형 (:int 마지막 통지)

grok { 
    match => ["message", "%{INT:timeout:int}"] 
} 
관련 문제