I love Heroku. I’ve been using it for some time because it is just so simple to deploy applications. However, I’ve never really looked too deeply into the logs produced by my apps via the command line. Queue Splunk. In this post we’ll look at how you can start Splunking data from apps deployed in Heroku, and some recipes to visualise it using the SPL.
We will send logs from Heroku to our Splunk Indexer via syslog. To configure the Indexer to accept these logs we’ll need to enable receiving: Settings > Data Inputs > TCP > Add New.
Now we can select the port via which we want to receive this data. We’ll use port:514 for this example but you can select an open port of your choice.
Heroku provides comprehensive app, system, and API logging by default. But lets turn things up a bit and include some debug and runtime logs to help us with app development, after all this is Splunk.
Assuming you have the Heroku Toolbelt installed, you can run the command below to enable logging.
Debug:
heroku config:add LOG_LEVEL=DEBUG --app <YOUR APP NAME>
Runtime:
heroku labs:enable log-runtime-metrics --app <YOUR APP NAME>
Then restart your app:
heroku restart --app <YOUR APP NAME>
Then add a syslog drain to send these logs to your indexer:
heroku drains:add syslog://<YOUR INDEXER'S IP>:514 --app <YOUR APP NAME>
Assuming everything is working correctly we should start to see data being indexed using a simple search: sourcetype="syslog"
I’ve just released a Splunk app with a great set of recipes to get you searching and visualising your data from analytics and performance to errors – you can grab it on Splunkbase here.
----------------------------------------------------
Thanks!
David Greenwood
The Splunk platform removes the barriers between data and action, empowering observability, IT and security teams to ensure their organizations are secure, resilient and innovative.
Founded in 2003, Splunk is a global company — with over 7,500 employees, Splunkers have received over 1,020 patents to date and availability in 21 regions around the world — and offers an open, extensible data platform that supports shared data across any environment so that all teams in an organization can get end-to-end visibility, with context, for every interaction and business process. Build a strong data foundation with Splunk.