SlideShare a Scribd company logo
Log everyting in JSON.
             Treasuare Data, Inc.
           Sadayuki Furuhashi
Self-introduction
>   Sadayuki Furuhashi
    twitter: @frsyuki

>   Original author of Fluentd
>   Treasure Data, Inc.
    Software Architect; Founder

>   open-source
    MessagePack - efficient serialization format
0. Why logging?

1. Why Fluentd? - Design of Fluentd
 >   Extensibility
 >   Unified log format
 >   Simplicity

2. Who uses Fluentd?

3. Future of Fluentd
0. Why logging?

1. Why Fluentd? - Design of Fluentd
 >   Extensibility
 >   Unified log format
 >   Simplicity

2. Who uses Fluentd?

3. Future of Fluentd
0. Why logging?

 >    Error notifications
 >    Performance monitoring
 >    User segment analysis
 >    Funnel analysis
 >    Heatmap analysis
 >    Market prediction
     etc...
0. Why logging? - Error notifications




                        Error!
0. Why logging? - Performance monitor
0. Why logging? - User segment analysis
0. Why logging? - Funnel analysis



                                    -28%!
                         -27%!
0. Why logging? - Heatmap analysis
0. Why logging? - Market prediction
0. Why logging?

1. Why Fluentd? - Design of Fluentd
 >   Extensibility
 >   Unified log format
 >   Simplicity

2. Who uses Fluentd?

3. Future of Fluentd
0. Why logging?

1. Why Fluentd? - Design of Fluentd
 >   Extensibility
 >   Unified log format
 >   Simplicity

2. Who uses Fluentd?

3. Future of Fluentd
Alerting
                    Nagios

                  Analysis
                   MongoDB
                   MySQL
                   Hadoop
log utilization
                  Archiving
                    Amazon S3
Access logs                        Alerting
  Apache                             Nagios

App logs                           Analysis
 Frontend     log sources           MongoDB
 Backend                            MySQL

System logs                         Hadoop
  syslogd        log utilization
                                   Archiving
Databases                            Amazon S3
Access logs   Alerting
  Apache        Nagios

App logs      Analysis
 Frontend      MongoDB
 Backend       MySQL

System logs    Hadoop
  syslogd
              Archiving
Databases       Amazon S3
Access logs   rsync servers
                              Alerting
  Apache                        Nagios

App logs                      Analysis
 Frontend                      MongoDB
 Backend                       MySQL
              bash scripts

System logs                    Hadoop
  syslogd
                              Archiving
Databases                       Amazon S3
              perl scripts
Problems...
No unified method to collect logs
>   Too many bash/perl scripts
    Fragile for changes
    Less reliable
>   Mixed log formats
    Old-fashioned “Human-readable” text logs
    Not ready to analyze
>   High latency
    must wait a day for log rotation
Access logs   Alerting
  Apache        Nagios

App logs      Analysis
 Frontend      MongoDB
 Backend       MySQL

System logs    Hadoop
  syslogd
              Archiving
Databases       Amazon S3
Access logs                               Alerting
  Apache                                    Nagios

App logs                                  Analysis
 Frontend                                  MongoDB
 Backend                                   MySQL

System logs                                Hadoop
  syslogd
                                          Archiving
              filter / buffer / routing
Databases                                   Amazon S3
Input Plugins                    Output Plugins




                Buffer Plugins
                Filter Plugins
Input Plugins                   Output Plugins




                 2012-02-04 01:33:51
   JSON format
                 myapp.buylog {
                   “user”: ”me”,
                   “path”: “/buyItem”,
                   “price”: 150,
                   “referer”: “/landing”
                 }
Input Plugins                   Output Plugins

                                   time
                                     tag

                 2012-02-04 01:33:51
   JSON format
                 myapp.buylog {
                   “user”: ”me”,
                   “path”: “/buyItem”,
                   “price”: 150,
                   “referer”: “/landing”
                 }
                                record
Why Fluentd?
>   Extensibility - Plugin architecture
    collect logs from various systems
    forward logs to various systems
