Rollbar server-side agent
In most cases you should try to use the Rollbar notifier for the language and framework you’re using. See https://rollbar.com/docs for a list of supported languages and links to notifiers.
If it’s not possible to use a notifier, rollbar-agent is a Python daemon that can monitor your log files and push messages to Rollbar.
Installing and configuring rollbar-agent will be much easier if you have a basic understanding of Python virtualenvs and are comfortable editing the configuration files that control services on your OS.
- A unix-like system (tested on Fedora and Ubuntu Linux and Mac OS X)
- Python 2.6+
- requests 0.13.1+ (will be installed by pip or setup.py, below)
- a Rollbar account
Set up a virtualenv
You can install rollbar-agent by using pip, by checking out the code from the GitHub repository, or by downloading a tar file. In each case, you’ll be installing rollbar-agent into a Python virtualenv. If you don’t already have an appropriate virtualenv set up, you should create one now. For more information on Python virtual environments, see http://docs.python-guide.org/en/latest/dev/virtualenvs/
Once you’ve created and activated your virualenv, install the rollbar-agent code and configuration files into that environment using your preferred method below. Each method will install the rollbar-agent library and put the configuration and service start up files you’ll need into the root directory of your virtualenv.
Installing with pip
If you’re familiar with pip, you can install rollbar-agent with:
pip install rollbar-agent
Installing from source
If you’re comfortable with Git:
git clone https://github.com/rollbar/rollbar-agent.git cd rollbar-agent
Or just grab the .tar.gz:
wget https://github.com/rollbar/rollbar-agent/archive/v0.4.0.tar.gz tar -xzf v0.4.0 cd rollbar-agent-0.4.0
Then install (may require sudo):
python setup.py install
Set up the rollbar-agent service
Symlink the rollbar-agent executable to /usr/local/rollbar-agent:
ln -s /path/to/virtualenv/rollbar-agent /usr/local/rollbar-agent
and symlink the rollbar-agent configuration file to /etc/rollbar-agent.conf:
ln -s /path/to/virtualenv/rollbar-agent.conf /etc/rollbar-agent.conf
rollbar-agent comes with an example init.d script, chkconfig compatible and tested on Fedora Linux, update-rc.d on Ubuntu Linux. You’ll need to edit this script and make sure the VIRTUALENV environment variable contains the path to the virtual environment you set up.
Once you’ve edited the rollbar-agent-init.sh script, symlink rollbar-agent-init.sh to /etc/init.d/rollbar-agent:
chmod +x /path/to/virtualenv/rollbar-agent-init.sh ln -s /path/to/virtualenv/rollbar-agent-init.sh /etc/init.d/rollbar-agent
On Ubuntu, you’ll need to add to rc.d. Run the following:
update-rc.d rollbar-agent defaults
On Fedora, add to chkconfig:
chkconfig --add rollbar-agent chkconfig on rollbar-agent
On other systems, check your system’s documentation for its equivalent of chkconfig.
Now, start the service:
service rollbar-agent start
To check that it’s running, tail its log file:
tail -f /var/log/rollbar-agent.log
Configuration options for rollbar-agent itself are in rollbar-agent.conf. If you’re using the init script, it has a few of its own configuration variables inside which control how it runs.
rollbar-agent.conf At the bare minimum, you will want to change the following variables:
- params.access_token – your Rollbar access token, specifically an API token that allows “post_server_item”
- targets – white-space-separated list of files or directories (non-recursive) to process.
- statefile – path to a file where the state will be stored. File does not need to exist, but the directory does. This file should not be placed somewhere it is likely to be deleted, as that will trigger all files to be re-processed. /tmp is not a good location.
There are several parameters about formats, etc.; you do NOT need to do anything with these if you’re only using rollbar-agent as a relay in combination with one of our other libraries.
Setting the following variables will improve integration:
- params.root – path to your code root
- params.branch – the current branch
If you’re using rollbar-agent alongside rollbar-php, you’ll want to enable:
- delete_processed_files – when true, files are deleted once processing is complete. Default false.
Other options are documented in the sample config file.
rollbar-agent-init.sh Configuration variables should be self-explanatory. If you’re not using a virtualenv, set VIRTUALENV="".
Contributions are welcome. The project is hosted on github at http://github.com/rollbar/rollbar-agent
If you have any questions, feedback, etc., drop us a line at firstname.lastname@example.org