fluentd勉強会 (導入編 treasuredata活用)

41
fluentd 勉勉勉 at ipros 勉勉勉 TreasureData 勉勉 勉勉勉勉勉勉勉勉 勉勉勉勉勉勉勉勉勉勉勉 勉勉勉勉 Devopts 向向

Upload: takeuchi-tk

Post on 12-May-2015

2.837 views

Category:

Technology


2 download

DESCRIPTION

Ipros Techmeetup fluentdの外部向け勉強会で使った資料 主にTreasureDataの使い方について記述

TRANSCRIPT

Page 1: Fluentd勉強会 (導入編 TreasureData活用)

fluentd勉強会 at ipros      導入編 TreasureData 活用

株式会社イプロスカイゼンチームリーダー 竹内孝志

Devopts

向け

Page 2: Fluentd勉強会 (導入編 TreasureData活用)

自己紹介竹内 孝志(たけうち たかし)1985 年 12 月 18 日生まれSier で3年間金融系システムの保守・運用現在はイプロスに WEB エンジニアとして勤務主な業務はイプロスサイトの改善と機能拡張アジャイル開発を極めるため修行中Rails でサービスを作ろうと目論んでる趣味はオンラインゲーム土日祝日自宅警備

Page 3: Fluentd勉強会 (導入編 TreasureData活用)

導入編の目的fluentd, td-agent を使ったことがない人が・・・

td-agent と TreasureData を使って・ログの収集ができるようになる・データの集計ができるようになる

Page 4: Fluentd勉強会 (導入編 TreasureData活用)

アジェンダ・ fluentd 、 td-agent 、 TreasureData 概要・ td-agent 、 TreasureData 使い方・イプロスでの TreasureData 活用例・デモ( GoogleDrive と連携)

Page 5: Fluentd勉強会 (導入編 TreasureData活用)

アジェンダ・ fluentd 、 td-agent 、 TreasureData 概要・ td-agent 、 TreasureData 使い方・イプロスでの TreasureData 活用例・デモ( GoogleDrive と連携)

Page 6: Fluentd勉強会 (導入編 TreasureData活用)

fluentd,td-agent 概要fluentd はログを収集し格納するためのログ収集基盤ソフトウェア。td-agent は TreasureData が公開しているfluentd の安定版。これを使えばテキストベースで書きだされているログを構造化された形で処理ができ、運用時にログファイルを grep して確認をしなくて済む。

Page 7: Fluentd勉強会 (導入編 TreasureData活用)

TreasureData 概要TreasureData とはトレジャーデータが提供するクラウドデータウェアハウスサービスのことをいう。正式名称『 Treasure Data Cloud Data Warehousing Service 』。クラウドストレージ上の任意のデータに対するアクセス,および大規模な集計ジョブを走らせることが可能。

Page 8: Fluentd勉強会 (導入編 TreasureData活用)

AP サーバー

TreasureData 構成図TreasureDataデータウェアハウス fluentd

td-agent安定版パッケージ

データを送信するデー

タデー

タデー

管理画面

ログ

ログ

ログ

Page 9: Fluentd勉強会 (導入編 TreasureData活用)

TreasureData の機能td-agent から

管理ツール

クエリー発行 ◯ ◯

スケジュール設定 ◯ ◯

ジョブの履歴 ◯ ◯

データ投入 ◯ ×

ユーザー管理 × ◯

Page 10: Fluentd勉強会 (導入編 TreasureData活用)

題材としてTreasureData を選んだ理由・ td-agent と連携しやすい・ストレージが利用可能・管理画面の機能が豊富・無料で試せる

fluentd の初心者向けのサービス

Page 11: Fluentd勉強会 (導入編 TreasureData活用)

アジェンダ・ fluentd 、 td-agent 、 TreasureData 概要・ td-agent 、 TreasureData 使い方・イプロスでの TreasureData 活用例・デモ( GoogleDrive と連携)

Page 12: Fluentd勉強会 (導入編 TreasureData活用)

td-agent 及びTreasureData の使い方・クライアントから TreasureData へ接続・ td-agent を使ってログを送信・ TreasureData を使った小技