>   Unified log format - JSON format
    modern “Machine-readable” log format
    immediately ready to analyze
>   Reliable - HA configuration
>   Easy to install - RPM/deb packages
    deploy instantly to everywhere
Fluentd meetup #2
Comparision with other log collectors:
>   Scribe
    Less extensible
    No unified log format
    No longer developped?


>   Flume
    Less simple
    No unified log format
    Little information about Flume-NG
0. Why logging?

1. Why Fluentd? - Design of Fluentd
 >   Extensibility
 >   Unified log format
 >   Simplicity

2. Who uses Fluentd?

3. Future of Fluentd
0. Why logging?

1. Why Fluentd? - Design of Fluentd
 >   Extensibility
 >   Unified log format
 >   Simplicity

2. Who uses Fluentd?

3. Future of Fluentd
NHN Japan            COOKPAD              NAVER

Crocos

http://www.quora.com/Who-uses-Fluentd-in-production
0. Why logging?

1. Why Fluentd? - Design of Fluentd
 >   Extensibility
 >   Unified log format
 >   Simplicity

2. Who uses Fluentd?

3. Future of Fluentd
0. Why logging?

1. Why Fluentd? - Design of Fluentd
 >   Extensibility
 >   Unified log format
 >   Simplicity

2. Who uses Fluentd?

3. Future of Fluentd
Future of Fluentd
>   <filter>
>   <match> in <source>
>   <label>
>   MessagePack for Ruby v5
>   td-agent-lite
>   Pub/Sub & Monitoring API
>   New process model & Live restart
>   Backward compatibility
<source>                       <match **>
  type tail                      type forward
  path /var/log/httpd.log        host log.server
  format apache                </match>
  tag not_filtered.apache
</source>
                                 Mysterious tag
<match not_filetered.**>
  type rewrite
  remove_prefix not_filtered     tag operations
  <rule>
    key     status
    pattern ^500$
    ignore true
  </rule>
</match>



                                                   Before
<source>                       <match **>
  type tail                      type forward
  path /var/log/httpd.log        host log.server
  format apache                </match>
  tag apache
</source>

<filter **>            Filter plugins!
  type rewrite
  <rule>
    key     status
    pattern ^500$
    ignore true
  </rule>
</match>




                                         After (v11)
<source>                    <match **>
  type tail                   type forward
  path /var/log/httpd.log     host log.server
  format apache             </match>
  tag apache


  <filter **>
    type rewrite
    <rule>
      key     status
      pattern ^500$
                            <filter>/<match> in
      ignore true           <source>
    </rule>
  </match>
</source>



                                      After (v11)
<source>                     <match **>
  type tail                    type forward
  path /var/log/httpd.log      host log.server
  tag apache                 </match>
</source>

                   I want to add flowcounter here...




                                                 Before
<source>                            <store>
  type tail                           type forward
  path /var/log/httpd.log             host log.server
  tag apache                        </store>
</source>                         </match>

<match flow.traffic>
  type forward
  host traffic.server
</match>                    Nested!
<match **>
  type copy
  <store>
    type flowcounter
    tag flow.traffic
  </store>


                                                   Before
<source>                      <match **>
  type tail                     type forward
  path /var/log/httpd.log       host log.server
  tag apache                  </match>
</source>

<filter **>
  type copy
  <match>
    type flowcounter
    tag flow.traffic
    <match>
      type forward
      host traffic.server
    </match>
  </match>                  Filtering pipeline
</match>


                                        After (v11)
<source>                      # copy & label & forward
  type forward                <filter **>
</source>                       type copy
                                <match>
<filter **>                       type forward
  type copy                       label alert
  <match>                         host alerting.server
    type file                   </match>
    path /mnt/local_archive   </filter>
  </match>
</filter>                     # copy & label & forward
                              <filter **>
<label alert>                   type copy
  <match **>                    <match>
    ...                           type forward
  </match>                        label analysis
</label>                          host analysis.server
                                </match>
<label analysis>              </filter>
  ...
</label>
                                        After (v11)
MessagePack for Ruby v5

