
- ã¤ãã³ãåï¼Fluentd Meetup 2016 Summer
- é嬿¥æï¼2016-06-01(æ)
- ä¼å ´ï¼ã¤ãã³ãï¼ã³ãã¥ããã£ã¹ãã¼ã¹ dots.
ç´1å¹´ã¶ãã«éå¬ããã Fluentd Meetup ã«åå ãã¦ãã¾ãããä»åã¯ã5æ31æ¥ã«ãªãªã¼ã¹ãããã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã¢ããã® v0.14 ã«ã¤ãã¦ãã¦ã¼ã¶åãã®æ©è½ç´¹ä»ããããã©ã°ã¤ã³éçºè åãã®æ·±ã話ã¾ã§ãçãã ãããã®å 容ã§ãããèªåã§ãã©ã°ã¤ã³ãæ¸ãããããFluentd ãããã¼ã«ä½¿ã人åãã®ã¤ãã³ãã¨ããæãã§ãã©ã®è©±ãé¢ç½ãã£ãã§ãã
æè¿ãç§ã¯ Fluentd ãä½¿ãæ©ä¼ãå ¨ç¶ãªãã£ããã¨ããã£ã¦ããFluentd ãæ©è½çã«ã¯æ¯ãã¦ãã¦ãããããæ°æ©è½ããã¾ããªãã ãããã¨æã£ã¦ããã®ã§ãããã¾ã ãããªã«æ¹åã®ä½å°ããã£ãã®ãâ¦â¦ã¨ã¡ãã£ã¨é©ãã¾ãããå人çã«ã¯ã夿©ããã®è¬æ¼ã§å°æ¥ã®æ§æ³ã¨ãã¦åºã¦ãããKafka ã£ã½ã PubSub ã¯ä¾¿å©ãããªã®ã§æ¯éå®è£ ãã¦ã»ããã§ãã
以ä¸ãè¬æ¼å 容ã®ã¡ã¢ã§ãããã¬ã¼ã³ã«æ¸ããã¦ãªãã¦å£é ã§èª¬æããã¦ãããã¨ããå人çã«æ°ã«ãªã£ããã¨ãä¸å¿ã«ã¡ã¢ãã¦ãã¾ãã
è¬æ¼å 容
Past & Future of Fluentd (夿© è²ä¹, @frsyuki)
Fluentdã®æ´å²
- 2011å¹´6æã«æåã®ãã¼ã¸ã§ã³ããªãªã¼ã¹ãããä»å¹´ã®6æã§5å¹´ãããã¾ã§ç¶ãã¨ãããªãæåããOSSã¨è¨ã£ã¦ããã®ã§ã¯ãªããã
- æ°ã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã® 0.14 ãæ¨æ¥ãªãªã¼ã¹ãããã
2å¹´åã«ãªãªã¼ã¹ãããv0.12ã®æ©è½ã®æ¯ãè¿ã
- ã¿ã°ã®æ¸ãæããä¸è¦ã«ãã label 㨠filter
å°æ¥ã®æ§æ³
- Advanced back pressure - 転éå ãè©°ã¾ãã®ãé²ã
- PubSub & pull forward - Kafkaã«è¿ãçºæ³ããã°ãå¿ è¦ãªã¢ããªãåãã«è¡ã
- Compressed buffer
- Distributed buffer - twitterããªãªã¼ã¹ãã distributedlog ããApache BookKeeper ã®ãããªæ©è½ã Fluentd ã® buffer ã®ã¨ããã«å ¥ãã
- Service plugins - ããã±ã¼ã¸åãããã½ããï¼ä¾ãã° Norikraï¼ãFluentdã§åä½ãããããã«ãããservice label ãæ¸ãã ãã§èµ·åãã¤ã³ã¹ãã¼ã«ãç°¡åã«ãªã
- Schema-validated logging - ããªãã¼ãããããã°ã ãã転éãããã¨ã§ãç¡é§ãªè»¢éãããã¼ã¿ãã¼ã¹æ¸ãè¾¼ã¿æã®ã¨ã©ã¼ãåé¿ãã
- Centralized config manager - Chef ã Ansible ã使ããã¨ãèããããããDockerã§èµ·åããã¤ã³ã¹ã¿ã³ã¹ã®ãªãã®è¨å®ã« Chef ãªã©ã使ããããªããããã« fluentd-ui ãçµã¿åãããã¨å¬ãã
Fluentdã®ãã´ãå¤ããäºå®
- ãã¾ã¾ã§ã®ãã´ã¯ç·ãç´°ãã¦ãä»ã®ã¢ã¤ã³ã³ã¨ä¸¦ã¹ãã¨é ãã¦ãã¾ããã¨ããææã社å ã®ãã¶ã¤ãã¼ãããã£ã
- Fluentd new logo proposal · Issue #924 · fluent/fluentd
v0.14 Overview (ä¸å· çå®, @repeatedly)
New Plugin APIs
- v0.12åãã«ä½ã£ããã©ã°ã¤ã³ã¯ãäºææ§ã¬ã¤ã¤ãããã®ã§ãã»ã¼åãã¯ã
- ã¤ã³ã¹ã¿ã³ã¹å¤æ°ã«ç´æ¥ã¢ã¯ã»ã¹ãã¦ãããããªãã©ã°ã¤ã³ã¯ãåããªãå¯è½æ§ããã
- 次㮠v1 ã§ãäºææ§ã¬ã¤ã¤ã¯æ®ãäºå®
buffer ã®è¨è¨ã®å¤§å¹ ãªè¦ç´ã
- v0.12 buffer design: chunkã®ä¿åæ¹æ³ãElasticSearch ã«æ¸ãè¾¼ãã¨ãã«ãã¤ã³ããã¯ã¹ã®å¤ãè¦ã¦æ¸ãè¾¼ã¿å ãå¤ãããã¨ãã£ãå ´åã«åé¡ã«ãªã£ãããªãã©ã¤ããã¾ããããªãã
- v0.14ã§ãchunkã®ç®¡çãæè»ã«ãªãããã®ãããªåé¡ã¯è§£æ±ºã§ãã
Plugin Storage & Helpers
- ãã©ã°ã¤ã³å ã§ä½¿ããã¹ãã¬ã¼ã¸ã¬ã¤ã¤ï¼KVSï¼ã®å°å ¥
- ãã©ã°ã¤ã³ã®ä½ææã«ãã使ãéå½¢ã³ã¼ããhelperã§æä¾
Time with nanosecond
- ããªç§ã¨ããç§ã®ã©ã¡ãã«ããããã¨ããè°è«ããã£ãããããç§ã§ãã°ãåºãã·ã¹ãã ãå¢ãã¦ããã®ã§ããç§
- å é¨çã«ã¯ Fluent::EventTime ã¨ããå½¢ã§æã¤ãæ¢åã®ãã©ã°ã¤ã³ã«å¯¾ãã¦ã¯ Integer ã£ã½ãæ¯ãèãã¯ã©ã¹ã
ServerEngine based Supervisor
- ããã»ã¹ã¢ãã«ã ServerEngine ã«ç½®ãæãã
Windows support
- Linux åãã«ç¹åããã³ã¼ãããWindows ã§åãããã«ç´ããããã
- HTTP RPC ã§ãããã¡ã®ãã©ãã·ã¥ãªã©ãè¡ã
v0.14.x - v1
- https://github.com/fluent/fluentd/issues/1000 ã«ä¸¦ãã§ãã
- v1 ãåºããv1 ã§æ°æ©è½ãå ¥ãããã¨ã¯ãªããv1 ã¯ä»ã¾ã§å ¥ããAPIãFixãããã¨å®£è¨ããããã®ãã¼ã¸ã§ã³ããã£ã¼ãããã¯ã¯ v0.14 ã®ãã¡ã«ãã¦ã»ãã
- v1 㯠2016 4Q ã 2017 1Q ã«åºã
- ããã¤ã v1 ã§æ¶ãããæ©è½ã¯ãã
v0.14 ç³»ã§ããããå ¥ããäºå®ã®ç®çæ©è½
- Symmetric multi-core processing: ããã©ã¼ãã³ã¹åä¸ãTCPãã¼ããWorkeréã§å ±ç¨ããWorkerã§å¦çãåãããServerEngine ã使ã£ã¦å®ç¾ãã
- Counter API: Workerãåãããã®ã§ãã«ã¦ã³ã¿ãä½ãã¥ãããªãç¹ãã«ãã¼
- secure-forward ãã³ã¢ã«å ¥ãããforward 㨠secure-forward ã®ç´°ããéãããªãã
ãã³ããã¼ã¯çµæ
- CPU使ç¨çããv0.14 ã§è¥å¹²ä¸ãã£ã¦ãã
- EC2ã§ã100,000msgs/sec ã§ã®æ¸¬å®çµæã«ããã¨ãCPU使ç¨çã4ã5%ä¸ãã£ã
- v0.14ã¯ãªãªã¼ã¹ããã°ããã§ãæ§è½æ¹åã§ããä½å°ãæ®ã£ã¦ãããããããæ¹åããäºå®
td-agent 3
- fluentd v0.14 㯠td-agent 3 ããæ¡ç¨ï¼ç¾è¡ã® td-agent 2 ç³»ã«ã¯å ¥ããªãï¼
- Ruby 2.3 ã«ä¸ãã
- Windows åãããã±ã¼ã¸ãæä¾äºå®
- ãªãªã¼ã¹æ¥ã¯æªå®ï¼v0.14 ãã¾ã stable ã¨è¨ããªãã®ã§ï¼
Q) chunk ããåå¾ãããã°ã®ä¸é¨ã§å¦çã失æããå ´åããªãã©ã¤ãããã¨æããããã®å ´å chunk ã®è©°ãç´ãã¯ã§ãããï¼
- A) ã§ããªãããã®å ´åã¯ãã¨ã©ã¼ã¹ããªã¼ã ã¨ããæ©è½ã使ã£ã¦ã»ãã
Fluentd ServerEngine Integration & Windows Support (æç° å¾å¤ª, @naritta)
èªå·±ç´¹ä»
- 2015å¹´ã® Treasure Data ã®ã¤ã³ã¿ã¼ã³ã·ããã«åå ããä»å¹´å ¥ç¤¾ãã
ServerEngine
- Unicorn ã¨å¤§ä½åããããªãã®
- Supervisor, server, worker ã®æ§æãç°¡åã«ä½ããããã«ããããã®ãã¬ã¼ã ã¯ã¼ã¯
- Worker Module, Server Module ã Ruby ã§æ¸ã
- Worker type: thread, process, spawn
- v0.14 ã§ã¯ spawn worker type ãå©ç¨ãã¦ãããWindows ã« fork ã®æ©è½ããªããã
Fluentd ã§ ServerEngine ãæ¡ç¨ãããã¨ã«ããã¡ãªãã
- auto restart
- Linux ã§ã Windows ã§ããfluentd ã®ããã»ã¹(worker)ãKILLããã¨ãèªåçã«ãªã¹ã¿ã¼ãããã®ã確èªã§ãã
- live restart
- è¨å®å¤æ´ãããã¨ã§ã·ã°ãã«ï¼ã¾ã㯠HTTP RPCï¼ãéãã¨ãworker ã ãããªã¹ã¿ã¼ãã§ãã
- server ã TCP æ¥ç¶ãæã£ã¦ããã®ã§ããã°ã¯æ¬ æããªã
- socket manager
- server å´ã§ listen ãã¦ãsocket ã worker ã«å ±æãã
- å°æ¥çã«ã¯ãã«ãã³ã¢ã§ã½ã±ãããå ±æããããã« ServerEngine ã使ãï¼ãã¾ã¯ãã«ãã³ã¢ã§åããã«ã¯ in_multiprocess plugin ã使ãå¿ è¦ãããï¼
- signal handler
- signal handler 㨠log rotation ã¯ãFluentd ã¦ã¼ã¶ã«ã¨ã£ã¦ã®ã¡ãªããã¨ãããããå é¨å®è£ ã«é¢ããã¡ãªãã
- ã·ã°ãã«ããã¥ã¼ã«æºãã¦ãã·ã°ãã«å士ã®ç«¶åãé²ã
- log rotation
- ruby core ã«ãã§ã«ãã¼ãã£ã³ã°ããã¦ããæ©è½
- ãã«ãããã»ã¹ã§ã®ãã°ãã¼ãã¼ã·ã§ã³ãªã©
- auto restart
Q) ServerEngine ãå ¥ããã¨ã§ãè¨å®ãã¡ã¤ã«ãå¢ããï¼
- A) Fluentd ãå é¨çã« ServerEngine ã®è¨å®ãã¡ã¤ã«ãä½ã£ã¦ãServerEngine ã«æ¸¡ããã¦ã¼ã¶å´ã¯ Fluentd/td-agent ã®è¨å®ãã¡ã¤ã«ã ããç·¨éããã°è¯ã
Fluentd v0.14 Plugin API Updates (ç°ç± è¡, @tagomoris)
使 æ°ãã API ã»ãããä½ã£ããï¼
- ãã¾ã¾ã§ã®ãã©ã°ã¤ã³ã«ã¯ãéçºè åãããã¥ã¡ã³ãããªãã£ããã¿ããªä»ã®äººã®æ¸ãããã©ã°ã¤ã³ã®çä¼¼ããã¦æ¸ãã¦ãã
- ãã©ã°ã¤ã³å ã§ç¬èªã«ã¹ã¬ãããèµ·åãããããªãã¨ãå¿ è¦ã§ããã®ããã§ãã¹ããã¥ãã
- ãããã©ã°ã¤ã³ã§ä½¿ãããã©ã¡ã¼ã¿ããä»ã®ãã©ã°ã¤ã³ã§ã使ããã®ãã©ããããããã¥ãã
- å²ãã¨ã³ã¢ãªå¦çããã©ã°ã¤ã³å´ã§ä¸æ¸ããã¦ãã¾ã£ã¦ãããã¨ããããã
- ãªã©ãªã©
- ä¸è¨ã®ãããªåé¡ã解決ããããã¾ãã便å©ãªæ©è½ãä¸ç·ã«æä¾ãããã¨ã§ãç§»è¡ãé²ããã
Compatibility of plugins
- v0.12ã®ãã©ã°ã¤ã³ã¯ Fluent::Input ãªã©ã®ã¯ã©ã¹ã®ãµãã¯ã©ã¹
- compatibility layer: Fluent::Compat::Klass ã§ãv0.12 ã«ãããªãã¡ã½ãããæä¾ãããªã©ãã¦ãäºææ§ãç¶æ
Compatibility of configurations
- v0.12 å½¢å¼ã®ãã©ã¡ã¼ã¿ã v0.14 å½¢å¼ã«èªå夿ãã helper ãæä¾ãããplugin éçºè ã«ããã使ã£ã¦ãããå¿ è¦ããã
- v0.14 API ã使ã£ããã©ã°ã¤ã³ããv0.12 ã§åãããã¨ã¯ã§ããªãï¼ããã«ããï¼ãgemspec ã«ä¾åé¢ä¿ãæ¸ãã¦ãããå¿ è¦ããã
v0.14 ãã©ã°ã¤ã³ã¯ã©ã¹ã®æ¸ãæ¹
- ãã¹ã¦ã®ã¯ã©ã¹ã Fluent::Plugin ã¢ã¸ã¥ã¼ã«ã®ä¸ã«ç½®ãï¼ãã¾ã¾ã§ã¯ Fluent ç´ä¸ã ã£ãï¼
- 親ã¯ã©ã¹ã®ã¡ã½ããï¼#configure ã¨ãï¼ããªã¼ãã©ã¤ãããã¨ãã¯å¿ ã super ãå¼ã¶
- super ãå¼ãã§ãªãå ´åã¯ãäºææ§ã¬ã¤ã¤ã代ããã« super ãå¼ãã§ãWARNING ãåºã
- 親ã¯ã©ã¹ï¼Fluent::Plugin::Input ã¨ãï¼ã®éå±¤ãæ´ç
Fluent::Plugin::Output
- Output Plugin ã¯ç©åãããããå¤ãã£ããv0.12 ã¾ã§ã¯ãããããã¨ã«ãã£ã¦ç°ãªãã¯ã©ã¹ã使ãåããå¿ è¦ããã£ããã1åã® Output ã¯ã©ã¹ã«çµ±åããã
- chunk ãåããæ¡ä»¶ãç´°ããæå®ã§ããããã«ãªã£ãããã¾ã¾ã§ã¯ãµã¤ãºã®ã¿ã® chunking ã ã£ãããä¾ãã°æéã§ã chunking ã§ããããæéã¨ãµã¤ãºã®çµåãã§ãã§ãã
- Non-buffered, buffered synchronous, buffered asynchronous ã®ãããã1åãå®è£ ãã¦ããã°åã
Delayed commit
- æ¸ãè¾¼ã¿ã® ACK ãå¾ ã¡ããå ´åããã¾ã¾ã§ã¯ write ã¡ã½ããã®ä¸ã§å¾ ã¤å¿ è¦ããã£ããwrite ã¡ã½ãããçµããã¨ãéã£ããã¼ã¿ã chunk ããæ¶ããã¦ãã¾ããã
- v0.14 ã§ã¯ try_write ã¡ã½ããã§ commit ãå¾ ããã« return ããããã®æç¹ã§ã¯ chunk ãæ¶ãããªããéåæã®ãã§ãã¯ã¹ã¬ããã ACK ãåãåã£ã¦ #commit_write ãå¼ã°ããæç¹ã§ãchunk ãæ¶ããã
- ã¦ã¼ã¹ã±ã¼ã¹ï¼åæ£ãã¡ã¤ã«ã·ã¹ãã ã«æ¸ãè¾¼ãã§ãããæ£ããèªãããã¨ã確èªãã¦ãã chunk ãæ¶ãããå ´å
configurations: flushing buffers
- chunk ã flush ããã¿ã¤ãã³ã°ããç´°ããå¶å¾¡ã§ããããã«ãªã£ã
- flush_mode: immediate â ããã«æ¸ãè¾¼ãã§æ¬²ãããã失æããæã¯ãªãã©ã¤ãã¦æ¬²ããå ´åã«ä½¿ãã¢ã¼ã
Retries
- ãã¾ã¾ã§ã¯ãªãã©ã¤åæ°(retry_count)ããæå®ã§ããªãã£ãããã¿ã¤ã ã¢ã¦ã(retry_timeout)ãæå®ã§ããããã«ãªã£ãï¼ã©ãã ãã®æéããªãã©ã¤ãç¶ãããï¼
- ãã¾ã¾ã§ã¯72æéãªãã©ã¤ãç¶ãã¦ããããã®ä»æ§ã¯èªæã§ã¯ãªãã£ãããã¤ã¾ã§å¾ ã¦ã°è«¦ããä»ãã®ãã誰ã«ãããããªãç¶æ ã ã£ã
ãã®ä»ã®ãã©ã°ã¤ã³: Buffer, Parser, Formatter, Storage, ...
- ãããã v0.14 ã§ã¯ "Owned" plugin ã¨å¼ã¶ â ä»ã®ãã©ã°ã¤ã³çµç±ã§å®ä½åããããã©ã°ã¤ã³
- 対義èªã¯ primary plugins â Input, Output, Filter plugin
- Storage pluginï¼ãã©ã°ã¤ã³å
ã§ãã¼ã¿ãæ°¸ç¶åãããå ´åã«ä½¿ããã©ã°ã¤ã³
- ä¾ï¼file plugin ã® pos file ã§ç®¡çãã¦ããæ å ±ããstorage plugin ã§æ°¸ç¶å
- ãããã v0.14 ã§ã¯ "Owned" plugin ã¨å¼ã¶ â ä»ã®ãã©ã°ã¤ã³çµç±ã§å®ä½åããããã©ã°ã¤ã³
Plugin Helpers
- ãã«ãã¼ã使ãããã¨ãã¯ãæç¤ºçã« "helpers :name" ã¨æå®ãã¦ããããã¨ã§ãã©ã®ãã«ãã¼ã使ã£ã¦ããã®ãæç¤ºãããããã«ãã
New Test Drivers
- ãã¾ã¾ã§ã¯å®è¡ã¿ã¤ãã³ã°ã«ä¾åãã¦ãããããªã³ã¼ããããã¡ãã¨ãã¹ãã§ããããã«ãã
- ä¾ãã°ãflushã®ã¿ã¤ãã³ã°ãå¶å¾¡ããã¨ã
Plans for v0.14.x
- 夿©ããã®è©±ï¼Î±
- plugin generator ãå ¥ãããã¨æã£ã¦ããããã¾ã¯ãä»ã®äººã®æ¸ãããã©ã°ã¤ã³ã®çä¼¼ããã¦ãã©ã°ã¤ã³ãæ¸ããã¨ããç¶æ ã§ãããã¯è¯ããªã
- æ°ããAPIï¼Fluentd å ¨ä½ã§ä½¿ãããããã¡ãµã¤ãºã®ä¸éãæå®ãCounter API
éçºè åãã®ããã¥ã¡ã³ãã¯ããããæ¸ãï¼æ¸ããªããã°ãããªãã¨æã£ã¦ã¯ããï¼