Page 13: Fluentd勉強会 (導入編 TreasureData活用)

クライアントからTreasureData へ接続

ローカルマシン(Mac or Windows)

Toolbelt

TreasureData

データを操作

Page 14: Fluentd勉強会 (導入編 TreasureData活用)

クライアントからTreasureData へ接続・ Toolbelt インストール・ TreasureData へ接続・ TreasureData のオブジェクトを操作

Page 15: Fluentd勉強会 (導入編 TreasureData活用)

Toolbelt インストール公式ページから環境にあったインストーラーを取得し実行する。http://toolbelt.treasure-data.com/

Page 16: Fluentd勉強会 (導入編 TreasureData活用)

TreasureData へ接続

$ td account –f

Enter your Treasure Data credentials.

Email:

※TreasureData の ID とパスワードを入力する。

Page 17: Fluentd勉強会 (導入編 TreasureData活用)

TreasureData の操作

$ td db:create データベース名$ td table:create データベース名テーブル名

データ投入$ td sample:apache apache.json$ td table:import データベース名 テーブル名 --json apache.jsontail -n 1 apache.json {"host":"200.129.205.208","user":"-","method":"GET","path”:"/category/electronics”,"code":200,"referer":"-","size":62, "agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11","time":1334035906}

DB 作成

Page 18: Fluentd勉強会 (導入編 TreasureData活用)

TreasureData の操作データベースの確認$ td tables

データにアクセス$ td query -w –d データベース名 "SELECT v['code'] AS code, COUNT(1) AS cnt FROM テーブル名 GROUP BY v['code']"

Page 19: Fluentd勉強会 (導入編 TreasureData活用)

サーバーからTreasureData へログを送信

サーバー(CentOS)

Td-agent

Apacheログ

アプリログ

TreasureData

ログの送信

Page 20: Fluentd勉強会 (導入編 TreasureData活用)

サーバーからTreasureData へログを送信・ td-agent インストール・ apache のログを送信・自由形式のログを送信

Page 21: Fluentd勉強会 (導入編 TreasureData活用)

td-agent インストール

$ sudo vi /etc/yum.repos.d/td.repo

$ sudo yum install -y td-agent

[treasuredata]name=TreasureDatabaseurl=http://packages.treasure-data.com/redhat/$basearchgpgcheck=0

td.repo

yum コマンドで td-agent をインストール

Page 22: Fluentd勉強会 (導入編 TreasureData活用)

td-agent インストール

$ /etc/init.d/td-agent start

起動

API キー確認$ td account -f$ td apikey:show

Page 23: Fluentd勉強会 (導入編 TreasureData活用)

apache のログ送信

$ vi /etc/td-agent/td-agent.conf

設定ファイルを書き換えて再起動するとログの送信を開始する。

Page 24: Fluentd勉強会 (導入編 TreasureData活用)

apache のログ送信

<match td.*.*> type tdlog apikey XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX auto_create_table buffer_type file buffer_path /var/log/td-agent/buffer/td use_ssl true</match><source> type tail path /var/log/httpd/httpd.access_log pos_file /tmp/httpd.access.log.pos format apache tag td.test.httpd</source>

td-agent.conf

Page 25: Fluentd勉強会 (導入編 TreasureData活用)

自由形式のログを送信

2013-10-22 07:46:37,028 1270859 2013-10-17

2013-10-22 09:03:46,635 1197675 2013-10-19

2013-10-22 12:32:25,593 1189472 2013-10-22

2013-10-22 12:33:05,671 1271888 2013-10-22

2013-10-22 12:38:21,005 1272255 2013-10-22

2013-10-22 12:41:40,961 1021213 2013-10-22

2013-10-22 12:43:46,654 1271174 2013-10-19

2013-10-22 12:44:43,604 1077677 2013-10-22

2013-10-22 12:45:38,035 1272280 2013-10-22

2013-10-22 12:47:23,007 1080238 2013-10-22

2013-10-22 12:47:38,265 1271174 2013-10-19

こんなアクセスログがあったとする。

アクセスログ

