Ich habe die folgenden Logstash Grok-Anweisungen, die ausgeführt werden sollten, wenn das Feld eine Zeichenfolge enthält "verursacht" in diesem Fall ein anderes Muster angewendet wird und es überschrieben wird, aber aus irgendeinem Grund funktioniert es. Die Regex-Muster funktionieren definitiv individuell und das Problem ist in der folgenden Logik. Jede Hilfe dankbar, dankeLogstash Grok Überschreiben funktioniert nicht
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"]
}
}
Kundenspezifische Muster:
JAVA_EXCEPTION_LONG (?<=^Caused by:).*?Exception
JAVA_EXCEPTION_SHORT ^.+Exception
Beispiel Log-Nachricht:
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)
Ohne irgendwelche Protokolle, um Ihr conf gegen zu testen, denke ich, das Problem kommt der Vergleich ('if [Ausnahme] = ~" Caused "') – baudsp
danke @baudsp Ich habe die zusätzlichen Informationen hinzugefügt, ich habe es auch versucht: if "Caused" in [Ausnahme] {}, war aber auch nicht erfolgreich – Arturski
Aber ich fühle mich, wie die Ausnahme über eine fehlende Datei ausarbeitet? Sind Sie sicher, dass der Schuldige von der if-Bedingung stammt? – Kulasangar