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
0
66
Fluentdでアクセスログをゴニョった話 / Aggregating Access Logs and Visualizing with Fluentd
2012/05/18 Fluentd Casual Talks #1 LT資料
Shinya Tsunematsu
May 22, 2012
Tweet
Share
More Decks by Shinya Tsunematsu
See All by Shinya Tsunematsu
GMOペパボでのSREの実践 / SRE Practices of GMO Pepabo, Inc.
tnmt
3
4.7k
ペパボサービスインフラの今までこれから / pepabo infra past and future
tnmt
3
670
知らなかった、時に困るWebサービスのセキュリティ対策 / Where Do We Start With Information Security?
tnmt
19
9.3k
IaaSをいじっている人が PaaSについて考えたこと / Should We Prepare Own PaaS?
tnmt
5
2.2k
成長を支援する “ふりかえり”の技術 / How to lockback using "furik"
tnmt
7
1.6k
こんにちわ福岡 / hello-fukuoka
tnmt
0
1.2k
Inside Nyah & Future - A case of "Private Cloud" using OpenStack -
tnmt
0
260
OpenStackクラスタ間マイグレーション事例 Havana to Mitaka / OpenStack Migration Case (Shift from Havana to Mitaka)
tnmt
1
1.1k
ペパボのプライベートクラウド "Nyah" その後 / Pepabo's PrivateCloud "Nyah" After That
tnmt
8
13k
Other Decks in Technology
See All in Technology
AndroidアプリエンジニアもMCPを触ろう
kgmyshin
2
650
MySQL Indexes and Histograms – How they really speed up your queries
lefred
0
160
テストコードにはテストの意図を込めよう(2025年版) #retechtalk / Put the intent of the test 2025
nihonbuson
PRO
1
500
経済メディア編集部の実務に小さく刺さるAI / small-ai-with-editorial
nkzn
2
280
本当に必要なのは「QAという技術」だった!試行錯誤から生まれた、品質とデリバリーの両取りアプローチ / Turns Out, "QA as a Discipline" Was the Key!
ar_tama
9
4.1k
時間がないなら、つくればいい 〜数十人規模のチームが自律性を発揮するために試しているいくつかのこと〜
kakehashi
PRO
23
5.2k
製造業向けIoTソリューション提案資料.pdf
haruki_uiru
0
240
雑に疎通確認だけしたい...せや!CloudShell使ったろ!
alchemy1115
0
210
Azure × MCP 入門
ry0y4n
8
1.6k
Как мы автоматизировали интеграционное тестирование с Gonkey и не пожалели. Паша Егорычев, Кирилл Поляков
lamodatech
0
2.1k
猫でもわかるS3 Tables【Apache Iceberg編】
kentapapa
2
180
コードや知識を組み込む / Incorporating Codes and Knowledge
ks91
PRO
0
170
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
38
1.8k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.8k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
790
The Straight Up "How To Draw Better" Workshop
denniskardys
233
140k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
How to Ace a Technical Interview
jacobian
276
23k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
A Modern Web Designer's Workflow
chriscoyier
693
190k
GitHub's CSS Performance
jonrohan
1031
460k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
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に もっと詳しく載ってました!