Page 26: Fluentd勉強会 (導入編 TreasureData活用)

自由形式のログを送信

<source> type tail path /var/ipros/log/followmailopen.log tag td.applog<%= env_suffix %>.followmailopen format /^(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}) (?<memberid>\S+) (?<senddate>\d{4}-\d{2}-\d{2})/ pos_file /var/log/td-agent/td.applog.followmailopen.pos</source>

td-agent.conf

設定ファイルに送信するログの記述を追加する

Page 27: Fluentd勉強会 (導入編 TreasureData活用)

フォーマットの指定方法format /^(?<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3})

(?<memberid>\S+) (?<senddate>\d{4}-\d{2}-\d{2})/

定型文 各カラムのフォーマット

カラム名 フォーマット

Page 28: Fluentd勉強会 (導入編 TreasureData活用)

TreasureData を使った小技

アプリケーションサーバー

TreasureData

GoogleDrive

ログの送信

集計結果の送信

Page 29: Fluentd勉強会 (導入編 TreasureData活用)

googledrive と連携スケジュール作成時にスプレッドシートを指定する

$ td sched:create [ スケジュール名 ]"0 7 * * *" -t "Asia/Tokyo" -d applog --result ‘gspreadsheet://[ ユーザー名 ]:[ パスワード ]@[ ドメイン名 ]/[ ドライブ名 ]/[ シート名 ]?mode=replace' “SELECT ・・・・・・・・・・・”

※td-agent もしくは toolbelt が入ったマシンからコマンドを実行する。

Page 30: Fluentd勉強会 (導入編 TreasureData活用)

アジェンダ・ fluentd 、 td-agent 、 TreasureData 概要・ td-agent 、 TreasureData 使い方・イプロスでの TreasureData 活用例・デモ( GoogleDrive と連携)

Page 31: Fluentd勉強会 (導入編 TreasureData活用)

イプロスの事例・システム構成・アクセスログ集計・メール開封率集計・電話トラッキングログ収集・導入時に発生した問題

Page 32: Fluentd勉強会 (導入編 TreasureData活用)

システム構成

TreasureData

イプロスサイトAP サーバー

ログの集約サーバーtd-

agenttd-

agent

td-agent

td-agent

td-agent

Page 33: Fluentd勉強会 (導入編 TreasureData活用)

アクセスログの集計

TreasureData

クエリー発行

ログの送信実験的に導入した機能の分析などに利用

Page 34: Fluentd勉強会 (導入編 TreasureData活用)

システムメールの開封率集計

TreasureData

GoogleDriveグラフで可視化

メールを開封ログの送信

集計結果

集計ジョブ

Page 35: Fluentd勉強会 (導入編 TreasureData活用)

電話トラッキングログ収集

TreasureData発信

転送通話履歴の出力

問い合わせ用電話番号

Page 36: Fluentd勉強会 (導入編 TreasureData活用)

導入時に発生した問題

特になし

Page 37: Fluentd勉強会 (導入編 TreasureData活用)

アジェンダ・ fluentd 、 td-agent 、 TreasureData 概要・ td-agent 、 TreasureData 使い方・イプロスでの TreasureData 活用例・デモ( GoogleDrive と連携)

Page 38: Fluentd勉強会 (導入編 TreasureData活用)

デモ

アプリケーションサーバー

TreasureData

GoogleDrive

ログの送信

集計結果の送信

① ログと設定ファイルの確認

② クエリーの発行    +GoogleDrive へ送信

③ クエリーの発行    +GoogleDrive へ送信

④ スケジュールの登録

Page 39: Fluentd勉強会 (導入編 TreasureData活用)

まとめ・ TreasureData はクラウドデータウェアハウスサービス・ td-agent は fluentd の安定版パッケージ・ TreasureData と td-agent を使えばデータを蓄積可能・ TreasureData は外部サービスを連携でき、データの可視化も可能

Page 40: Fluentd勉強会 (導入編 TreasureData活用)

参考文献TreasureData 公式http://www.treasure-data.com/

Page 41: Fluentd勉強会 (導入編 TreasureData活用)

ご清聴ありがとうございました