ntimo / graylog-mailcow-content-pack

A content pack for Graylog that creates magic mailcow insights
MIT License
26 stars 6 forks source link

Installation fails, Missing Stream for widget entity #14

Open 0x556c79 opened 1 year ago

0x556c79 commented 1 year ago

The installation in Graylog 5.1.0 fails. The problem seems to be the dashboard. If I create a new version and take out the dashboard, the content-pack can be installed.

The following error is displayed in the Graylog log:

2023-05-21 22:22:00,948 ERROR: org.graylog2.shared.rest.exceptionmappers.AnyExceptionClassMapper - Unhandled exception in REST resource org.graylog2.contentpacks.exceptions.ContentPackException: Failed to install content pack <e47c37bf-86ad-405f-80c1-5c26ef8464fe/19> at org.graylog2.contentpacks.ContentPackService.installContentPack(ContentPackService.java:161) ~[graylog.jar:?] at org.graylog2.contentpacks.ContentPackService.installContentPack(ContentPackService.java:102) ~[graylog.jar:?] at org.graylog2.rest.resources.system.contentpacks.ContentPackResource.installContentPack(ContentPackResource.java:295) ~[graylog.jar:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?] at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52) ~[graylog.jar:?] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:134) ~[graylog.jar:?] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:177) ~[graylog.jar:?] at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:219) ~[graylog.jar:?] at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:81) ~[graylog.jar:?] at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:478) ~[graylog.jar:?] at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:400) ~[graylog.jar:?] at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81) ~[graylog.jar:?] at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255) [graylog.jar:?] at org.glassfish.jersey.internal.Errors$1.call(Errors.java:248) [graylog.jar:?] at org.glassfish.jersey.internal.Errors$1.call(Errors.java:244) [graylog.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:292) [graylog.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:274) [graylog.jar:?] at org.glassfish.jersey.internal.Errors.process(Errors.java:244) [graylog.jar:?] at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265) [graylog.jar:?] at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234) [graylog.jar:?] at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:684) [graylog.jar:?] at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:356) [graylog.jar:?] at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:200) [graylog.jar:?] at com.codahale.metrics.InstrumentedExecutorService$InstrumentedRunnable.run(InstrumentedExecutorService.java:180) [graylog.jar:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:?] at java.lang.Thread.run(Unknown Source) [?:?] Caused by: org.graylog2.contentpacks.exceptions.ContentPackException: Missing Stream for widget entity at org.graylog2.contentpacks.model.entities.WidgetEntity.lambda$toNativeEntity$1(WidgetEntity.java:162) ~[graylog.jar:?] at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?] at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?] at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?] at java.util.HashMap$KeySpliterator.forEachRemaining(Unknown Source) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?] at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:?] at org.graylog2.contentpacks.model.entities.WidgetEntity.toNativeEntity(WidgetEntity.java:170) ~[graylog.jar:?] at org.graylog2.contentpacks.model.entities.ViewStateEntity.lambda$toNativeEntity$0(ViewStateEntity.java:125) ~[graylog.jar:?] at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[?:?] at java.util.HashMap$KeySpliterator.forEachRemaining(Unknown Source) ~[?:?] at java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[?:?] at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[?:?] at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(Unknown Source) ~[?:?] at java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[?:?] at java.util.stream.ReferencePipeline.collect(Unknown Source) ~[?:?] at org.graylog2.contentpacks.model.entities.ViewStateEntity.toNativeEntity(ViewStateEntity.java:126) ~[graylog.jar:?] at org.graylog2.contentpacks.facades.ViewFacade.decode(ViewFacade.java:137) ~[graylog.jar:?] at org.graylog2.contentpacks.facades.ViewFacade.createNativeEntity(ViewFacade.java:127) ~[graylog.jar:?] at org.graylog2.contentpacks.ContentPackService.installContentPack(ContentPackService.java:152) ~[graylog.jar:?]  ... 29 more

I have already tried to find out what stream is missing, but could not find anything.

andoaldo commented 4 months ago

My solution.

  1. On the mailcow you must create file docker-compose.override.yml
  2. Inside file create lines like this: version: '2.1' services: postfix-mailcow: # or any other logging: driver: "gelf" options: gelf-address: "udp://graylog.address:12201"
  3. On the graylog server you msut create Gelf-Input
  4. In the file mailcow-content-pack.json you must search and replace all contener names: mailcowdockerized_dovecot-mailcow_1 with mailcowdockerized-dovecot-mailcow-1