일부 로그를 읽으려면 logstash를 사용하고 있습니다. 타임 스탬프가 시간 필드 (예 : 08 : 28 : 20,500)만으로 구성된 로그 파일은 있지만 날짜 필드는 없습니다. 오늘의 datetime과 매핑하고 싶습니다. 날짜 필터로 어떻게해야합니까?Logstash Parse Date Issue
내 로그 파일의 내용은 다음과 같습니다.
08:28:20,500 INFO [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 27) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)>>"C:\CIGNA\jboss\jboss.log"
이 문제를 해결할 수있는 사람이 있습니까? 사전에 감사드립니다.
수정 루비를 필터로 사용한 후 문제를 해결할 수있었습니다. 그러나 때때로 루비 예외가 있습니다. 아래에서 볼 수 있듯이 첫 번째 메시지는 루비 예외가 발생했지만 두 번째 메시지는 정상적으로 실행됩니다. 어떻게 이런 일이 일어날 지 궁금해 할 것입니다. 감사.
{
"message" => "10:30:39 FATAL [org.jboss.as.server] (default task-1) JBAS015957: Server boot has failed in an unre
coverable manner; exiting. See previous messages for details.\r",
"@version" => "1",
"@timestamp" => "2016-07-26T02:43:17.379Z",
"path" => "C:/CIGNA/jboss/jboss.log",
"host" => "SIMSPad",
"type" => "txt",
"Time" => "10:30:39",
"Level" => "FATAL",
"JavaClass" => "org.jboss.as.server",
"Message" => "(default task-1) JBAS015957: Server boot has failed in an unrecoverable manner; exiting. See previo
us messages for details.\r",
"tags" => [
[0] "_rubyexception"
]
}
{
"message" => "10:30:39 DEBUG [org.jboss.as.quickstarts.logging.LoggingExample] (default task-1) Settings reconfig
ured: JBOSS EAP Resettlement\r",
"@version" => "1",
"@timestamp" => "2016-07-26T02:30:39.000Z",
"path" => "C:/CIGNA/jboss/jboss.log",
"host" => "SIMSPad",
"type" => "txt",
"Time" => "10:30:39",
"Level" => "DEBUG",
"JavaClass" => "org.jboss.as.quickstarts.logging.LoggingExample",
"Message" => "(default task-1) Settings reconfigured: JBOSS EAP Resettlement\r"
}
내 logstash .conf 파일의 업데이트 된 필터 부분은 다음과 같습니다.
filter {
grok {
match => { "message" => '\A%{TIME:Time}%{SPACE}%{WORD:Level}%{SPACE}\[%{PROG:JavaClass}]%{SPACE}%{JAVALOGMESSAGE:Message}'}
}
ruby {
code => "
p = Time.parse(event['message']);
event['@timestamp'] = LogStash::Timestamp.new(p);
"
}
}
내가 샘플 로그 행에있는 타임 스탬프 (날짜 또는 시간)을 볼 수 없습니다. – Val
죄송합니다, miscopied. 나는 그것을 지금 편집했다. 생각 나게 해줘서 고마워. –
날짜 필터가 "타임 스탬프"가 아닌 "시간"과 일치한다고 가정합니다. 아니면 "타임 스탬프"다른 어딘가에 있습니까? – pandaadb