Reports not getting generated on Gralog Enterrpose 3.0.0 on Centos 7

Hi Friends,

I have installed Graylog Enterprise version 3.0.0 on Centos 7.5 via rpms. Somehow the Report part is not working properly as I am not able to send any Report. I tried updating the configuration file by including bin_dir & report_disable_sandbox = true but still the same issue. headless_shell and chromedriver commands are running without any issues on the machine.

Please let me know if any further information is required about the setup or anything else…

The error I am getting

2019-04-02T08:00:03.909+05:30 INFO [ReportService] Starting report render engine: http://localhost:9515
2019-04-02T08:00:14.133+05:30 INFO [ChromeDriverCleanupPeriodical] Shutting down ChromeDriver, no active sessions.
2019-04-02T08:01:04.353+05:30 INFO [ReportService] Starting report render engine: http://localhost:9515
2019-04-02T08:01:14.215+05:30 WARN [LicenseChecker] License violation - Detected irregular traffic records
2019-04-02T08:02:04.434+05:30 ERROR [ReportRenderJob] Failed to generate report:
com.github.rholder.retry.RetryException: Retrying failed to complete successfully after 3 attempts.
at com.github.rholder.retry.Retryer.call(Retryer.java:174) ~[graylog.jar:?]
at org.graylog.plugins.report.scheduler.ReportRenderJob.doRun(ReportRenderJob.java:74) [graylog-plugin-enterprise-3.0.0.jar:?]
at org.graylog.plugins.report.scheduler.ReportRenderJob.run(ReportRenderJob.java:60) [graylog-plugin-enterprise-3.0.0.jar:?]
at org.graylog.plugins.report.scheduler.ReportRenderSystemJob.execute(ReportRenderSystemJob.java:25) [graylog-plugin-enterprise-3.0.0.jar:?]
at org.graylog2.system.jobs.SystemJobManager$1.run(SystemJobManager.java:89) [graylog.jar:?]
at com.codahale.metrics.InstrumentedScheduledExecutorService$InstrumentedRunnable.run(InstrumentedScheduledExecutorService.java:241) [graylog.jar:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_171]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_171]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_171]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_171]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
Caused by: org.openqa.selenium.WebDriverException: unknown error: cannot create default profile directory
(Driver info: chromedriver=72.0.3583.1 (9ae827a6f6bbc9186d4e79681de885ce77d5bfe9),platform=Linux 3.10.0-862.3.2.el7.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 7 milliseconds
Build info: version: ‘unknown’, revision: ‘unknown’, time: ‘unknown’
System info: host: ‘linuxtest.example.com’, ip: ‘192.168.2.32’, os.name: ‘Linux’, os.arch: ‘amd64’, os.version: ‘3.10.0-862.3.2.el7.x86_64’, java.version: ‘1.8.0_171’
Driver info: driver.version: RemoteWebDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_171]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_171]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_171]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_171]
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214) ~[?:?]
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166) ~[?:?]
at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$errorHandler$0(JsonWireProtocolResponse.java:54) ~[?:?]
at org.openqa.selenium.remote.HandshakeResponse.lambda$getResponseFunction$0(HandshakeResponse.java:30) ~[?:?]
at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:126) ~[?:?]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_171]
at java.util.Spliterators$ArraySpliterator.tryAdvance(Spliterators.java:958) ~[?:1.8.0_171]
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126) ~[?:1.8.0_171]
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498) ~[?:1.8.0_171]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485) ~[?:1.8.0_171]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[?:1.8.0_171]
at java.util.stream.FindOps$FindOp.evaluateSequential(FindOps.java:152) ~[?:1.8.0_171]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_171]
at java.util.stream.ReferencePipeline.findFirst(ReferencePipeline.java:464) ~[?:1.8.0_171]
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:128) ~[?:?]
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:74) ~[?:?]
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136) ~[?:?]
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) ~[?:?]
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:213) ~[?:?]
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:131) ~[?:?]
at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:144) ~[?:?]
at org.graylog.plugins.report.render.RemoteBrowserService.connectDriver(RemoteBrowserService.java:156) ~[?:?]
at org.graylog.plugins.report.render.RemoteBrowserService.connectDriver(RemoteBrowserService.java:111) ~[?:?]
at org.graylog.plugins.report.api.ReportService.fetchPdf(ReportService.java:259) ~[?:?]
at org.graylog.plugins.report.scheduler.ReportRenderJob.lambda$doRun$0(ReportRenderJob.java:64) ~[?:?]
at com.github.rholder.retry.AttemptTimeLimiters$NoAttemptTimeLimit.call(AttemptTimeLimiters.java:78) ~[graylog.jar:?]
at com.github.rholder.retry.Retryer.call(Retryer.java:160) ~[graylog.jar:?]
… 12 more
2019-04-02T08:02:04.444+05:30 INFO [SystemJobManager] SystemJob <38d59870-54ef-11e9-909a-000c29210bb3> [org.graylog.plugins.report.scheduler.ReportRenderSystemJob] finished in 120547ms.

