Cookpad Tech Kitchen #9 https://cookpad.connpass.com/event/60831/
![クックパッドのログをいい感じにしているアーキテクチャ / Logging architecture at Cookpad](https://cdn-ak-scissors.b.st-hatena.com/image/square/f5825bd123c347004f3b4ff1da381b51e931f852/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fa322fb5641dc4977ac062aafc6843df2%2Fslide_0.jpg%3F8348766)
Fluentdはデータを流すのに非常に便利なツールでそこら中で使われている(個人調べ)。そのため、なんかいろんなところで設定を見るのであるが、タグに情報が付いていたりフィールドに情報がついていたりして、あれ、これどうなってるんだっけ感に襲われることがよくある。 このあたり自分でも混乱しがちなので、普段どのように考えているかだいたいまとまった気がしたところで書いておくことにした。 Fluentdのデータ構造 まずはFluentdのデータ構造を知っておいた方が良い。Fluentdの内部データはMessagePackで符号化されているが、Fluentdのデータ構造は単なるハッシュではなく、時刻(time)とタグ(tag)という属性を持っている。次のような感じだ。 レコード レコード(record)は入力されたデータそのものであり、tailプラグインであれば、tailした1行のデータに相当する。重
Norikraとは Norikraとはリアルタイム集計プロダクトです。イベントストリームに対してSQLライクな言語で処理を書くことが出来ます。 例えば、ApacheのアクセスログをNorikraに流し込み、1分あたりのアクセス数やレスポンスタイムの最大値をリアルタイムに集計することが出来ます。 Norikraの利用例は作者であるtagomorisさんのブログで紹介があります。 今回は、Norikraを使ってDoS攻撃をブロックする仕組みを作ってみました。 DoS攻撃ブロックの仕組み アクセス元はApacheのアクセスログから取得し、ログの受け渡しにはFluentdを利用しました。 ブロックの手順は以下のようになります。 アクセスログをFluentdのin_tailプラグインで取得。 Fluentdのout_norikraプラグインで、アクセスログをNorikraに流し込み。 Norikra
背景 webアプリを書いていると,以下のようなロギングコードを至る所にちりばめる事になると思います. $c->log(error => "Chou Yabai ERROR!"); ただいくらログを吐いても,アプリのログからは片時も目を話さないよ!!みたいな真面目なエンジニアじゃない限り,せっかく吐かれたログに気づけないとかあるわけです. そこで特に重要なログについては別途ikachanとかでIRC等にpostするコードを入れといて,即応できるようにしてることと思います. でも,levelがerrorとかcriticalで吐かれてるログって全部重要だし全部すぐ知りたくね?それにいちいち別途ikachanするコードとか入れるのめんどくね?っていう需要があるわけです. そこでロガーメソッドにif ($level == 'error') { post_to_irc($message) }みたいなコ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く