Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Fluentdでアクセスログをゴニョった話 / Aggregating Access Logs...
Search
Shinya Tsunematsu
May 22, 2012
Technology
100
0
Share
Fluentdでアクセスログをゴニョった話 / Aggregating Access Logs and Visualizing with Fluentd
2012/05/18 Fluentd Casual Talks #1 LT資料
Shinya Tsunematsu
May 22, 2012
More Decks by Shinya Tsunematsu
See All by Shinya Tsunematsu
GMOペパボでのSREの実践 / SRE Practices of GMO Pepabo, Inc.
tnmt
3
5k
ペパボサービスインフラの今までこれから / pepabo infra past and future
tnmt
3
730
知らなかった、時に困るWebサービスのセキュリティ対策 / Where Do We Start With Information Security?
tnmt
19
9.6k
IaaSをいじっている人が PaaSについて考えたこと / Should We Prepare Own PaaS?
tnmt
5
2.3k
成長を支援する “ふりかえり”の技術 / How to lockback using "furik"
tnmt
7
1.8k
こんにちわ福岡 / hello-fukuoka
tnmt
0
1.4k
Inside Nyah & Future - A case of "Private Cloud" using OpenStack -
tnmt
0
290
OpenStackクラスタ間マイグレーション事例 Havana to Mitaka / OpenStack Migration Case (Shift from Havana to Mitaka)
tnmt
1
1.2k
ペパボのプライベートクラウド "Nyah" その後 / Pepabo's PrivateCloud "Nyah" After That
tnmt
8
13k
Other Decks in Technology
See All in Technology
はじめてのDatadog
kairim0
0
160
AIガバナンス実践 - 生成AIコネクタのデータ漏洩リスクと実務対策
knishioka
0
120
long-running-tasks
cipepser
2
430
なぜハノーバーメッセに行くべきなのか 〜初参加だから語れること〜
tanakaseiya
0
160
Agentic Design Patterns
glaforge
0
250
個人AIからチームAIへ:開発における品質と生産性の再設計
moongift
PRO
0
260
DI コンテナ自動生成ツールを実装してみた / intro-autodi
uhzz
0
870
Oracle Cloud Infrastructure:2026年5月度サービス・アップデート
oracle4engineer
PRO
1
210
海外カンファレンス「JavaOne」参加レポート ユーザー系IT企業における目的・成果/JavaOne Report Purpose and Results in the User IT Company
muit
0
100
人が担う「価値」とは?これからの「QA」とは / Human Value and the Future of Quality Assurance
bitkey
PRO
0
120
freee-mcpを Local→Remote で出してわかった MCP認可実装のリアル
terara
3
900
Javaコミュニティをもっと楽しむための9箇条
takasyou
0
340
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
A Tale of Four Properties
chriscoyier
163
24k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
370
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
240
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
290
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
55k
Docker and Python
trallard
47
3.8k
Believing is Seeing
oripsolob
1
130
Transcript
Fluentdでアクセスログを ゴニョった話 導入のTipsとか分かったこととか Fluentd Casual Talks LT Shinya Tsunematsu @tnmt
Fluentdがキテるらしい • けど使ったことない • 使い道とか何が嬉しいのか分からない • 今度Fluentd Casual Talksというのをやるらしい
お酒って怖いですね
というわけで • 初めて触ってみた俺ですが • 導入するまでと • やってみた感想を • それこそもうカジュアルにザーッとお話します •
これから始める方の参考になれば幸いです
何をしようか
30days Album 画像APIサーバのアクセスログ • 画像ストレージは複数のサービスから参照され ている • アクセスログの「分析」みたいなことは特にやっ てきていなかった •
必要に応じて手でログをゴニョる程度
やってみよう • 画像ストレージのサービスごとの利用内訳をグ ラフ化
こんな感じ ログ集約 サーバ ストレージAPI (lighttpd Catalyst) Fluentd Fluentd Growth Forecast
インストールする
rbenv + bunder が 便利 • rbenv: 複数バージョンRubyの管理ツール • システム全体に影響与えずに個人ユーザ権限
で気軽に始められる • 古いディストリでも新しいRuby使える • plugin追加もGemfileに追加してbundle install すればOK の後に画像API側はtd-agentとか fluent-agent-liteとかでも良かったなと…
rbenv入ってたらこれだけ # mkdir -p $HOME/work/fluentd # cd $HOME/work/fluentd # cat
<< EOF > Gemfile source "http://rubygems.org" gem 'fluentd' EOF # bundle install --path vendor/bundle
GrowthForecast # cd $HOME/work # git clone git://github.com/kazeburo/GrowthForecast.git # cd
GrowthForecast # sudo yum -y install cairo-devel pango-devel libxml2-devel # cpanm -l extlib Alien::RRDtool
実際の設定
送り元サーバ設定(1) # アクセスログをフォーマットでバラして <source> type tail format /^(?<host>[^ ]*) (?<vhost>[^
]*) (?<user>[^ ]*) \[(?<time>[^\]]*)\] "(?<method>\S+)(?: +(?<path>[^ ]*) +\S*)?" (?<code>[^ ]*) (?<size>[^ ]*)(?: "(?<referer>[^\"]*)" "(?<agent>[^\"]*)")?$/ pos_file ./pos.txt path /var/log/lighttpd/access.log tag api.access </source>
送り元サーバ設定(2) # 集約サーバに送る <match api.access> type forward flush_interval 10 <server>
name delegate host 192.168.XXX.XXX </server> </match>
集約サーバ設定(1) # ストリームを受け取って <source> type forward </source> # 適度にサンプリングして <match
api.**> type sampling_filter interval 10 remove_prefix api add_prefix sampled
集約サーバ設定(2) # サンプリングしたデータを集計して <match sampled.**> type datacounter unit minute count_key
vhost pattern1 aaa ^aaa.jp$ pattern2 bbb ^img.bbb.jp$ pattern3 ccc ^img.ccc.jp$ tag access </match>
集約サーバ設定(3) # 集計結果をGrowthForecastに投げる <match access> type growthforecast gfapi_url http://localhost:5125/api/ service
aaa section access_count name_keys sampled.access_unmatched_count,sampled.access_aaa_c ount,sampled.access_bbb_count,sampled.access_ccc_cou nt </match>
グラフ出来た
あっさり出来たすごい • 設定ファイルの行数少ない ◦ 送り元: 18 ◦ delegate: 28 •
MongoDBにつっこんだりすることなく、グラフ描 画まで終わる • pluginは tagomoris さんのものをふんだんに利 用した • というかブログに書いてあることをかいつまんで そのままやっただけ
負荷は? • 送り元サーバ ◦ ログはdaily約100万行 1台あたり 15 req/s くらい •
集約サーバ ◦ 送り元8台に対して1台 →今のところ全く問題無し
やってみた感想
手頃なログのグラフ化から始めると吉 • 既にあるログからスタート • グラフが出るとテンションが上がる(取り方が分 かる) • テンションが上がると他にも色々データが取りた くなる ◦
画像ストレージノードのレスポンスタイムにばらつきばあ るっぽいので突き止めたい
まとめ • rbenvを使うと導入お手軽(プラグイン追加とか 特に) • 簡単なデータ集計は既にあるプラグインを使う だけで色々出来る (tagomoris++) • GrowthForecastがグラフ化するのが楽すぎて
しびれる (kazeburo++) • 目に見える形でデータが出るとテンションが上 がる • グラフ化から始めて徐々に使い道を探っていく と吉ではないかと
というLTでしたがSoftware Designに もっと詳しく載ってました!