2015-01-10 2 views
0

내 기록을 ElasticSearch (1.3.4)에 색인하려고하면 예외가 발생합니다. 내가 보는 예외의 근본 원인은 다음과 같다 내가 ElasticSearch 내 로그를 보낼 logstash (1.4.2)를 사용하고오류 잘못된 형식 : ElasticSearch에서 색인을 생성 할 때 [ISO8601]

[2015-01-09 15:53:00,953][DEBUG][action.admin.indices.create] [perfgen04 1] [logaggr-2015.01.09] failed to create 
org.elasticsearch.index.mapper.MapperParsingException: mapping [test] 
    at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:386) 
    at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:328) 
    at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:153) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.lang.IllegalArgumentException: Invalid format: [ISO8601]: Illegal pattern component: I 
    at org.elasticsearch.common.joda.Joda.forPattern(Joda.java:160) 
    at org.elasticsearch.common.joda.Joda.forPattern(Joda.java:37) 
    at org.elasticsearch.index.mapper.core.TypeParsers.parseDateTimeFormatter(TypeParsers.java:295) 
    at org.elasticsearch.index.mapper.core.DateFieldMapper$TypeParser.parse(DateFieldMapper.java:155) 
    at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:289) 
    at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseObjectOrDocumentTypeProperties(ObjectMapper.java:217) 
    at org.elasticsearch.index.mapper.object.RootObjectMapper$TypeParser.parse(RootObjectMapper.java:136) 
    at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:209) 
    at org.elasticsearch.index.mapper.DocumentMapperParser.parseCompressed(DocumentMapperParser.java:190) 
    at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:440) 
    at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:313) 
    at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:383) 
    ... 5 more 
Caused by: java.lang.IllegalArgumentException: Illegal pattern component: I 
    at org.elasticsearch.common.joda.time.format.DateTimeFormat.parsePatternTo(DateTimeFormat.java:570) 
    at org.elasticsearch.common.joda.time.format.DateTimeFormat.createFormatterForPattern(DateTimeFormat.java:693) 
    at org.elasticsearch.common.joda.time.format.DateTimeFormat.forPattern(DateTimeFormat.java:181) 
    at org.elasticsearch.common.joda.Joda.forPattern(Joda.java:158) 
    ... 16 more 

(전체 스택 트레이스를 제공하기 위해 내 초기 게시물을 편집). 내 grok 필터는 매우 간단하고 다음과 같습니다. 나는 타임 스탬프를 문자열 "logts"로 유지하고있다.

filter { 
    grok { 
     match => [ "message", "%{DATA:logts}%{SPACE}\[%{LOGLEVEL:level}%{SPACE}]%{SPACE}\[%{DATA:thread}]%{SPACE}\[%{DATA:classname}]%{SPACE}%{GREEDYDATA:details}" ] 
    }  
} 

내 로그 파일에서 샘플 라인이다 : 나는 어떤 "[ISO8601]"출력에 표시되지 않습니다

내가 '-vv'플래그 logstash 실행
2015-01-09 14:53:07,035-0800 [ERROR] [pool-1-thread-2] [LogGenerator] invocation count=101,time=95840107816543,metric=6688916707300087716 

합니다.

잘못된 형식이 도입 된 곳을 아는 사람이 있습니까?

요점은 here입니다.

+0

붙여 넣은 항목에 제목 줄에 넣은 오류 메시지가 나타나지 않습니다. 패턴은 디버거에서 정상적으로 작동합니다. "잘못된 패턴 구성 요소 : I"에 유의하십시오. –

+0

OP에 /etc/logstash/conf.d에 다른 설정 파일이 있다고 의심됩니다. 나는'grep ISO8601/etc/logstash/conf.d/*'를 시도 할 것이다. –

+0

내 제목에있는 오류 메시지를 보여주는 내 질문을 편집했습니다. 형식 문자열 "ISO8601"을 구문 분석하여 "불법 패턴 구성 요소 : I"에 대해 불평하는 시도와 같습니다. 하지만 "ISO8601"형식을 어디서 얻을 수 있는지 설명 할 수는 없습니다. 내 /etc/logstash/conf.d를 확인하고 거기에 설정 파일이 없습니다. – Raylite3

답변

0

내 Elasticsearch 설치 (테스트 환경)를 삭제하고 다시 설치하면 다시 작동하기 시작합니다.

색인을 삭제해도 문제가 해결되었다고 생각됩니다.

관련 문제