Logging from a storm bolt - where is it going?

7.9k views Asked by At

I have several bolts deployed to a topology on a cluster. Each is configured to log via slf4j. On the test machine I get both the stdout and the file appenders working fine.

When I deploy this to the cluster the logging seems to have disappeared. I don't get anything in the storm logs (on the supervisor machines), to /var/log/* or anywhere else as far as I can tell.

Should I be able to use a logging system inside a storm worker? If so, is there a trick to getting the messages?

Machines are all running CentOS 6.6 x64

3

There are 3 answers

3
Saurabh Saxena On

This blog post suggest a method to find location of log files on storm cluster. http://www.saurabhsaxena.net/how-to-find-storm-worker-log-directory/

When topology is deployed on cluster, topology logs are written in worker*.log files.

As mentioned in the blog post

  • First step would be to fine the log directory location. This can be done using 'ps' command. Search for nimbus process $ ps aux|grep nimbus
  • Look for -Dstorm.log.dir in the output.
  • Go to log dir and look into worker*.log file for topology logs.
0
pomber On

In my case (using the official storm docker image) logs were in the supervisor container:

/logs/workers-artifacts/MyTopology-1-123123123/123/worker.log
0
m.semnani On

You can set storm.workers.artifacts.dir parameter in storm.yaml and from now on, workers artifacts (including logs) will be saved in that path in a folder which is named after your topology name.