SlideShare a Scribd company logo
1 of 43
Download to read offline
page 
9th 
Sep, 2014 
! 
Fluentdのお勧めシステム構成パターン 
1
page 
1. 自己紹介 
2
page 4
page 
1. 自己紹介 
2. はじめに 
3. Fluentdのある世界 
4. Fluentd構成パターン 
5. まとめ 
本日の流れ 
5
page 
2. はじめに 
6
page 
はじめに 
7 
第2特集の執筆を担当 
「ログ収集ミドルウェアFluentd徹底攻略」 
! 
第1章:ログ収集の目的とミドルウェアの特徴 
第2章:はじめてみようFluentd 
第3章:Fluentd設計のコツ 
第4章:Fluentd運用ノウハウ 
第5章:逆引きFluentdプラグイン
page 
はじめに 
8 
入門記事はネット上に多くあれど、まとまった解説が無い問題を解決 
Fluentd運用・監視の方法 
安定稼働するためのFluentd構成 
逆引きFluentdプラグイン集 
約300に及ぶプラグインのソースコードを追った上で分類
page 
3. Fluentdのある世界 
9
page 
Fluentdとは 
10
page 
Fluentdとは 
11
page 
Fluentdとは 
12 
ログ/メッセージの集約を賢く実現するプロダクト 
Rubyで書かれたミドルウェア 
依存ミドルウェア無しで動く、小さなフットプリント 
再送処理など、ネットワーク周りの例外処理を任せられる 
豊富なプラグインにより様々な要件の集約に対応できる 
プラグインによる容易な入力/フィルタ/出力機能の拡張 
Rubyを用いたプラグイン記述のハードルはとても低い 
使い慣れた言語でデータ出力/保存を伴うフィルタ処理も書ける 
標準入力で外部プログラムを実行する“exec_filter”を利用する
page 
Fluentdとは 
13 
ログ収集コストの最小化 
ログ収集を行う定期バッチはFluentdに置き換えると保守が楽になる 
ファイルのローテーションにも対応するtailプラグインを用ると、 
手軽にログの収集を準リアルタイム化できる 
レインテンシの改善・帯域バーストの緩和という効果もある
page 
Fluentdの導入前後 
14
page 
Fluentdの導入前後 
15 
導入前 
logディレクトリを踏み台サーバにNFSマウントし、各エンジニアが編 
み出した秘伝のワンライナーでtailコマンド出力をフィルタリングする 
踏み台サーバのLoad Averageが常時数十越えのため、非常に重たい 
意図せぬファイルロックが残り、本番WEBサーバのログローテートに 
失敗することもある 
本番WEBサーバのNetwork I/O・Disk I/Oが平日勤務中のみ異様に多い 
非エンジニアによるログ集計を行うためのハードルが高い
page 
Fluentdの導入前後 
16 
導入後 
エンジニアの数にスケールしたLoad Averageではなくなる 
集約ログを踏み台サーバへファイル出力することで、 
tailコマンドという互換性を保ちながらスケールする仕組みを実現 
さらに踏み台サーバのファイルバッファに載るため処理が高速化 
NFSを使わないため本番WEBサーバのNetwork I/O・Disk I/Oが激減 
構造化されたLTSV形式で出力することで、 
awkを用いた高機能なログ調査や分析が出来るようになる 
集約ログをTreasureData(Hadoop)に格納することで、SQLを用いた 
集計が実現し、非エンジニアによる分析や施策が打てるようになる
page 
Fluentdの基本的な使い方 
17
page 
Fluentdの基本的な使い方 
18 
基本的な使い方 
ログ/メッセージの集約と保存 
ネットワーク周りで手間の掛かるリトライ実装を任せられる 
! 
利用例 
アプリログ、アクセスログをFluentdに流し、集約して保存する 
ファイルやDBといった、複数データストアへの同時保存にも最適
page 
Fluentd導入後に実現するログ活用 
19
page 
Fluentd導入後に実現するログ活用 
20 
Fluentd導入による効果 
ログ/メッセージ収集の実装や運用保守の手間が激減する 
準リアルタイムに収集されたログデータを活用できる 
新鮮なデータを用いたストリーミングデータ処理が実現できる 
新鮮なログ/メッセージの可視化が行えるデータストアが作れる
page 
Fluentd導入後に実現するログ活用 
21 
利用例 
Norikraを用いて単位時間毎にSQL集計した結果を収集する 
ダッシュボードアプリに収集データをグラフ等を用いて可視化する 
リアルタイム分析によるログの活用 
時系列解析によるインシデントの早期予測 
不達メールアドレスのクリーニング 
不正ユーザ抽出
page 
Fluentdが適さない使い方 
22
page 
Fluentdが適さない使い方 
23 
QoSの最高レベル“Exactly Once”を必要とするデータ収集 
FluentdはAt Most Onceを採用している 
メッセージを確実に1回だけ配信するという、 
厳密なトランザクション処理を求める要件には不向き 
例)取りこぼしが絶対に許されない課金データ 
! 
CPUコア1つでは処理しきれない負荷の掛かるフィルタ処理 
複数コア利用や分散処理を行うためのFluentdクラスタ構成が必要
page 
Fluentdが適さない使い方 
24 
Fluentdのサービス再起動を伴う設定変更が日常的に発生する使い方 
日々変化するビジネスロジックをプラグイン設定に織り込まない 
Fluentdは基本的に変更のないシンプルな処理のみを担うと良い 
扱いやすい形式で集約する所までをFluentdが担うと良い 
インフラ層とアプリ層の責任範囲を明確化するためにもそうすべき
page 
Fluentdが適さない使い方 
25 
メトリクス収集を超えた、死活監視システムとしての利用 
複雑になるため、NagiosやZabbixの得意とすることは任せるべき 
現実的にはサービスのモニタリングデータ収集に留めてファイル出力 
し、閾値やアラート通知部分は一般の監視システムに任せるべき
page 
4. Fluentd構成パターン 
26
page 
Fluentdのシングル構成 
27
page 
構成パターン(シングル構成) 
28 
シングル構成 
任意のソースからデータを集めた後に適宜フィルタ加工を行い、 
1つ以上のアウトプット先に保存する用途 
ユースケース 
アプリ等からのメッセージをバッファに蓄えて即座に応答を返し保存 
定期的にポーリングすることで収集したデータを保存する 
APIで収集できるTwitterやAWSなどのログ/メッセージ収集 
製造機械や温度センサーデータの収集
page 
Fluentdクラスタの汎用構成 
29 
日々の変更がある/負荷の掛かるような加工や 
集計を行わない場合は、Aggregatorから各 
種データ保存先に入れる構成が一般的です。
page 
構成パターン(汎用構成) 
30 
汎用構成 
複数のFluentdからのログ/メッセージを集約する場合に、forward 
プラグインを用いて一度集約し、適切な保存先へ仕分ける構成 
ユースケース 
複数サーバのアクセスログなどを収集・集約しバッファした後に適宜 
フィルタ加工を行い、1つ以上のアウトプット先に保存する 
フィルタ加工の例 
GeoIPを用いてIPアドレスから位置情報を付与する 
別ファイルとして保存するために、サービス毎にタグを分ける 
elasticsearch + Kibanaを組み合わせたダッシュボードを構築する
page 
Fluentdクラスタの応用構成 
31 
負荷や用途に応じてサーバを分けると、保守もしやすくなります。 
Aggregatorの後ろをまとめて1台にする構成も良く取られます。
page 
構成パターン(応用構成) 
32 
応用構成 
演算コストの掛かるフィルタ処理など行うケースには、相乗りせずに 
Aggregatorノードの先に専用のFluentdインスタンスを構成する 
応答性能の安定化や障害リスクを下げる観点で分けるケースもある 
基本的に設定変更が発生しないAggregatorノードと比較して、 
Processor/Watcherノードの方が設定変更が多い傾向がある 
ユースケース 
フィルタ系プラグインやNorikraを用いた時系列データ集計 
Processor/Watcherノードにてファイル出力を行い、監視ミドルウェア 
(Nagiosなど)を用いて、監視のファイル文字列監視・通知を行う
page 
安定運用する上で意識したいこと 
33 
各ノードは単一責任とすることで、障害に強い構成とする 
Fowarder:転送元ノード 
収集したログ/メッセージをAggregatorへ転送する 
Aggregator:集約ノード 
Forwarderからのイベントの集約を行う 
フProcessor:ィルタ処理ノード 
イベントの集計や加工を行う 
Watcher:イベント内容に応じた処理や監視連携、通知を行う 
末端のインスタンスからはログをAggregatorへforwardするだけにする 
ことで、最終保存先を記述する設定ファイルの配布対象サーバが減る 
これらは単なる用途の呼称のため、それ専用の設定がある訳では無い
page 
5. まとめ 
34
page 
まとめ 
35 
まずは小さくFluentdを導入してみましょう 
依存ミドルウェアの無いパッケージインストールで始められます 
syslog等を用いた既存収集システムがあっても、並行稼働できます 
ログ/メッセージ管理のDevOpsをFluentdで実現できます 
固い運用をするには向き不向きがあるので、適切な使い方をしよう 
遊び用途なら、手軽なストリーミングデータプロセッサとして 
Fluentdを活用して使い倒してみましょう! 
例:Twitterのタイムラインから特定画像を取得し、Tumblrへ投稿する 
https://speakerdeck.com/bash0c7/fluentd-in-my-sweet-home
page 
宣伝 
36 
より詳細な内容はこの書籍にまとめております。 
PDF版はGihyo Digital Publishingにて販売中! 
サーバ/インフラエンジニア養成読本 
ログ収集~可視化編 [現場主導のデータ分析環 
境を構築!] (Software Design plus) 
出版社/メーカー: 技術評論社 
発売日: 2014/08/08 
定価: 本体1,980円+税
お知らせ
page 
Thanks! 
43 
ご清聴ありがとうございました。