./headless_shell --no-sandbox
> [0402/114401.948602:WARNING:resource_bundle.cc(358)] locale_file_path.empty() for locale 
[0402/114401.955723:WARNING:resource_bundle.cc(358)] locale_file_path.empty() for locale 
[0402/114402.322172:ERROR:gpu_process_transport_factory.cc(967)] Lost UI shared context.
[0402/114402.425484:WARNING:resource_bundle.cc(358)] locale_file_path.empty() for locale 
[root@linuxtest bin]# ./chromedriver
Starting ChromeDriver 72.0.3583.1 (9ae827a6f6bbc9186d4e79681de885ce77d5bfe9) on port 9515
Only local connections are allowed.

Configuration file

is_master = true
node_id_file = /etc/graylog/server/node-id
password_secret = e14cb9e5c0eeee0ea313a4e04fbd10aa17ac17aa33a3cad4bdfe74b87ca18ef8
root_password_sha2 = e14cb9e5c0eeee0ea313a4e04fbd10aa17ac17aa33a3cad4bdfe74b87ca18ef8
root_timezone = Asia/Kolkata
plugin_dir = /usr/share/graylog-server/plugin
bin_dir = /usr/share/graylog-server/bin
rest_enable_tls = true
rest_listen_uri = https://linuxtest.example.com:9000/api/
web_listen_uri = https://linuxtest.example.com:9000/
rest_tls_cert_file = /etc/graylog/ssl/cert.pem
rest_tls_key_file = /etc/graylog/ssl/pkcs8-encrypted.pem
rest_tls_key_password = secret
web_tls_cert_file = /etc/graylog/ssl/cert.pem
web_tls_key_file = /etc/graylog/ssl/pkcs8-encrypted.pem
web_tls_key_password = secret
web_enable_tls = true
rotation_strategy = count
elasticsearch_max_docs_per_index = 20000000
elasticsearch_max_number_of_indices = 20
retention_strategy = delete
elasticsearch_shards = 4
elasticsearch_replicas = 0
elasticsearch_index_prefix = graylog
allow_leading_wildcard_searches = false
allow_highlighting = false
elasticsearch_analyzer = standard
output_batch_size = 500
output_flush_interval = 1
output_fault_count_threshold = 5
output_fault_penalty_seconds = 30
processbuffer_processors = 5
outputbuffer_processors = 3
processor_wait_strategy = blocking
ring_size = 65536
inputbuffer_ring_size = 65536
inputbuffer_processors = 2
inputbuffer_wait_strategy = blocking
message_journal_enabled = true
message_journal_dir = /var/lib/graylog-server/journal
lb_recognition_period_seconds = 3
mongodb_uri = mongodb://localhost/graylog
mongodb_max_connections = 1000
mongodb_threads_allowed_to_block_multiplier = 5
http_read_timeout = 30s
content_packs_dir = /usr/share/graylog-server/contentpacks
content_packs_auto_load = grok-patterns.json
proxied_requests_thread_pool_size = 32
http_bind_address = linuxtest.example.com:9000
report_disable_sandbox = true
report_generation_timeout_seconds = 300
transport_email_enabled = true
transport_email_hostname = mxrelay.example.com
transport_email_port = 587
transport_email_use_auth = true
transport_email_use_tls = true
transport_email_use_ssl = false
transport_email_auth_username = test22
transport_email_auth_password = xxxxxxx
transport_email_subject_prefix = [graylogtest]
transport_email_from_email = graylog-test@example.com

Thanks & Regards

Ankush Grover

Hi Ankush,
could you please set the server configuration ‘data_dir’ as well? The PDF engine needs a place to store the report PDFs during generation. By default this can be set to “/var/lib/graylog-server”. Also make sure that the graylog user can read and write to that directory!
See https://github.com/Graylog2/graylog2-server/blob/master/misc/graylog.conf#L84 for more informations.

Regards,
Marius

Thanks Marius. After setting the data_dir in the configuration file the reports are working.
Thanks once again.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.