(tweets/sec)

40000

30000

20000

10000

    0
                  Serialize                Deserialize

           msgpack v5         msgpack v4   yajl          json
td-agent-lite




>   in_tail + out_forward in “single” binary
    statically linked ruby binary + scripts tied with the binary
New process model & Live restart
Old multiprocess model
                                       detached
                                        process


               fork()
  Supervisor              Engine

                                       detached
               all data pass through    process
               the central process
New process model & Live restart
New multiprocess model
                                         detached
                                          process


                             Process
 Supervisor    Engine
                             Manager

                                         detached
                                          process
                  direct communication
New process model & Live restart
New multiprocess model
                                          detached
                                           process


                                Process
 Supervisor    Engine
                                Manager

                                          detached
                 Live restart              process



                                Process
               Engine
                                Manager
Backward compatibility


Fluentd v11 includes 2 namespaces:
  > Fluentd:: new code base
  > Fluent:: old code base + wrapper classes



Checkout the repository for details:
 > http://github.com/frsyuki/fluentd-v11
Conculution

Fluentd makes logging better
  > Plugin architecture
  > JSON format
  > HA configuration
  > RPM/deb package

Fluentd is under active development
Fluentd is suppored by many committers
contact: sales@treasure-data.com
Fluentd meetup #2
Fluentd meetup #2
ログ収集/解析に使っているツール
ログの保存先
Fluentdを導入するにあたっての障壁

More Related Content

PPTX
Life of an Fluentd event
Kiyoto Tamura
 
PDF
The basics of fluentd
Treasure Data, Inc.
 
PDF
Dive into Fluentd plugin v0.12
N Masahiro
 
PDF
The basics of fluentd
Treasure Data, Inc.
 
PDF
Fluentd meetup in japan
Treasure Data, Inc.
 
PDF
Fluentd - Set Up Once, Collect More
Sadayuki Furuhashi
 
PDF
Fluentd vs. Logstash for OpenStack Log Management
NTT Communications Technology Development
 
PDF
Fluentd introduction at ipros
Treasure Data, Inc.
 
Life of an Fluentd event
Kiyoto Tamura
 
The basics of fluentd
Treasure Data, Inc.
 
Dive into Fluentd plugin v0.12
N Masahiro
 
The basics of fluentd
Treasure Data, Inc.
 
Fluentd meetup in japan
Treasure Data, Inc.
 
Fluentd - Set Up Once, Collect More
Sadayuki Furuhashi
 
Fluentd vs. Logstash for OpenStack Log Management
NTT Communications Technology Development
 
Fluentd introduction at ipros
Treasure Data, Inc.
 

What's hot (20)

PDF
Fluentd v0.12 master guide
N Masahiro
 
PDF
Fluentd v1.0 in a nutshell
N Masahiro
 
PDF
Fluentd unified logging layer
Kiyoto Tamura
 
PDF
Fluentd meetup dive into fluent plugin (outdated)
N Masahiro
 
ODP
Using Logstash, elasticsearch & kibana
Alejandro E Brito Monedero
 
PPTX
Big Data Day LA 2016/ Big Data Track - Fluentd and Embulk: Collect More Data,...
Data Con LA
 
PDF
Fluentd meetup
Sadayuki Furuhashi
 
PDF
From zero to hero - Easy log centralization with Logstash and Elasticsearch
Rafał Kuć
 
PDF
Like loggly using open source
Thomas Alrin
 
PDF
Centralized + Unified Logging
Gabor Kozma
 
PDF
Fluentd 101
SATOSHI TAGOMORI
 
PDF
On Centralizing Logs
Sematext Group, Inc.
 
PDF
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Treasure Data, Inc.
 
PDF
JRuby with Java Code in Data Processing World
SATOSHI TAGOMORI
 
PDF
Logstash-Elasticsearch-Kibana
dknx01
 
PDF
Fluentd v1.0 in a nutshell
N Masahiro
 
PDF
How to create Treasure Data #dotsbigdata
N Masahiro
 
PDF
Logstash family introduction
Owen Wu
 
