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 101
Search
threetreeslight
August 22, 2018
0
33
fluentd 101
fluentd 101 on Shinjuku.rb #64
threetreeslight
August 22, 2018
Tweet
Share
More Decks by threetreeslight
See All by threetreeslight
実録 採用一投入魂
threetreeslight
0
2
Bottleneck is You
threetreeslight
0
84
Japan Office Society オフィスはスタートアップの成長を助長するのか?阻害するのか?
threetreeslight
0
99
スタートアップは見極められたくない
threetreeslight
0
35
VPoEの責務とは
threetreeslight
0
61
CiecleCIでもくもく会を支える技術
threetreeslight
0
45
Ego vs higher self
threetreeslight
0
35
Performance Hack 101
threetreeslight
0
79
複数のスタートアップを 通して得た失敗と学び
threetreeslight
0
65
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
A Philosophy of Restraint
colly
203
16k
Navigating Team Friction
lara
183
15k
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Why Our Code Smells
bkeepers
PRO
335
57k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
It's Worth the Effort
3n
183
28k
How to Ace a Technical Interview
jacobian
276
23k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
17
2.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Mobile First: as difficult as doing things right
swwweet
222
9k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Transcript
fluentd 101 @threetreeslight on shinjuku.rb #64 1 / 27
とは? ⼀元的なロギングレイヤー( Unified Logging Layer ) を提供する middleware log aggregator,
log shipper fluentd 2 / 27
ユースケース 1. アプリのログ集約 2. サービスログの監視 3. データ分析 4. データストアへの接続 5.
ストリーム処理 3 / 27
なぜUnified する必要があるのか? ログデータを利⽤できるようにするためにバックエンド側のシステムで は多⼤な努⼒を⽀払ってきた so much effort is wasted trying
to make various backend systems understand log data. 4 / 27
write complex regular expressions skill is a heroic skill 5
/ 27
欲しいもの 1. log producers と consumers で 共通なインターフェース 2. ⽔平⽅向にスケールし、リトライ・レジュームも可能
3. 新しいデータ⼊出⼒系統への対応がplugin でお⼿軽にできる 6 / 27
fluentd 全てを満たす 7 / 27
イベントの加⼯も簡単 8 / 27
Filters いらないデータすてたり、データのマスキング( アプリケーションでや ったほうが良い) とか容易 A Filter aims to behave
like a rule to pass or reject an event. The Filter basically will accept or reject the Event based on its type and rule defined 9 / 27
01 <filter test.cycle> 02 @type grep 03 <exclude> 04 key
action 05 pattern ^logout$ 06 </exclude> 07 </filter> 10 / 27
Labels label 使って特定環境のログデータの処理とか容易 to define new Routing sections that do
not follow the top to bottom order 11 / 27
01 <label @STAGING> 02 <filter test.cycle> 03 @type grep 04
<exclude> 05 key action 06 pattern ^logout$ 07 </exclude> 08 </filter> 09 10 <match test.cycle> 11 @type stdout 12 </match> 13 </label> 12 / 27
Buffers buffering したりretry してくれるのでアウトプット先への負荷コントロ ールなども容易 Output plugin in buffered mode
stores received events into buffers first and write out buffers to a destination by meeting flush conditions. 13 / 27
Plugins 新しいデータ⼊出⼒への対応を容易にする 14 / 27
1. Input Plugin 2. Output Plugin 3. Filter Plugin 4.
Parser Plugin 5. Formatter Plugin 6. Buffer Plugin 7. Storage Plugin 15 / 27
Input Plugin データソース⽤、ファイルを呼んだりlogger からforwarding されてきた りできる An input plugin typically
creates a thread socket and a listen socket. It can also be written to periodically pull data from data sources. 16 / 27
Parser Plugin インプットソースのデータ処理するやつ。filter との使い分けが重要。 cannot parse the user’s custom data
format (for example, a context- dependent grammar that can’t be parsed with a regular expression). 17 / 27
Filter Plugin label やtag に基づいてデータ整形するやついろいろできる 1. 削ったり 2. イベントの追加したり 3.
マスキングしたり 18 / 27
Output Plugin いろんな出⼒先に接続するやつ 19 / 27
Formatter Plugin Sometimes, the output format for an output plugin
does not meet one’s needs. 出⼒フォーマットを決定するやつ 20 / 27
Buffer Plugin memory やfile によるbuffering storage 21 / 27
Storage Plugin plugin による状態(接続先への転送量など)の統計情報を蓄積できたり 22 / 27
いろいろできる 23 / 27
もう少し内部を⾒ てみる 24 / 27
25 / 27
ここからは! abicky さんのblog で内部構造やdata lost について⾒ていく! https://abicky.net/2017/10/23/110103/ 26 / 27
ref Fluentd Blog - Unified Logging Layer: Turning Data into
Action fluentd - Buffer Plugin Overview あらびき⽇記 - fluentd の基礎知識 sonots:blog - fluentd でログが⽋損する可能性を考える 27 / 27