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
62
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.6k
ペパボサービスインフラの今までこれから / pepabo infra past and future
tnmt
3
660
知らなかった、時に困る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
どっちの API SHOW?SharePoint 開発における SharePoint REST API Microsoft Graph API の違い / Which API show? Differences between Microsoft Graph API and SharePoint REST API
karamem0
0
110
Redefine_Possible
upsider_tech
0
260
17年のQA経験が導いたスクラムマスターへの道 / 17 Years in QA to Scrum Master
toma_sm
0
400
Cloud Native PG 使ってみて気づいたことと最新機能の紹介 - 第52回PostgreSQLアンカンファレンス
seinoyu
2
200
AIエージェント完全に理解した
segavvy
4
260
Security response for open source ecosystems
frasertweedale
0
100
React Server Componentは 何を解決し何を解決しないのか / What do React Server Components solve, and what do they not solve?
kaminashi
6
1.2k
DevOps文化を育むQA 〜カルチャーバブルを生み出す戦略〜 / 20250317 Atsushi Funahashi
shift_evolve
1
110
AI・LLM事業部のSREとタスクの自動運転
shinyorke
PRO
0
300
「ラベルにとらわれない」エンジニアでいること/Be an engineer beyond labels
kaonavi
0
120
Agile TPIを活用した品質改善事例
tomasagi
0
310
移行できそうでやりきれなかった 10年超えのシステムを葬るための戦略
ryu955
2
400
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
135
33k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
28
1.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
8
700
Visualization
eitanlees
146
16k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Building a Modern Day E-commerce SEO Strategy
aleyda
39
7.2k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
We Have a Design System, Now What?
morganepeng
51
7.5k
VelocityConf: Rendering Performance Case Studies
addyosmani
328
24k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
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に もっと詳しく載ってました!