PDF
Logstash: Get to know your logs
SmartLogic
 
PPTX
Tuning Elasticsearch Indexing Pipeline for Logs
Sematext Group, Inc.
 
Fluentd v0.12 master guide
N Masahiro
 
Fluentd v1.0 in a nutshell
N Masahiro
 
Fluentd unified logging layer
Kiyoto Tamura
 
Fluentd meetup dive into fluent plugin (outdated)
N Masahiro
 
Using Logstash, elasticsearch & kibana
Alejandro E Brito Monedero
 
Big Data Day LA 2016/ Big Data Track - Fluentd and Embulk: Collect More Data,...
Data Con LA
 
Fluentd meetup
Sadayuki Furuhashi
 
From zero to hero - Easy log centralization with Logstash and Elasticsearch
Rafał Kuć
 
Like loggly using open source
Thomas Alrin
 
Centralized + Unified Logging
Gabor Kozma
 
Fluentd 101
SATOSHI TAGOMORI
 
On Centralizing Logs
Sematext Group, Inc.
 
Fluentd loves MongoDB, at MongoDB SV User Group, July 17, 2012
Treasure Data, Inc.
 
JRuby with Java Code in Data Processing World
SATOSHI TAGOMORI
 
Logstash-Elasticsearch-Kibana
dknx01
 
Fluentd v1.0 in a nutshell
N Masahiro
 
How to create Treasure Data #dotsbigdata
N Masahiro
 
Logstash family introduction
Owen Wu
 
Logstash: Get to know your logs
SmartLogic
 
Tuning Elasticsearch Indexing Pipeline for Logs
Sematext Group, Inc.
 
Ad

Similar to Fluentd meetup #2 (20)

PDF
Fluentd meetup at Slideshare
Sadayuki Furuhashi
 
PDF
Fluentd and Embulk Game Server 4
N Masahiro
 
PDF
Fluentd Unified Logging Layer At Fossasia
N Masahiro
 
PDF
Fluentd Project Intro at Kubecon 2019 EU
N Masahiro
 
PDF
Api Design and More (Friday Training at Itnig)
itnig
 
PPT
Miyagawa
slidestest
 
PPT
Miyagawa
guest0437b8
 
PPT
Miyagawa
guru100
 
PPT
Miyagawa
guestbdd02b
 
PDF
Jordi Romero Api for-the-mobile-era
.toster
 
PDF
fluentd -- the missing log collector
Muga Nishizawa
 
PDF
India Pr Wire May 11, 2009 Sensex Down 193 Points On Profit Booking
Jagannadham Thunuguntla
 
PDF
The Zeitgeist Movement
guest915c8c5
 
PDF
Logging for Production Systems in The Container Era
Sadayuki Furuhashi
 
PPTX
Sumo Logic "How to" Webinar: Advanced Analytics
Sumo Logic
 
PDF
Fluentd - RubyKansai 65
N Masahiro
 
PDF
Fluentd at HKOScon
N Masahiro
 
PDF
Kubernetes API code-base tour
Stefan Schimanski
 
KEY
Motion Django Meetup
Mike Malone
 
PDF
Fluentd and Docker - running fluentd within a docker container
Treasure Data, Inc.
 
Fluentd meetup at Slideshare
Sadayuki Furuhashi
 
Fluentd and Embulk Game Server 4
N Masahiro
 
Fluentd Unified Logging Layer At Fossasia
N Masahiro
 
Fluentd Project Intro at Kubecon 2019 EU
N Masahiro
 
Api Design and More (Friday Training at Itnig)
itnig
 
Miyagawa
slidestest
 
Miyagawa
guest0437b8
 
Miyagawa
guru100
 
Miyagawa
guestbdd02b
 
Jordi Romero Api for-the-mobile-era
.toster
 
fluentd -- the missing log collector
Muga Nishizawa
 
India Pr Wire May 11, 2009 Sensex Down 193 Points On Profit Booking
Jagannadham Thunuguntla
 
The Zeitgeist Movement
guest915c8c5
 
