2016-11-25 5 views
0

フィールドに「原因」という文字列が含まれていて、そのパターンに異なるパターンが適用され、上書きされても何らかの理由で実行される場合は、次のlogstash grok文を実行する必要があります。正規表現パターンは確かに個別に動作し、問題は以下のロジックにあります。すべてのヘルプ感謝、感謝Logstash Grok上書きが機能しない

grok { 
     patterns_dir => ["./patterns"] 
     match => ["message", "%{GREEDYDATA}\n%{JAVA_EXCEPTION_SHORT:exception}"] 
} 

if [exception] =~ "Caused" { 
     grok { 
      patterns_dir => ["./patterns"] 
      match => ["exception", "{JAVA_EXCEPTION_LONG:exception}"] 
      overwrite => ["exception"] 
     } 
} 

カスタムパターン:

JAVA_EXCEPTION_LONG (?<=^Caused by:).*?Exception 
JAVA_EXCEPTION_SHORT ^.+Exception 

例ログメッセージ:あなたはこの行の%を逃しているので

2016-11-15 05:19:28,801 ERROR [App-Initialisation-Thread] appengine.java:520 Failed to initialize external authenticator myapp Support Access || [email protected]:/mnt/data/install/assembly [email protected] 
java.lang.IllegalArgumentException: Could not check if provided root is a directory 
    at com.myapp.io.AbstractRootPrefixedFileSystem.checkAndGetRoot(AbstractRootPrefixedFileSystem.java:67) 
    at com.myapp.io.AbstractRootPrefixedFileSystem.<init>(AbstractRootPrefixedFileSystem.java:30) 
    at com.myapp.io.s3.S3FileSystem.<init>(S3FileSystem.java:32) 
    at com.myapp.io.s3.S3FileSystemDriver.loadFileSystem(S3FileSystemDriver.java:60) 
    at com.myapp.io.FileSystems.getFileSystem(FileSystems.java:55) 
    at com.myapp.authentication.ldap.S3LdapConfigProvider.initializeCloudFS(S3LdapConfigProvider.java:77) 
    at com.myapp.authentication.ldap.S3LdapConfigProvider.loadS3Config(S3LdapConfigProvider.java:51) 
    at com.myapp.authentication.ldap.S3LdapConfigProvider.getLdapConfig(S3LdapConfigProvider.java:42) 
    at com.myapp.authentication.ldap.DelegatingLdapConfigProvider.getLdapConfig(DelegatingLdapConfigProvider.java:45) 
    at com.myapp.authentication.ldap.LdapExternalAuthenticatorFactory.create(LdapExternalAuthenticatorFactory.java:28) 
    at com.myapp.authentication.ldap.LdapExternalAuthenticatorFactory.create(LdapExternalAuthenticatorFactory.java:10) 
    at com.myapp.frob.appengine.getExternalAuthenticators(appengine.java:516) 
    at com.myapp.frob.appengine.startUp(appengine.java:871) 
    at com.myapp.frob.appengine.startUp(appengine.java:754) 
    at com.myapp.jsp.KewServeInitContextListener$1.run(QServerInitContextListener.java:104) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.nio.file.NoSuchFileException: fh-ldap-config/ 
    at com.upplication.s3fs.util.S3Utils.getS3ObjectSummary(S3Utils.java:55) 
    at com.upplication.s3fs.util.S3Utils.getS3FileAttributes(S3Utils.java:64) 
    at com.upplication.s3fs.S3FileSystemProvider.readAttributes(S3FileSystemProvider.java:463) 
    at com.myapp.io.AbstractRootPrefixedFileSystem.checkAndGetRoot(AbstractRootPrefixedFileSystem.java:61) 
+0

あなたのconfをテストするためのログがない場合、私は問題が比較になると思います。 – baudsp

+0

thanks @baudsp私は追加情報を追加しました。これも試しました:if [例外] {}に「発生」しましたが、また失敗しました – Arturski

+0

しかし、私は例外がファイルが欠落していることを詳述していますか?あなたは確かにif条件からのものですか? – Kulasangar

答えて

1

GROKフィルタが失敗します。

match => ["exception", "{JAVA_EXCEPTION_LONG:exception}"] 

それは次のようになります。解析が失敗したので

match => ["exception", "%{JAVA_EXCEPTION_LONG:exception}"] 

、フィールドexceptionは上書きされませんでした。

+0

の出力ではなく、grokステートメントによって解析されるものの例です!私はそれに気づいていないとは信じられない!それは働いた – Arturski

+0

@Arturskiようこそ!私はパターンをgrokconstructor.appspot.com/do/match#resultでテストしようとしている間にそれを発見しました。これはgrokパターンをテストするのに非常に便利です。 – baudsp

関連する問題