Lennart Koopmann

{ :blog => true }

Tag Results

6 posts tagged rails

Easily log all your Rails Exceptions to Graylog2

I wrote and published a gem that you can load as Rack middleware in your Rails application. It transparently fetches all your Exceptions (and throws them back to the application so it does not affect your own Exception handling) and sends them as a GELF message to your Graylog2 installation.

Installation

Install the gem. It has my GELF gem as dependency and will install it automatically:

lennart ~$ sudo gem install graylog2_exceptions
Successfully installed gelf-0.9.1
Successfully installed graylog2_exceptions-0.5.3

Now open your config/environment.rb and add the gem as Rack middleware: (Make sure to require 'graylog2_exceptions' before.)

config.middleware.use "Graylog2Exceptions", { :host => '127.0.0.1', :port => '12201', :local_app_name => 'mama' }

Parameter explanation:

  • host: The hostname or IP of your Graylog2 server
  • port: The GELF port your Graylog2 server is listening on (Standard: 12201)
  • local_app_name: This name will be used as “host” field (Optional)
  • level: The syslog level for all Exceptions (Optional)

That’s it: Restart your app and all your Exceptions will be logged to Graylog2!

(Source code of the gem at GitHub)

Release build script for Graylog2

I wrote a shell script that lets me easily create new Graylog2 releases. It bundles Rails with all required gems, configures the release, works on some files and creates a nice .tar.gz package I can test and upload as release.

lennart@sundaysister:~/workspace/graylog2-web-interface/build$ time sudo ./build_release.sh 0.8.2
BUILDING graylog2-web-interface-0.8.2
Copying files ...
Configuring release ...
Freezing Rails and gems ...
Building Tarball ...
DONE! Created Graylog2 release graylog2-web-interface-0.8.2 on Thu Jul 29 21:05:17 CEST 2010

real    0m7.105s
user    0m5.800s
sys 0m1.200s

The script source is available in the graylog2-web-interface GitHub repository: http://github.com/lennartkoopmann/graylog2-web-interface/blob/master/build/build_release.sh

MongoMapper/Rails: Connect to a MongoDB database with username and password

MongoMapper is a great project but missing a lot of documentation in some core parts. I wanted to find out how to connect to a MongoDB instance that requires authentication and this is how I did it:

First step: Adding a new section to your database configuration

# config/database.yml
mongodb:
  hostname: localhost
  database: graylog2
  port: 27017
  authenticate: true
  username: graylog2user
  password: graylog2pw

Read More