2015/6/3のNorikra meetupに行ってきた!
Norikraをつかったこともないし、そもそもNorikraが何なのかもよくわかっていなかったのですが、発表者の方々がISUCON最強勢だったので参加しました(笑)
モリスさん始めOSSにコミットされている人の価値観みたいなものを感じてみたかったのも理由です。この点については僕自身はいろいろ感じたこともあって、モチベーションになったのですが、今回はNorikra Meetupについてだけ書いていこうと思います。
会場のDeNA!(受付)
・メルカリでのNorikraの活用、Mackerelを添えて
@kazeburoさん
access_log, error_logを対象にNorikraにsqlを書いてストリーム→ Mackerelで可視化という運用。
Norikra, Mackerel, server間はfluentdを使っているらしい。ggって見たらMackerelは5台までは無料で使えるようなのでISUCONに向けて試してみたい!(=゚ω゚)ノ
kibanaではなく、Mackerelなのは?
→kibanaの場合、投げるログの量が多かったり、グラフを多人数で見たりする環境だと重くなってしまう。Norikraで集約してMackerelに投げる量を軽くすることで改善できた
・ログ解析にNorikraを導入する
@harukasanさん
スライド:https://speakerdeck.com/harukasan/norikra-to-realtime-log-analytics
fluentdがデータのストリーミングを上手くやってくれるけど、ログ化史跡あたりはいいのが少ない → Norikra!!
解析するときの手法は4種類
① バッチ処理
でかいクエリ投げてレポートを出す場合
② Ad-hoc解析
その瞬間まいのwebアナリシスをしたりする場合(Kibana with Elasticsearch有名)
③ Offline解析
(バッチ処理と同じ?もしくはレプリケーションサーバに対する分析だろうか。。。)
④ ストリーム処理
一定のtime windowで切って送っていく。
処理がそんなに重くないから負荷も少ない
Norikraはストリーム処理解析に向いていて、SQLが書けるのが魅力的!
Fluentd → Norikra → Fluentd → GBQ, ESといった構成(NorikraはSPOF)
なぜ可視化をするのか?
→ 「可視化をしないと人間がデータを捌けない!」
・NorikraでWebサービスを守る
@fujiwaraさん
スライド:https://speakerdeck.com/fujiwara3/norikra-defends-web-service
サービスのHTTPステータスコードとレスポンスタイム、workerのログ等を計測している
ピーク時10,000msgs/secくらいをさばいている。
スマフォだと端末番号と紐付いてアカウントを作成するが、webアプリケーションだとmail認証だったりするので、スパムがいっぱい来る。Norikraを使うことで、同じIPアドレスからのリクエストを1分,10分, 1時間といった間隔でカウントして遮断している。
フロント側がアクセスを捌ききれなくて、キューに溜まったものが一気に処理されてくると、普通のユーザを誤爆してしまうこともあるので、memcachedにブラックリストとして有効期限つきデータでためていく。といったユースケース
・GunosyのNorikraを用いたアドネットワークのリアルタイム集計
@shunsukeaiharaさん
スライド:https://speakerdeck.com/shunsukeaihara/norikra-in-gunosy-network-ads-at-norikra-meetup-number-2
Gunosyではニュースだけではなくアドネットサービスも扱っている。
そこでは10分くらいで効果のある写真の広告はどれか、新しい広告がちゃんと配信できているかを短時間で確認しなくてはならず、さらにそれを営業の人達にも扱えるようにしたい。→ kibana
Kibanaではログデータが多すぎて死ぬ。ただSpark streamingやStormを使うほどではない。→ Norikra!
NorikraでサマったデータをKibanaで可視化することで、Kibanaへのデータ量を減らし、営業の人もドリルダウンできるようになる。
・Norikra Recent updates & Ask me anything
@tagomorisさん
Norikra1.3の近況報告。
1.0が出た去年から17回リリースするくらいの勢い!
最新で使えるようになった機能等の紹介
・suspended queries
試しに設定したクエリを一時的に止める機能
・Nullable fields
カラムのデータがNULLでも集計対象としてカウントすることができる機能
等々
< 終わりに>
Norikraに触ったこともないまま参加しましたが、ユースケースや、クエリのサンプルなどをもとに発表してくれる方が多かったので、イメージもつけやすく、使ってみたいなーと思ってしまうような発表でした。(ISUCONで使う!笑)
ISUCON最強勢の人たちを拝めてそれも面白かったです。主催者や発表者の方がOSSコミッタが多かったせいか、「何か問題点や困ったことがあったら、issueをなげるかpull reqください」という発言もおおくて、かっこいいな~と思いました。
ISUCONの過去問使ってNorikra, Mackerel使ってみたいと思います。
会場の様子