[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
fluentd ~log collector tool~
         Teck-Talk TIS Daisuke Ikeda
What's fluentd?
Fluentd is an event collector system.
It is a generalized version of syslogd,
which handles JSON objects for its log
messages.※

・イベントログ収集ツール
・JSONオブジェクトとしてログデータを管理可能
・Ruby実装のOSS

 ※https://github.com/fluent/fluentd
Architecture of fluentd
3段階構成
Input        Buffer    Output
                       ・file
・syslog      ・memory   ・AmazonS3
・httpリクエスト   ・file     ・DB
                       ・Zabbix
・file                  などなど
などなど
Install fluentd
gemパッケージとして提供(Ruby1.9.2以上必須)
# gem install fluentd
Successfully installed msgpack-0.4.7
Successfully installed yajl-ruby-1.1.0
Successfully installed iobuffer-1.1.2
Successfully installed cool.io-1.1.0
Successfully installed http_parser.rb-0.5.3
Successfully installed fluentd-0.10.22

ソースコードからもインストール可
td-agentというパッケージからもインストール可
ログを送信する側、受信する側両者にインストール
Configure fluentd
設定ファイルの生成
# fluentd --setup /etc/fluent
# ls /etc/fluent/
fluent.conf plugin

設定(fluent.conf)
source matchの2つを定義
## built-in TCP input                 ## match tag=debug.** and dump to
## $ echo <json> | fluent-cat <tag>   console
<source>                              <match debug.**>
 type forward                          type stdout
</source>                             </match>
                 sourceから取得した内容を
    match定義のtagに一致したものをmatchの中身の定義に応じてOutput
fluent-cat→output log
fluent-catを使って試しにfluentdに出力
## built-in TCP input                   <match debug.**>
## $ echo <json> | fluent-cat <tag>      type file
<source>                                 path /home/ike-dai/log/fluentd.log
 type forward                           </match>
</source>
fluentd起動
 # fluentd -c /etc/fluent/fluent.conf
fluent-catでログ送付
 # echo '{"test":12345}' | fluent-cat debug.test1
 $ less log/fluentd.log.20120519.b4c06414d3dc93f8c
 2012-05-19T22:59:45+09:00           debug.test1 {"test":12345}
Plugin of fluentd
fluent-logger (0.4.3)
fluent-plugin-cassandra (0.0.2)
fluent-plugin-couch (0.5.0)
fluent-plugin-dstat (0.1.0)
fluent-plugin-growl (0.0.5)
fluent-plugin-ikachan (0.1.0)
fluent-plugin-kestrel (0.1.0)           各種OutputやInput用のpluginが多数公開
fluent-plugin-librato-metrics (0.2.3)   gem insgtallで導入可能
fluent-plugin-mongo (0.6.7)
fluent-plugin-msgpack-rpc (0.2.1)
fluent-plugin-mysql (0.0.2)
fluent-plugin-parser (0.1.0)
fluent-plugin-pghstore (0.1.2)
fluent-plugin-redis (0.2.0)
fluent-plugin-s3 (0.2.2)
fluent-plugin-sns (0.2.1)
fluent-plugin-solr (0.1.1)
fluent-plugin-splunk (0.0.1.1)
fluent-plugin-sqs (0.2.1)
fluent-plugin-zabbix (0.0.1)
fluent-plugin-zabbix
gem install
  $ gem install fluent-plugin-zabbix


設定ファイル変更
  <match stats.**>
   type        zabbix
   zabbix_server localhost
   host        fluent
   name_keys       fluent1
   add_key_prefix test
  </match>
fluent-plugin-zabbix
zabbix item設定
fluent-plugin-zabbix
fluent-catでログ送付
$ echo '{"fluent1":"test-log"}' | fluent-cat stats.zabbix


結果
fluent-plugin-mongo
gem install
  $ gem install fluent-plugin-mongo
設定ファイル変更
  <match debug.**>
   type copy
   <store>
     type stdout
   </store>
   <store>
     type mongo
     host localhost
     database fluent
     collection fluent
   </store>
  </match>
fluent-plugin-mongo
MongoDBのデータ確認
# mongo localhost:27017
> use fluent
switched to db fluent
> show collections
fluent
system.indexes
> db.fluent.find()
{ "_id" : ObjectId("4fbb0dab2663b31095000001"), "mongo"
: 1000, "time" : "Tue May 22 2012 12:52:56 GMT+0900
(JST)" }
fluent-plugin-mongo
apacheのログをmongoに格納
  <source>                                             <match apache.access>
  type tail                                              type mongo
  format apache                                          host localhost
  path /var/log/httpd/access_log                         database log
  tag apache.access                                      collection logs
  </source>                                            </match>

{ "_id" : ObjectId("4fc2f0642663b30bed000001"),
 "host" : "172.19.xx.xx",
"user" : "-",
 "method" : "POST",
 "path" : "/zabbix/api_jsonrpc.php/api_jsonrpc.php",
 "code" : "200",
 "size" : "68",
 "referer" : "-",
 "agent" : "Zbx Ruby CLI",
 "time" : "Mon May 28 2012 12:25:29 GMT+0900 (JST)"
 }
Sample Application
Node.js + mongoose + mongoDB + fluentdで
ログを表示・検索できるWebアプリ作ってみた

                          JSONオブジェクトでデータを扱えるので
                          この組み合わせが非常にやりやすい




                            一括管理して検索機能とかあれば非常
                            に便利になるのでは
Closing
●   ログの管理という点で非常に柔軟性がある
●   とにかく盛り上がっている
●   pluginも大量に出てきている
●   Zabbixとうまく組み合わせて可視化してみると楽しいかも

● 使ってみてちょっと気になった点
    ○ apache ログをmongoDBに格納する際に少しタイムラグ
      あり?
      →Bufferのレイヤの挙動を今後確認予定

More Related Content

What's hot (20)

PPTX
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
 
PDF
Ansible2.0と実用例
OSSラボ株式会社
 
PPTX
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
真乙 九龍
 
PDF
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
 
PDF
ZabbixのAPIを使って運用を楽しくする話
Masahito Zembutsu
 
PDF
Chefで始めるWindows Server構築
Takashi Kanai
 
PDF
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
 
PPTX
OpenShift from Easy way to Hard ? Way
ロフト くん
 
PDF
Ansible 2.0 のサマライズとこれから
Takeshi Kuramochi
 
PDF
Ansible 入門 #01 (初心者向け)
Taro Hirose
 
PPTX
できる!サーバレスアーキテクチャ
azuma satoshi
 
PDF
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
さくらインターネット株式会社
 
PDF
Azure Functions 入門
jz5 MATSUE
 
PPT
Webサーバの基礎知識【編集済み】
Kikunaga Taishi
 
PDF
ECS-CLI in Action
Ryo Nakamaru
 
PPTX
Ansible ではじめるインフラのコード化入門
Sho A
 
PDF
Chef社内勉強会(第1回)
Yoshinori Nakanishi
 
PPTX
Step by stepで学ぶTerraformによる監視付きAWS構築
Yo Takezawa
 
PDF
さくらのインフラコード
Yukihiko SAWANOBORI
 
PDF
フィードフォースと AWS と私
a know
 
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
 
Ansible2.0と実用例
OSSラボ株式会社
 
Zabbixの分散構築~ConoHa VPSでのzabbix server構築~
真乙 九龍
 
AWSとGCPを使用したインフラ環境
Katsutoshi Nagaoka
 
ZabbixのAPIを使って運用を楽しくする話
Masahito Zembutsu
 
Chefで始めるWindows Server構築
Takashi Kanai
 
Ansible 2.0を使って組む kubernetesクラスタ vol.1
Hidetoshi Hirokawa
 
OpenShift from Easy way to Hard ? Way
ロフト くん
 
Ansible 2.0 のサマライズとこれから
Takeshi Kuramochi
 
Ansible 入門 #01 (初心者向け)
Taro Hirose
 
できる!サーバレスアーキテクチャ
azuma satoshi
 
Docker ホスティングサービス 'Arukas' での Mesos + Marathon の活用について(Mesos勉強会)
さくらインターネット株式会社
 
Azure Functions 入門
jz5 MATSUE
 
Webサーバの基礎知識【編集済み】
Kikunaga Taishi
 
ECS-CLI in Action
Ryo Nakamaru
 
Ansible ではじめるインフラのコード化入門
Sho A
 
Chef社内勉強会(第1回)
Yoshinori Nakanishi
 
Step by stepで学ぶTerraformによる監視付きAWS構築
Yo Takezawa
 
さくらのインフラコード
Yukihiko SAWANOBORI
 
フィードフォースと AWS と私
a know
 

Viewers also liked (13)

PDF
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
 
PPTX
Fluentdの使い方
Tomohiro Goya
 
PDF
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
 
PPTX
それFluentdで! #fluentd
Atsuko Shibuya
 
PDF
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
div Inc
 
PDF
fluentd を利用した大規模ウェブサービスのロギング
Yuichi Tateno
 
PDF
[AWSマイスターシリーズ] AWS Billingについて
Amazon Web Services Japan
 
PDF
セキュリティを捉えてクラウドを使うためのポイント
Yasuhiro Araki, Ph.D
 
PDF
AWSの課金体系
Amazon Web Services Japan
 
PDF
AWS セキュリティとコンプライアンス
Amazon Web Services Japan
 
PDF
いまさら聞けないAWSクラウド - Java Festa 2013
SORACOM, INC
 
PDF
AWSの共有責任モデル(shared responsibility model)
Akio Katayama
 
PDF
AWS Black Belt Online Seminar 2017 Auto Scaling
Amazon Web Services Japan
 
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
 
Fluentdの使い方
Tomohiro Goya
 
クラウド環境向けZabbixカスタマイズ紹介(第5回Zabbix勉強会)
Daisuke Ikeda
 
それFluentdで! #fluentd
Atsuko Shibuya
 
非エンジニアのためのこれだけは押さえておきたいWEBサービスの基礎技術
div Inc
 
fluentd を利用した大規模ウェブサービスのロギング
Yuichi Tateno
 
[AWSマイスターシリーズ] AWS Billingについて
Amazon Web Services Japan
 
セキュリティを捉えてクラウドを使うためのポイント
Yasuhiro Araki, Ph.D
 
AWSの課金体系
Amazon Web Services Japan
 
AWS セキュリティとコンプライアンス
Amazon Web Services Japan
 
いまさら聞けないAWSクラウド - Java Festa 2013
SORACOM, INC
 
AWSの共有責任モデル(shared responsibility model)
Akio Katayama
 
AWS Black Belt Online Seminar 2017 Auto Scaling
Amazon Web Services Japan
 
Ad

Similar to 社内向けTech Talk資料~Fluentdの基本紹介~ (20)

PDF
Node予備校 vol.1 名古屋
Mori Shingo
 
PDF
Hive undocumented feature
tamtam180
 
PDF
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
 
PPT
Inside mobage platform
Toru Yamaguchi
 
PDF
Fluentdへようこそ
Manabu Shinsaka
 
PDF
Webサーバのチューニング
Yu Komiya
 
PDF
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
 
PDF
FluentdとRedshiftの素敵な関係
moai kids
 
PDF
Ruby Postgres 2009
Akio Ishida
 
PDF
FluentdとGrothForecastをインストールする
regret raym
 
PDF
node-handlersocket
koichik
 
PDF
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
Taisuke Yamada
 
PDF
#logstudy 01 rsyslog入門
Takashi Takizawa
 
PPT
BBBBB
arase_utagoe
 
PPT
1MB
arase_utagoe
 
PDF
後期02
Takenori Nakagawa
 
KEY
Web Operations and Perl kansai.pm#14
Masahiro Nagano
 
PDF
MongoDB Configパラメータ解説
Shoken Fujisaki
 
PDF
OpenStack + Common Lisp
irix_jp
 
PDF
Fluentd meetup #2
Tomohiro Ikeda
 
Node予備校 vol.1 名古屋
Mori Shingo
 
Hive undocumented feature
tamtam180
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports
 
Inside mobage platform
Toru Yamaguchi
 
Fluentdへようこそ
Manabu Shinsaka
 
Webサーバのチューニング
Yu Komiya
 
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
 
FluentdとRedshiftの素敵な関係
moai kids
 
Ruby Postgres 2009
Akio Ishida
 
FluentdとGrothForecastをインストールする
regret raym
 
node-handlersocket
koichik
 
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
Taisuke Yamada
 
#logstudy 01 rsyslog入門
Takashi Takizawa
 
Web Operations and Perl kansai.pm#14
Masahiro Nagano
 
MongoDB Configパラメータ解説
Shoken Fujisaki
 
OpenStack + Common Lisp
irix_jp
 
Fluentd meetup #2
Tomohiro Ikeda
 
Ad

More from Daisuke Ikeda (20)

PDF
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
Daisuke Ikeda
 
PDF
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Daisuke Ikeda
 
PDF
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
 
PPTX
OSC2019 LT 運用レコメンドプラットフォーム開発におけるマイクロサービス構成の実現
Daisuke Ikeda
 
PDF
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Daisuke Ikeda
 
PDF
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
Daisuke Ikeda
 
PDF
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
Daisuke Ikeda
 
PDF
Jtf2018 自律的運用に向けた第一歩
Daisuke Ikeda
 
PDF
保守運用現場の課題共有しませんか?-OSC2018LT-
Daisuke Ikeda
 
PDF
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Daisuke Ikeda
 
PDF
AWS Ops系サービスが更に便利になる中、それでもなおZabbixとセットで考えたほうが良いのか?
Daisuke Ikeda
 
PDF
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
Daisuke Ikeda
 
PDF
Tech circle bot x zabbix オペレータbot lt
Daisuke Ikeda
 
PDF
インフラ運用管理ツールとGolang OSS運用管理勉強会LT
Daisuke Ikeda
 
PDF
Zabbix超入門
Daisuke Ikeda
 
PDF
Serverspecの活用tips紹介
Daisuke Ikeda
 
PDF
Osc2016 tokyo sprint-jobschedulerを活用したoperations as codeの世界
Daisuke Ikeda
 
PDF
Job schedulerを活用したoperations as codeの世界
Daisuke Ikeda
 
PDF
Zabbix conference2015 daisukeikeda
Daisuke Ikeda
 
PDF
第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介
Daisuke Ikeda
 
AIOpsで実現する効率化 OSC 2022 Online Spring TIS
Daisuke Ikeda
 
Osc 2021 fall_tis_変化に強いチーム育成のための取り組み紹介
Daisuke Ikeda
 
OSC 2020 Fukuoka IT運用自動化を支援する「運用レコメンドプラットフォーム」実現の舞台裏
Daisuke Ikeda
 
OSC2019 LT 運用レコメンドプラットフォーム開発におけるマイクロサービス構成の実現
Daisuke Ikeda
 
Zabbixを徹底活用してみよう ~4.2の最新情報もご紹介~
Daisuke Ikeda
 
2019/4/18 Zabbix勉強会 徹底活用本の改訂の話
Daisuke Ikeda
 
OSC2018Tokyo/Fall 自律的運用に向けた第一歩(OpsBear取り組み紹介)
Daisuke Ikeda
 
Jtf2018 自律的運用に向けた第一歩
Daisuke Ikeda
 
保守運用現場の課題共有しませんか?-OSC2018LT-
Daisuke Ikeda
 
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Daisuke Ikeda
 
AWS Ops系サービスが更に便利になる中、それでもなおZabbixとセットで考えたほうが良いのか?
Daisuke Ikeda
 
JobScheduler ユーザカンファレンス 2016 東京日産コンピュータシステム様 事例紹介
Daisuke Ikeda
 
Tech circle bot x zabbix オペレータbot lt
Daisuke Ikeda
 
インフラ運用管理ツールとGolang OSS運用管理勉強会LT
Daisuke Ikeda
 
Zabbix超入門
Daisuke Ikeda
 
Serverspecの活用tips紹介
Daisuke Ikeda
 
Osc2016 tokyo sprint-jobschedulerを活用したoperations as codeの世界
Daisuke Ikeda
 
Job schedulerを活用したoperations as codeの世界
Daisuke Ikeda
 
Zabbix conference2015 daisukeikeda
Daisuke Ikeda
 
第8回oss運用管理勉強会 Zabbix入門&Zabbix3.0先取り紹介
Daisuke Ikeda
 

社内向けTech Talk資料~Fluentdの基本紹介~

  • 1. fluentd ~log collector tool~ Teck-Talk TIS Daisuke Ikeda
  • 2. What's fluentd? Fluentd is an event collector system. It is a generalized version of syslogd, which handles JSON objects for its log messages.※ ・イベントログ収集ツール ・JSONオブジェクトとしてログデータを管理可能 ・Ruby実装のOSS ※https://github.com/fluent/fluentd
  • 3. Architecture of fluentd 3段階構成 Input Buffer Output ・file ・syslog ・memory ・AmazonS3 ・httpリクエスト ・file ・DB ・Zabbix ・file などなど などなど
  • 4. Install fluentd gemパッケージとして提供(Ruby1.9.2以上必須) # gem install fluentd Successfully installed msgpack-0.4.7 Successfully installed yajl-ruby-1.1.0 Successfully installed iobuffer-1.1.2 Successfully installed cool.io-1.1.0 Successfully installed http_parser.rb-0.5.3 Successfully installed fluentd-0.10.22 ソースコードからもインストール可 td-agentというパッケージからもインストール可 ログを送信する側、受信する側両者にインストール
  • 5. Configure fluentd 設定ファイルの生成 # fluentd --setup /etc/fluent # ls /etc/fluent/ fluent.conf plugin 設定(fluent.conf) source matchの2つを定義 ## built-in TCP input ## match tag=debug.** and dump to ## $ echo <json> | fluent-cat <tag> console <source> <match debug.**> type forward type stdout </source> </match> sourceから取得した内容を match定義のtagに一致したものをmatchの中身の定義に応じてOutput
  • 6. fluent-cat→output log fluent-catを使って試しにfluentdに出力 ## built-in TCP input <match debug.**> ## $ echo <json> | fluent-cat <tag> type file <source> path /home/ike-dai/log/fluentd.log type forward </match> </source> fluentd起動 # fluentd -c /etc/fluent/fluent.conf fluent-catでログ送付 # echo '{"test":12345}' | fluent-cat debug.test1 $ less log/fluentd.log.20120519.b4c06414d3dc93f8c 2012-05-19T22:59:45+09:00 debug.test1 {"test":12345}
  • 7. Plugin of fluentd fluent-logger (0.4.3) fluent-plugin-cassandra (0.0.2) fluent-plugin-couch (0.5.0) fluent-plugin-dstat (0.1.0) fluent-plugin-growl (0.0.5) fluent-plugin-ikachan (0.1.0) fluent-plugin-kestrel (0.1.0) 各種OutputやInput用のpluginが多数公開 fluent-plugin-librato-metrics (0.2.3) gem insgtallで導入可能 fluent-plugin-mongo (0.6.7) fluent-plugin-msgpack-rpc (0.2.1) fluent-plugin-mysql (0.0.2) fluent-plugin-parser (0.1.0) fluent-plugin-pghstore (0.1.2) fluent-plugin-redis (0.2.0) fluent-plugin-s3 (0.2.2) fluent-plugin-sns (0.2.1) fluent-plugin-solr (0.1.1) fluent-plugin-splunk (0.0.1.1) fluent-plugin-sqs (0.2.1) fluent-plugin-zabbix (0.0.1)
  • 8. fluent-plugin-zabbix gem install $ gem install fluent-plugin-zabbix 設定ファイル変更 <match stats.**> type zabbix zabbix_server localhost host fluent name_keys fluent1 add_key_prefix test </match>
  • 11. fluent-plugin-mongo gem install $ gem install fluent-plugin-mongo 設定ファイル変更 <match debug.**> type copy <store> type stdout </store> <store> type mongo host localhost database fluent collection fluent </store> </match>
  • 12. fluent-plugin-mongo MongoDBのデータ確認 # mongo localhost:27017 > use fluent switched to db fluent > show collections fluent system.indexes > db.fluent.find() { "_id" : ObjectId("4fbb0dab2663b31095000001"), "mongo" : 1000, "time" : "Tue May 22 2012 12:52:56 GMT+0900 (JST)" }
  • 13. fluent-plugin-mongo apacheのログをmongoに格納 <source> <match apache.access> type tail type mongo format apache host localhost path /var/log/httpd/access_log database log tag apache.access collection logs </source> </match> { "_id" : ObjectId("4fc2f0642663b30bed000001"), "host" : "172.19.xx.xx", "user" : "-", "method" : "POST", "path" : "/zabbix/api_jsonrpc.php/api_jsonrpc.php", "code" : "200", "size" : "68", "referer" : "-", "agent" : "Zbx Ruby CLI", "time" : "Mon May 28 2012 12:25:29 GMT+0900 (JST)" }
  • 14. Sample Application Node.js + mongoose + mongoDB + fluentdで ログを表示・検索できるWebアプリ作ってみた JSONオブジェクトでデータを扱えるので この組み合わせが非常にやりやすい 一括管理して検索機能とかあれば非常 に便利になるのでは
  • 15. Closing ● ログの管理という点で非常に柔軟性がある ● とにかく盛り上がっている ● pluginも大量に出てきている ● Zabbixとうまく組み合わせて可視化してみると楽しいかも ● 使ってみてちょっと気になった点 ○ apache ログをmongoDBに格納する際に少しタイムラグ あり? →Bufferのレイヤの挙動を今後確認予定