More Related Content

What's hot

[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティスAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAmazon Web Services Japan
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)NTT DATA Technology & Innovation
 
Datadog による Container の監視について
Datadog による Container の監視についてDatadog による Container の監視について
Datadog による Container の監視についてMasaya Aoyama
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線Motonori Shindo
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかShogo Wakayama
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Yuki Morishita
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Ken SASAKI
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタSatoyuki Tsukano
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
Kongの概要と導入事例
Kongの概要と導入事例Kongの概要と導入事例
Kongの概要と導入事例briscola-tokyo
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Amazon Web Services Japan
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NETterurou
 

What's hot (20)

[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
 
AWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormationAWS Black Belt Online Seminar 2016 AWS CloudFormation
AWS Black Belt Online Seminar 2016 AWS CloudFormation
 
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
 
Datadog による Container の監視について
Datadog による Container の監視についてDatadog による Container の監視について
Datadog による Container の監視について
 
AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策AWS BlackBelt AWS上でのDDoS対策
AWS BlackBelt AWS上でのDDoS対策
 
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
 
Paxos
PaxosPaxos
Paxos
 
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するかSQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
 
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタはじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
Kongの概要と導入事例
Kongの概要と導入事例Kongの概要と導入事例
Kongの概要と導入事例
 
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
 
MQTTとAMQPと.NET
MQTTとAMQPと.NETMQTTとAMQPと.NET
MQTTとAMQPと.NET
 

Similar to Fluentdのお勧めシステム構成パターン

Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Uemura Yuichi
 
トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編Kentaro Yoshida
 
Hinemosによるクラウド運用管理の最新情報
Hinemosによるクラウド運用管理の最新情報Hinemosによるクラウド運用管理の最新情報
Hinemosによるクラウド運用管理の最新情報Hinemos
 
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---Open Source Software Association of Japan
 
クラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えようクラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えようNTT Communications Technology Development
 
運用効率化・運用自動化を実現するHinemosのご紹介
運用効率化・運用自動化を実現するHinemosのご紹介運用効率化・運用自動化を実現するHinemosのご紹介
運用効率化・運用自動化を実現するHinemosのご紹介Hinemos
 
オープニング
オープニングオープニング
オープニングkonekto
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムFlumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムSatoshi Iijima
 
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】Masahito Zembutsu
 
Fluentd1.2 & Fluent Bit
Fluentd1.2 & Fluent BitFluentd1.2 & Fluent Bit
Fluentd1.2 & Fluent BitSeiya Mizuno
 
SubversionとSugarsync
SubversionとSugarsyncSubversionとSugarsync
SubversionとSugarsyncHidenori Goto
 
5分でわかるphalcon php
5分でわかるphalcon php5分でわかるphalcon php
5分でわかるphalcon phpYusaku Kinoshita
 
5分でわかるPhalconPHP
5分でわかるPhalconPHP5分でわかるPhalconPHP
5分でわかるPhalconPHPShohei Tai
 
Continuous delivery chapter13
Continuous delivery chapter13Continuous delivery chapter13
Continuous delivery chapter13favril1
 
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』Naoya Hashimoto
 

Similar to Fluentdのお勧めシステム構成パターン (16)

Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
 
Citrix eco new
Citrix eco newCitrix eco new
Citrix eco new
 
トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編トレジャーデータ 導入体験記 リブセンス編
トレジャーデータ 導入体験記 リブセンス編
 
Hinemosによるクラウド運用管理の最新情報
Hinemosによるクラウド運用管理の最新情報Hinemosによるクラウド運用管理の最新情報
Hinemosによるクラウド運用管理の最新情報
 
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---オープンソース統合運用管理ツール『Hinemos』  --- その利便性及びインシデント管理について ---
オープンソース統合運用管理ツール『Hinemos』 --- その利便性及びインシデント管理について ---
 
クラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えようクラウドを最大限活用するinfrastructure as codeを考えよう
クラウドを最大限活用するinfrastructure as codeを考えよう
 
運用効率化・運用自動化を実現するHinemosのご紹介
運用効率化・運用自動化を実現するHinemosのご紹介運用効率化・運用自動化を実現するHinemosのご紹介
運用効率化・運用自動化を実現するHinemosのご紹介
 
オープニング
オープニングオープニング
オープニング
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムFlumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システム
 
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
 
Fluentd1.2 & Fluent Bit
Fluentd1.2 & Fluent BitFluentd1.2 & Fluent Bit
Fluentd1.2 & Fluent Bit
 
SubversionとSugarsync
SubversionとSugarsyncSubversionとSugarsync
SubversionとSugarsync
 
5分でわかるphalcon php
5分でわかるphalcon php5分でわかるphalcon php
5分でわかるphalcon php
 
5分でわかるPhalconPHP
5分でわかるPhalconPHP5分でわかるPhalconPHP
5分でわかるPhalconPHP
 
Continuous delivery chapter13
Continuous delivery chapter13Continuous delivery chapter13
Continuous delivery chapter13
 
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
 

More from Kentaro Yoshida

Improve data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDFImprove data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDFKentaro Yoshida
 
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方Kentaro Yoshida
 
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Kentaro Yoshida
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスKentaro Yoshida
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話Kentaro Yoshida
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"Kentaro Yoshida
 
MySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearchMySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearchKentaro Yoshida
 
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasualFluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasualKentaro Yoshida
 
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記Kentaro Yoshida
 
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウKentaro Yoshida
 
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記Kentaro Yoshida
 
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」Kentaro Yoshida
 

More from Kentaro Yoshida (12)

Improve data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDFImprove data engineering work with Digdag and Presto UDF
Improve data engineering work with Digdag and Presto UDF
 
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
TREASUREDATAのエコシステムで作るロバストなETLデータ処理基盤の作り方
 
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
Fluentd, Digdag, Embulkを用いたデータ分析基盤の始め方
 
Hivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービスHivemallで始める不動産価格推定サービス
Hivemallで始める不動産価格推定サービス
 
爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話爆速クエリエンジン”Presto”を使いたくなる話
爆速クエリエンジン”Presto”を使いたくなる話
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
 
MySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearchMySQLユーザ視点での小さく始めるElasticsearch
MySQLユーザ視点での小さく始めるElasticsearch
 
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasualFluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
Fluentdベースのミドルウェア"Yamabiko"でMySQLのテーブルをElasticsearchへレプリケートする話 #fluentdcasual
 
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
MySQL 5.6への完全移行を実現したTritonnからMroongaへの移行体験記
 
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
 
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
Tritonn (MySQL5.0.87+Senna)からの mroonga (MySQL5.6) 移行体験記
 
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
MySQL Casual Talks Vol.4 「MySQL-5.6で始める全文検索 〜InnoDB FTS編〜」
 

Recently uploaded

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 

Recently uploaded (9)

モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 

Fluentdのお勧めシステム構成パターン

  • 1. page 9th Sep, 2014 ! Fluentdのお勧めシステム構成パターン 1
  • 3.
  • 5. page 1. 自己紹介 2. はじめに 3. Fluentdのある世界 4. Fluentd構成パターン 5. まとめ 本日の流れ 5
  • 7. page はじめに 7 第2特集の執筆を担当 「ログ収集ミドルウェアFluentd徹底攻略」 ! 第1章:ログ収集の目的とミドルウェアの特徴 第2章:はじめてみようFluentd 第3章:Fluentd設計のコツ 第4章:Fluentd運用ノウハウ 第5章:逆引きFluentdプラグイン
  • 8. page はじめに 8 入門記事はネット上に多くあれど、まとまった解説が無い問題を解決 Fluentd運用・監視の方法 安定稼働するためのFluentd構成 逆引きFluentdプラグイン集 約300に及ぶプラグインのソースコードを追った上で分類
  • 12. page Fluentdとは 12 ログ/メッセージの集約を賢く実現するプロダクト Rubyで書かれたミドルウェア 依存ミドルウェア無しで動く、小さなフットプリント 再送処理など、ネットワーク周りの例外処理を任せられる 豊富なプラグインにより様々な要件の集約に対応できる プラグインによる容易な入力/フィルタ/出力機能の拡張 Rubyを用いたプラグイン記述のハードルはとても低い 使い慣れた言語でデータ出力/保存を伴うフィルタ処理も書ける 標準入力で外部プログラムを実行する“exec_filter”を利用する
  • 13. page Fluentdとは 13 ログ収集コストの最小化 ログ収集を行う定期バッチはFluentdに置き換えると保守が楽になる ファイルのローテーションにも対応するtailプラグインを用ると、 手軽にログの収集を準リアルタイム化できる レインテンシの改善・帯域バーストの緩和という効果もある
  • 15. page Fluentdの導入前後 15 導入前 logディレクトリを踏み台サーバにNFSマウントし、各エンジニアが編 み出した秘伝のワンライナーでtailコマンド出力をフィルタリングする 踏み台サーバのLoad Averageが常時数十越えのため、非常に重たい 意図せぬファイルロックが残り、本番WEBサーバのログローテートに 失敗することもある 本番WEBサーバのNetwork I/O・Disk I/Oが平日勤務中のみ異様に多い 非エンジニアによるログ集計を行うためのハードルが高い
  • 16. page Fluentdの導入前後 16 導入後 エンジニアの数にスケールしたLoad Averageではなくなる 集約ログを踏み台サーバへファイル出力することで、 tailコマンドという互換性を保ちながらスケールする仕組みを実現 さらに踏み台サーバのファイルバッファに載るため処理が高速化 NFSを使わないため本番WEBサーバのNetwork I/O・Disk I/Oが激減 構造化されたLTSV形式で出力することで、 awkを用いた高機能なログ調査や分析が出来るようになる 集約ログをTreasureData(Hadoop)に格納することで、SQLを用いた 集計が実現し、非エンジニアによる分析や施策が打てるようになる
  • 18. page Fluentdの基本的な使い方 18 基本的な使い方 ログ/メッセージの集約と保存 ネットワーク周りで手間の掛かるリトライ実装を任せられる ! 利用例 アプリログ、アクセスログをFluentdに流し、集約して保存する ファイルやDBといった、複数データストアへの同時保存にも最適
  • 20. page Fluentd導入後に実現するログ活用 20 Fluentd導入による効果 ログ/メッセージ収集の実装や運用保守の手間が激減する 準リアルタイムに収集されたログデータを活用できる 新鮮なデータを用いたストリーミングデータ処理が実現できる 新鮮なログ/メッセージの可視化が行えるデータストアが作れる
  • 21. page Fluentd導入後に実現するログ活用 21 利用例 Norikraを用いて単位時間毎にSQL集計した結果を収集する ダッシュボードアプリに収集データをグラフ等を用いて可視化する リアルタイム分析によるログの活用 時系列解析によるインシデントの早期予測 不達メールアドレスのクリーニング 不正ユーザ抽出
  • 23. page Fluentdが適さない使い方 23 QoSの最高レベル“Exactly Once”を必要とするデータ収集 FluentdはAt Most Onceを採用している メッセージを確実に1回だけ配信するという、 厳密なトランザクション処理を求める要件には不向き 例)取りこぼしが絶対に許されない課金データ ! CPUコア1つでは処理しきれない負荷の掛かるフィルタ処理 複数コア利用や分散処理を行うためのFluentdクラスタ構成が必要
  • 24. page Fluentdが適さない使い方 24 Fluentdのサービス再起動を伴う設定変更が日常的に発生する使い方 日々変化するビジネスロジックをプラグイン設定に織り込まない Fluentdは基本的に変更のないシンプルな処理のみを担うと良い 扱いやすい形式で集約する所までをFluentdが担うと良い インフラ層とアプリ層の責任範囲を明確化するためにもそうすべき
  • 25. page Fluentdが適さない使い方 25 メトリクス収集を超えた、死活監視システムとしての利用 複雑になるため、NagiosやZabbixの得意とすることは任せるべき 現実的にはサービスのモニタリングデータ収集に留めてファイル出力 し、閾値やアラート通知部分は一般の監視システムに任せるべき
  • 28. page 構成パターン(シングル構成) 28 シングル構成 任意のソースからデータを集めた後に適宜フィルタ加工を行い、 1つ以上のアウトプット先に保存する用途 ユースケース アプリ等からのメッセージをバッファに蓄えて即座に応答を返し保存 定期的にポーリングすることで収集したデータを保存する APIで収集できるTwitterやAWSなどのログ/メッセージ収集 製造機械や温度センサーデータの収集
  • 29. page Fluentdクラスタの汎用構成 29 日々の変更がある/負荷の掛かるような加工や 集計を行わない場合は、Aggregatorから各 種データ保存先に入れる構成が一般的です。
  • 30. page 構成パターン(汎用構成) 30 汎用構成 複数のFluentdからのログ/メッセージを集約する場合に、forward プラグインを用いて一度集約し、適切な保存先へ仕分ける構成 ユースケース 複数サーバのアクセスログなどを収集・集約しバッファした後に適宜 フィルタ加工を行い、1つ以上のアウトプット先に保存する フィルタ加工の例 GeoIPを用いてIPアドレスから位置情報を付与する 別ファイルとして保存するために、サービス毎にタグを分ける elasticsearch + Kibanaを組み合わせたダッシュボードを構築する
  • 31. page Fluentdクラスタの応用構成 31 負荷や用途に応じてサーバを分けると、保守もしやすくなります。 Aggregatorの後ろをまとめて1台にする構成も良く取られます。
  • 32. page 構成パターン(応用構成) 32 応用構成 演算コストの掛かるフィルタ処理など行うケースには、相乗りせずに Aggregatorノードの先に専用のFluentdインスタンスを構成する 応答性能の安定化や障害リスクを下げる観点で分けるケースもある 基本的に設定変更が発生しないAggregatorノードと比較して、 Processor/Watcherノードの方が設定変更が多い傾向がある ユースケース フィルタ系プラグインやNorikraを用いた時系列データ集計 Processor/Watcherノードにてファイル出力を行い、監視ミドルウェア (Nagiosなど)を用いて、監視のファイル文字列監視・通知を行う
  • 33. page 安定運用する上で意識したいこと 33 各ノードは単一責任とすることで、障害に強い構成とする Fowarder:転送元ノード 収集したログ/メッセージをAggregatorへ転送する Aggregator:集約ノード Forwarderからのイベントの集約を行う フProcessor:ィルタ処理ノード イベントの集計や加工を行う Watcher:イベント内容に応じた処理や監視連携、通知を行う 末端のインスタンスからはログをAggregatorへforwardするだけにする ことで、最終保存先を記述する設定ファイルの配布対象サーバが減る これらは単なる用途の呼称のため、それ専用の設定がある訳では無い
  • 35. page まとめ 35 まずは小さくFluentdを導入してみましょう 依存ミドルウェアの無いパッケージインストールで始められます syslog等を用いた既存収集システムがあっても、並行稼働できます ログ/メッセージ管理のDevOpsをFluentdで実現できます 固い運用をするには向き不向きがあるので、適切な使い方をしよう 遊び用途なら、手軽なストリーミングデータプロセッサとして Fluentdを活用して使い倒してみましょう! 例:Twitterのタイムラインから特定画像を取得し、Tumblrへ投稿する https://speakerdeck.com/bash0c7/fluentd-in-my-sweet-home
  • 36. page 宣伝 36 より詳細な内容はこの書籍にまとめております。 PDF版はGihyo Digital Publishingにて販売中! サーバ/インフラエンジニア養成読本 ログ収集~可視化編 [現場主導のデータ分析環 境を構築!] (Software Design plus) 出版社/メーカー: 技術評論社 発売日: 2014/08/08 定価: 本体1,980円+税
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43. page Thanks! 43 ご清聴ありがとうございました。