SlideShare a Scribd company logo
Clojureによる
Clojureによる
ログ収集と解析

kawasima
Collecting Logs

2
昨今の不正アクセスの増加
パスワードが漏れてしまった状態なので、システム
的に防ぐのは難しい。
不正アクセスをいかに
速く検知するかが勝負

3
ログの収集
よく使われているのはこの2種類
Apache Flume
(Java)

Fluentd
(ruby)

Clojureから使うとしたら、こっち

4
Flumeの仕組み

5
Flumeの欠点
●

設定がいまどきJavaのプロパティファイル形
式

6
そこはS式でしょ
Clj-flume-node (https://github.com/kawasima/clj-flume-node)

構造化もされてて分かりやすい

7
カスタムのSourceやSinkもClojureで

8
ログのリアルタイム解析

9
Storm
Clojure キラーアプリの1つ

10
Mine Canary (開発途上)
https://github.com/kawasima/mine-canary

不正アクセス検知のためのBoltを提供する。
一定時間内に複数のIPからログインの試行がある
●
一定時間内に同一IPから複数のアカウントのログイン
試行がある
●
一定時間内に地理的に離れた場所からのログイン試行
がある
●

など… 不正ログインっぽいのを検出する

11
Flume->Storm

12
Push-Pull-Conflict
FlumeのSinkはプッシュ型
StormのSpoutはプル型

間にメッセージ貯めてお
く必要が出てくる。
Apache Kafkaとか
Rabbit MQを使うのが
定石らしい

13
But...
Flumeの中にもChannelという
Queueingの仕組みはあるので、間に同
じようなプロダクトを挟むのは冗長だ
し、障害ポイントを増やすだけでは?

14
ulon-colon
データを溜めるキューは持たずに直接ピア同
士でデータ送受信する仕組み。

Producer

WebSocket
Fressian

Consumer

https://github.com/kawasima/ulon-colon

15
Ulon-colon producer

16
Ulon-colon consumer

17
Flume + ulon-colon のサンプル
http://bit.ly/1jMEdVA

18

More Related Content

Clojureによるログ収集と解析