Logging for Production Systems in The Container Era
Sadayuki Furuhashi
 
Sumo Logic "How to" Webinar: Advanced Analytics
Sumo Logic
 
Fluentd - RubyKansai 65
N Masahiro
 
Fluentd at HKOScon
N Masahiro
 
Kubernetes API code-base tour
Stefan Schimanski
 
Motion Django Meetup
Mike Malone
 
Fluentd and Docker - running fluentd within a docker container
Treasure Data, Inc.
 
Ad

More from Treasure Data, Inc. (20)

PPTX
GDPR: A Practical Guide for Marketers
Treasure Data, Inc.
 
PPTX
AR and VR by the Numbers: A Data First Approach to the Technology and Market
Treasure Data, Inc.
 
PPTX
Introduction to Customer Data Platforms
Treasure Data, Inc.
 
PPTX
Hands On: Javascript SDK
Treasure Data, Inc.
 
PPTX
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
Treasure Data, Inc.
 
PPTX
Brand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
Treasure Data, Inc.
 
PPTX
How to Power Your Customer Experience with Data
Treasure Data, Inc.
 
PPTX
Why Your VR Game is Virtually Useless Without Data
Treasure Data, Inc.
 
PDF
Connecting the Customer Data Dots
Treasure Data, Inc.
 
PPTX
Harnessing Data for Better Customer Experience and Company Success
Treasure Data, Inc.
 
PDF
Packaging Ecosystems -Monki Gras 2017
Treasure Data, Inc.
 
PDF
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
Treasure Data, Inc.
 
PDF
Keynote - Fluentd meetup v14
Treasure Data, Inc.
 
PDF
Introduction to New features and Use cases of Hivemall
Treasure Data, Inc.
 
PDF
Scalable Hadoop in the cloud
Treasure Data, Inc.
 
PDF
Using Embulk at Treasure Data
Treasure Data, Inc.
 
PDF
Scaling to Infinity - Open Source meets Big Data
Treasure Data, Inc.
 
