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
4
Bottleneck is You
threetreeslight
0
84
Japan Office Society オフィスはスタートアップの成長を助長するのか?阻害するのか?
threetreeslight
0
100
スタートアップは見極められたくない
threetreeslight
0
35
VPoEの責務とは
threetreeslight
0
63
CiecleCIでもくもく会を支える技術
threetreeslight
0
47
Ego vs higher self
threetreeslight
0
36
Performance Hack 101
threetreeslight
0
79
複数のスタートアップを 通して得た失敗と学び
threetreeslight
0
65
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
960
GraphQLとの向き合い方2022年版
quramy
44
13k
Music & Morning Musume
bryan
46
6.3k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
The World Runs on Bad Software
bkeepers
PRO
66
11k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Designing for humans not robots
tammielis
250
25k
The Cost Of JavaScript in 2023
addyosmani
46
7.2k
Fireside Chat
paigeccino
34
3.1k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
Done Done
chrislema
182
16k
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