2017-10-13 2 views
1

로그에서 정보를 추출하기 위해 logstash에서 ruby ​​스크립트를 실행 중입니다. 어떤 이유로이 경우 절에 오지 않을거야 인해Logstash의 Ruby 스크립트

if [status] == "Txn posted on POS" 
{ 
ruby{ 
     init => "@@map = {}" 
     code => "@@map['transactionStartTime'] = event.get('logTimestamp'),@@map['startTxnNumber'] = event.get('txnNumber'),@@map['startTillNumber'] = event.get('tillNumber')" 
    } 


} 
else if [status] == "Txn persisted in MREP" 
{ 
    ruby{ 
     code => "if @@map['startTxnNumber'] == event.get('txnNumber') 
        event.set('startedTime', @@map['startTxnNumber']) 
       end" 
     } 

}

. 나는 문제를 이해할 수 없다. 문법 오류가 없다. 확실하다.

+0

if 절을 트리거해야하는 샘플 로그 라인을 표시 할 수 있습니까? – Val

+0

로그를 보여 주면 이해하기가 더 어려울 것입니다. 그러나 여기에 있습니다 : –

+0

출력 섹션에'stdout {codec => rubydebug}'를 추가하고 끝 이벤트가 어떻게 보이는지 보여줄 수 있습니다 – Val

답변

1

나는 문제를 발견하고 고쳤다. 이 값은 비교되지 않도록 문제 때문에 데이터 유형 불일치 조건

if @@map['startTxnNumber'] == event.get('txnNumber') 

txnNumber 문자열이고 startTxnNumber는 INT 하였다이었다.