イベント処理ツール riemannを使う
2012.09.22
イベント処理ツール riemannを使ってみたのでその感想。
- サーバーは clojure で書かれている
- 設定ファイルは S 式
- クライアントは各言語版がある http://aphyr.github.com/riemann/clients.html
- サーバーの状態は riemann-dash という sinatra でできた Web 画面から確認できる
- クライアントからのメッセージはイベントと呼んでる
- host, service, state, time, description, tags, metric, ttl というパラメータを持っている
- サーバー、クライアント間は Protocol Buffer で通信する
公式サイトではサーバーの tar ball と deb パッケージを配布している。動かすためには、Java で実行するだけ。
$ wget [http://aphyr.com/riemann/riemann-0.1.2.tar.bz2](http://aphyr.com/riemann/riemann-0.1.2.tar.bz2)
$ tar xf riemann-0.1.2.tar.bz2
$ cd riemann-0.1.2
$ bin/riemann etc/riemann.config
設定ファイルを S 式でがりがりかけるのはおもしろくって、riemann だとこんな感じに設定できる:
# 公式サイトの設定例から引用 [http://aphyr.github.com/riemann/configuring.html](http://aphyr.github.com/riemann/configuring.html)
; You can use any options for [https://github.com/drewr/postal.](https://github.com/drewr/postal.)
;
; (mailer {:from "[email protected]"
; :host "mx1.trioptimum.com"
; :user "foo"
; :pass "bar"})
(streams
(where (and (service "web server")
(state "exception"))
(tagged "controller"
(email "[email protected]"))
(tagged "view"
(email "[email protected]" "[email protected]"))
(tagged "model"
(email "[email protected]"))))
「イベント x あるいは y が n 秒以内に m 回発生したらアラート」みたいなのも設定できるみたいなので、監視ツールと組み合わせてもおもしろそう。
ソフトウェアの内容や使いかっては、 fluentd ととても近いように感じた。それぞれ公式サイトに掲げられているメッセージを比較してみると、fluentd は「Fluentd is a lightweight and flexible log collector」で、riemann は「Riemann is an event stream processor」だった。fluentd はイベントを集計できる形式でログとして残すこと、riemannはイベントストリームから特定の状況をリアルタイムで見つけだすことが主眼ということかな。
参考
関連するサービス、同類のソフトウェア
- fluentd
- boundary
- amazon cloudwatch
- loggly
- その他多くの監視ツール