PDF
Treasure Data: Move your data from MySQL to Redshift with (not much more tha...
Treasure Data, Inc.
 
PDF
Treasure Data From MySQL to Redshift
Treasure Data, Inc.
 
PDF
Unifying Events and Logs into the Cloud
Treasure Data, Inc.
 
GDPR: A Practical Guide for Marketers
Treasure Data, Inc.
 
AR and VR by the Numbers: A Data First Approach to the Technology and Market
Treasure Data, Inc.
 
Introduction to Customer Data Platforms
Treasure Data, Inc.
 
Hands On: Javascript SDK
Treasure Data, Inc.
 
Hands-On: Managing Slowly Changing Dimensions Using TD Workflow
Treasure Data, Inc.
 
Brand Analytics Management: Measuring CLV Across Platforms, Devices and Apps
Treasure Data, Inc.
 
How to Power Your Customer Experience with Data
Treasure Data, Inc.
 
Why Your VR Game is Virtually Useless Without Data
Treasure Data, Inc.
 
Connecting the Customer Data Dots
Treasure Data, Inc.
 
Harnessing Data for Better Customer Experience and Company Success
Treasure Data, Inc.
 
Packaging Ecosystems -Monki Gras 2017
Treasure Data, Inc.
 
글로벌 사례로 보는 데이터로 돈 버는 법 - 트레저데이터 (Treasure Data)
Treasure Data, Inc.
 
Keynote - Fluentd meetup v14
Treasure Data, Inc.
 
Introduction to New features and Use cases of Hivemall
Treasure Data, Inc.
 
Scalable Hadoop in the cloud
Treasure Data, Inc.
 
Using Embulk at Treasure Data
Treasure Data, Inc.
 
Scaling to Infinity - Open Source meets Big Data
Treasure Data, Inc.
 
Treasure Data: Move your data from MySQL to Redshift with (not much more tha...
Treasure Data, Inc.
 
Treasure Data From MySQL to Redshift
Treasure Data, Inc.
 
Unifying Events and Logs into the Cloud
Treasure Data, Inc.
 

Recently uploaded (20)

PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Software Development Methodologies in 2025
KodekX
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
cloud computing vai.pptx for the project
vaibhavdobariyal79
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
Doc9.....................................
SofiaCollazos
 
Software Development Methodologies in 2025
KodekX
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 

Fluentd meetup #2

  • 1. Log everyting in JSON. Treasuare Data, Inc. Sadayuki Furuhashi
  • 2. Self-introduction > Sadayuki Furuhashi twitter: @frsyuki > Original author of Fluentd > Treasure Data, Inc. Software Architect; Founder > open-source MessagePack - efficient serialization format
  • 3. 0. Why logging? 1. Why Fluentd? - Design of Fluentd > Extensibility > Unified log format > Simplicity 2. Who uses Fluentd? 3. Future of Fluentd
  • 4. 0. Why logging? 1. Why Fluentd? - Design of Fluentd > Extensibility > Unified log format > Simplicity 2. Who uses Fluentd? 3. Future of Fluentd
  • 5. 0. Why logging? > Error notifications > Performance monitoring > User segment analysis > Funnel analysis > Heatmap analysis > Market prediction etc...
  • 6. 0. Why logging? - Error notifications Error!
  • 7. 0. Why logging? - Performance monitor
  • 8. 0. Why logging? - User segment analysis
  • 9. 0. Why logging? - Funnel analysis -28%! -27%!
  • 10. 0. Why logging? - Heatmap analysis
  • 11. 0. Why logging? - Market prediction
  • 12. 0. Why logging? 1. Why Fluentd? - Design of Fluentd > Extensibility > Unified log format > Simplicity 2. Who uses Fluentd? 3. Future of Fluentd
  • 13. 0. Why logging? 1. Why Fluentd? - Design of Fluentd > Extensibility > Unified log format > Simplicity 2. Who uses Fluentd? 3. Future of Fluentd
  • 14. Alerting Nagios Analysis MongoDB MySQL Hadoop log utilization Archiving Amazon S3
  • 15. Access logs Alerting Apache Nagios App logs Analysis Frontend log sources MongoDB Backend MySQL System logs Hadoop syslogd log utilization Archiving Databases Amazon S3
  • 16. Access logs Alerting Apache Nagios App logs Analysis Frontend MongoDB Backend MySQL System logs Hadoop syslogd Archiving Databases Amazon S3
  • 17. Access logs rsync servers Alerting Apache Nagios App logs Analysis Frontend MongoDB Backend MySQL bash scripts System logs Hadoop syslogd Archiving Databases Amazon S3 perl scripts
  • 18. Problems... No unified method to collect logs > Too many bash/perl scripts Fragile for changes Less reliable > Mixed log formats Old-fashioned “Human-readable” text logs Not ready to analyze > High latency must wait a day for log rotation
  • 19. Access logs Alerting Apache Nagios App logs Analysis Frontend MongoDB Backend MySQL System logs Hadoop syslogd Archiving Databases Amazon S3
  • 20. Access logs Alerting Apache Nagios App logs Analysis Frontend MongoDB Backend MySQL System logs Hadoop syslogd Archiving filter / buffer / routing Databases Amazon S3
  • 21. Input Plugins Output Plugins Buffer Plugins Filter Plugins
  • 22. Input Plugins Output Plugins 2012-02-04 01:33:51 JSON format myapp.buylog { “user”: ”me”, “path”: “/buyItem”, “price”: 150, “referer”: “/landing” }
  • 23. Input Plugins Output Plugins time tag 2012-02-04 01:33:51 JSON format myapp.buylog { “user”: ”me”, “path”: “/buyItem”, “price”: 150, “referer”: “/landing” } record
  • 24. Why Fluentd? > Extensibility - Plugin architecture collect logs from various systems forward logs to various systems > Unified log format - JSON format modern “Machine-readable” log format immediately ready to analyze > Reliable - HA configuration > Easy to install - RPM/deb packages deploy instantly to everywhere
  • 26. Comparision with other log collectors: > Scribe Less extensible No unified log format No longer developped? > Flume Less simple No unified log format Little information about Flume-NG
  • 27. 0. Why logging? 1. Why Fluentd? - Design of Fluentd > Extensibility > Unified log format > Simplicity 2. Who uses Fluentd? 3. Future of Fluentd
  • 28. 0. Why logging? 1. Why Fluentd? - Design of Fluentd > Extensibility > Unified log format > Simplicity 2. Who uses Fluentd? 3. Future of Fluentd
  • 29. NHN Japan COOKPAD NAVER Crocos http://www.quora.com/Who-uses-Fluentd-in-production
  • 30. 0. Why logging? 1. Why Fluentd? - Design of Fluentd > Extensibility > Unified log format > Simplicity 2. Who uses Fluentd? 3. Future of Fluentd
  • 31. 0. Why logging? 1. Why Fluentd? - Design of Fluentd > Extensibility > Unified log format > Simplicity 2. Who uses Fluentd? 3. Future of Fluentd
  • 32. Future of Fluentd > <filter> > <match> in <source> > <label> > MessagePack for Ruby v5 > td-agent-lite > Pub/Sub & Monitoring API > New process model & Live restart > Backward compatibility
  • 33. <source> <match **> type tail type forward path /var/log/httpd.log host log.server format apache </match> tag not_filtered.apache </source> Mysterious tag <match not_filetered.**> type rewrite remove_prefix not_filtered tag operations <rule> key status pattern ^500$ ignore true </rule> </match> Before
  • 34. <source> <match **> type tail type forward path /var/log/httpd.log host log.server format apache </match> tag apache </source> <filter **> Filter plugins! type rewrite <rule> key status pattern ^500$ ignore true </rule> </match> After (v11)
  • 35. <source> <match **> type tail type forward path /var/log/httpd.log host log.server format apache </match> tag apache <filter **> type rewrite <rule> key status pattern ^500$ <filter>/<match> in ignore true <source> </rule> </match> </source> After (v11)
  • 36. <source> <match **> type tail type forward path /var/log/httpd.log host log.server tag apache </match> </source> I want to add flowcounter here... Before
  • 37. <source> <store> type tail type forward path /var/log/httpd.log host log.server tag apache </store> </source> </match> <match flow.traffic> type forward host traffic.server </match> Nested! <match **> type copy <store> type flowcounter tag flow.traffic </store> Before
  • 38. <source> <match **> type tail type forward path /var/log/httpd.log host log.server tag apache </match> </source> <filter **> type copy <match> type flowcounter tag flow.traffic <match> type forward host traffic.server </match> </match> Filtering pipeline </match> After (v11)
  • 39. <source> # copy & label & forward type forward <filter **> </source> type copy <match> <filter **> type forward type copy label alert <match> host alerting.server type file </match> path /mnt/local_archive </filter> </match> </filter> # copy & label & forward <filter **> <label alert> type copy <match **> <match> ... type forward </match> label analysis </label> host analysis.server </match> <label analysis> </filter> ... </label> After (v11)
  • 40. MessagePack for Ruby v5 (tweets/sec) 40000 30000 20000 10000 0 Serialize Deserialize msgpack v5 msgpack v4 yajl json
  • 41. td-agent-lite > in_tail + out_forward in “single” binary statically linked ruby binary + scripts tied with the binary
  • 42. New process model & Live restart Old multiprocess model detached process fork() Supervisor Engine detached all data pass through process the central process
  • 43. New process model & Live restart New multiprocess model detached process Process Supervisor Engine Manager detached process direct communication
  • 44. New process model & Live restart New multiprocess model detached process Process Supervisor Engine Manager detached Live restart process Process Engine Manager
  • 45. Backward compatibility Fluentd v11 includes 2 namespaces: > Fluentd:: new code base > Fluent:: old code base + wrapper classes Checkout the repository for details: > http://github.com/frsyuki/fluentd-v11
  • 46. Conculution Fluentd makes logging better > Plugin architecture > JSON format > HA configuration > RPM/deb package Fluentd is under active development Fluentd is suppored by many committers