Clojureによるログ収集と解析
-
Upload
yoshitka-kawashima -
Category
Technology
-
view
5.709 -
download
4
description
Transcript of Clojureによるログ収集と解析
ClojureClojureによるによるログ収集と解析ログ収集と解析
kawasima
2
Collecting Logs
3
昨今の不正アクセスの増加
パスワードが漏れてしまった状態なので、システム的に防ぐのは難しい。
不正アクセスをいかに速く検知するかが勝負
4
ログの収集
Apache Flume(Java)
Fluentd(ruby)
よく使われているのはこの2種類
Clojureから使うとしたら、こっち
5
Flumeの仕組み
6
Flumeの欠点● 設定がいまどきJavaのプロパティファイル形
式
7
そこはS式でしょ
構造化もされてて分かりやすい
Clj-flume-node (https://github.com/kawasima/clj-flume-node)
8
カスタムのSourceやSinkもClojureで
9
ログのリアルタイム解析
10
Storm
Clojure キラーアプリの1つ
11
Mine Canary (開発途上)
不正アクセス検知のためのBoltを提供する。
● 一定時間内に複数のIPからログインの試行がある● 一定時間内に同一IPから複数のアカウントのログイン
試行がある● 一定時間内に地理的に離れた場所からのログイン試行
がある
など… 不正ログインっぽいのを検出する
https://github.com/kawasima/mine-canary
12
Flume->Storm
13
Push-Pull-Conflict
FlumeのSinkはプッシュ型StormのSpoutはプル型
間にメッセージ貯めておく必要が出てくる。Apache KafkaとかRabbit MQを使うのが定石らしい
14
But...
Flumeの中にもChannelというQueueingの仕組みはあるので、間に同じようなプロダクトを挟むのは冗長だし、障害ポイントを増やすだけでは?
15
ulon-colon
データを溜めるキューは持たずに直接ピア同士でデータ送受信する仕組み。
Producer ConsumerWebSocket
https://github.com/kawasima/ulon-colon
Fressian
16
Ulon-colon producer
17
Ulon-colon consumer
18
Flume + ulon-colon のサンプル
http://bit.ly/1jMEdVA