How to use rsyslog and MongoDB
==============================

rsyslog since version 6.1.3 is capable of using an output module called
“ommongodb” to write log messages to mongodb. To achieve this, make
sure the following packages are installed:

 mongodb-server
 mongodb-clients

After this, you need to make some adjustments to rsyslog.conf or better
use a separate config file like /etc/rsyslog.d/mongodb.conf which will
be included by the main config file.
You need to load the module of course and configure an action:

 module (load="ommongodb")
 *.* action(type="ommongodb" server="127.0.0.1")

In this case we send everything to the local MongoDB server. With the
default settings, this should work directly. No username or password is
needed if it isn’t configured in MongoDB. And the “db” and “collection”
will automatically be created. The default database that rsyslog will
use is “syslog” and the default name for the collection is “log“. These
can be changed by various parameters, like:

 *.* action(type="ommongodb" db="..." collection="..." template="...")

To review what is written to the database, simply open a command line
and enter “mongo“. This is to open the MongoDB Shell. You now need to
change the database that is used with

 use syslog

That way all further commands will be used on the database that rsyslog
uses. Next we let the shell show us the entries:

 db.log.find()

Please make sure to use the exact command. Of course there are a lot of
other commands that you may find useful. Or information on how to secure
the database. Please refer to the MongoDB documentation for that.
