O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

FluentdとRedshiftの素敵な関係

5.129 visualizações

Publicada em

Publicada em: Tecnologia
  • Finally found a service provider which actually supplies an essay with an engaging introduction leading to the main body of the exposition Here is the site ⇒⇒⇒WRITE-MY-PAPER.net ⇐⇐⇐
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Sex in your area is here: ♥♥♥ http://bit.ly/2Q98JRS ♥♥♥
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/2Q98JRS ❶❶❶
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui

FluentdとRedshiftの素敵な関係

  1. 1. FluentdとRedshiftの 素敵な関係 第18回 AWS User Group - Japan 東京勉強会 @just_do_neet
  2. 2. 第18回 AWS User Group - Japan 東京勉強会 Redshiftは便利 •他の登壇者の方々が熱く語られていると想います ので割愛...... •とはいえ不満点もある •データをいかにS3/Redshiftまで運ぶか •大量のデータを一括登録すると時間がかかる •かといって細切れだと面倒 •自前でコントロールしようとすると手間 2
  3. 3. 第18回 AWS User Group - Japan 東京勉強会 Fluentd 3
  4. 4. 第18回 AWS User Group - Japan 東京勉強会 Fluentd •OSSのlog collector •導入のし易さ、性能、信頼性、拡張性++ •豊富なplugin •fluent-plugin-s3 •fluent-plugin-redshift 4
  5. 5. 第18回 AWS User Group - Japan 東京勉強会 fluent-plugin-redshift 5 •https://github.com/hapyrus/fluent-plugin-redshift/ •Redshiftにデータを登録できるFluentd plugin •CSV/TSV/JSONなどに対応 •Redshiftへのデータ反映のタイミングを調整可能 (buffer_chunk_limit / flush_interval) •chunk単位でS3にデータ保存→copyコマンドでRedshift に反映
  6. 6. 第18回 AWS User Group - Japan 東京勉強会 fluent-plugin-redshift 6 •https://github.com/hapyrus/fluent-plugin-redshift/ •Fluentdを介してRedshiftにデータを登録できる plugin •CSV/TSV/JSONなどに対応 •Redshiftへのデータ反映のタイミングを調整可能 (buffer_chunk_limit / flush_interval) •chunk単位でS3にデータ保存→copyコマンドで Redshiftに反映 <match  my.tag>        type  redshift        #  s3  (for  copying  data  to  redshift)        aws_key_id  YOUR_AWS_KEY_ID        aws_sec_key  YOUR_AWS_SECRET_KEY        s3_bucket  YOUR_S3_BUCKET        s3_endpoint  YOUR_S3_BUCKET_END_POINT        path  YOUR_S3_PATH        timestamp_key_format  year=%Y/month=%m/day=%d/hour=%H/%Y%m%d-­‐%H%M        #  redshift        redshift_host  YOUR_AMAZON_REDSHIFT_CLUSTER_END_POINT        redshift_port  YOUR_AMAZON_REDSHIFT_CLUSTER_PORT        redshift_dbname  YOUR_AMAZON_REDSHIFT_CLUSTER_DATABASE_NAME        redshift_user  YOUR_AMAZON_REDSHIFT_CLUSTER_USER_NAME        redshift_password  YOUR_AMAZON_REDSHIFT_CLUSTER_PASSWORD        redshift_schemaname  YOUR_AMAZON_REDSHIFT_CLUSTER_TARGET_SCHEMA_NAME        redshift_tablename  YOUR_AMAZON_REDSHIFT_CLUSTER_TARGET_TABLE_NAME        file_type  [tsv|csv|json|msgpack]        #  buffer        buffer_type  file        buffer_path  /var/log/fluent/redshift        flush_interval  15m        buffer_chunk_limit  1g </match> redshift plugin 設定例
  7. 7. 第18回 AWS User Group - Japan 東京勉強会 例1:nginxのログ •nginxのアクセスログをFluentdを介してRedshift に保存 •in_tail(ファイル読み込み) → out_redshift 7
  8. 8. 第18回 AWS User Group - Japan 東京勉強会 例1:nginxのログ •nginxのアクセスログをFluentdを介してRedshift に保存 •in_tail(ファイル読み込み) → out_redshift 8    log_format    ltsv    'time:$time_localt'                                        'host:$remote_addrt'                                        'req:$requestt'                                        'status:$statust'                                        'size:$body_bytes_sentt'                                        'referer:$http_referert'                                        'ua:$http_user_agentt'; time:02/Oct/2013:20:32:31  +0900        host:xxx.xxx.xxx.xxx        req:GET  /musicians/ famous/  HTTP/1.1        status:200        size:2172        referer:http://www.sada.co.jp/ index.html        ua:Mozilla/5.0  (iPhone;  CPU  iPhone  OS  7_0_2  like  Mac  OS  X)   AppleWebKit/537.51.1  (KHTML,  like  Gecko)  Version/7.0  Mobile/11A501  Safari/ 9537.53 nginxのログフォー マット
  9. 9. 第18回 AWS User Group - Japan 東京勉強会 例1:nginxのログ •nginxのアクセスログをFluentdを介してRedshift に保存 •in_tail(ファイル読み込み) → out_redshift 9 #  Redshift  DDL create  table  access_log(        time  varchar(255),        host  varchar(255),        req  varchar(255),        status  integer,        size  integer,        referer  varchar(255),        ua  varchar(255)   ); Redshift上の テーブル定義
  10. 10. 第18回 AWS User Group - Japan 東京勉強会 例1:nginxのログ •nginxのアクセスログをFluentdを介してRedshift に保存 •in_tail(ファイル読み込み) → out_redshift 10 #  from  access_log <source>        type  tail        tag  nginx.access        format  ltsv        path  /var/log/nginx/access.log        pos_file  /var/log/fluentd/nginx_access.log.pos </source> #  to  Redshift   <match  nginx.access>        type  jsonbucket        out_tag  redshift.nginx.access        json_key  log </match> <match  redshift.nginx.access>        type  redshift        #  s3  (for  copying  data  to  redshift)        (snip.)        #  redshift        (snip.)        redshift_tablename  access_log        file_type  json        #  buffer        (snip.) </match> Fluentdの設定 in_tail out_redshift
  11. 11. 第18回 AWS User Group - Japan 東京勉強会 例1:nginxのログ •nginxのアクセスログをFluentdを介してRedshift に保存 •in_tail(ファイル読み込み) → out_redshift 11 #Fluentd  log_file 2013-­‐10-­‐04  20:33:16  +0900  [info]:  completed  copying  to  redshift.  s3_uri=s3:// xxxxxx/redshift/access_log/year=2013/month=10/day=04/ hour=20/20131004-­‐2033_01.gz Fluentdのlog Redshiftへの書き込 み成功時に出力
  12. 12. 第18回 AWS User Group - Japan 東京勉強会 例1:nginxのログ •nginxのアクセスログをFluentdを介してRedshift に保存 •in_tail(ファイル読み込み) → out_redshift 12 redshift=#  select  *  from  access_log  limit  1;            time              |                  host              |                  req              |                  status               |                  size              |                  referer              |                  ua              | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  04/Oct/2013:20:32:31  +0900  |  xxx.xxx.xxx.xxx  |  GET  /musicians/famous/  HTTP/ 1.1  |  200  |  2172  |  http://www.sada.co.jp/index.html  |  Mozilla/5.0  (iPhone;  CPU   iPhone  OS  7_0_2  like  Mac  OS  X)  AppleWebKit/537.51.1  (KHTML,  like  Gecko)   Version/7.0  Mobile/11A501  Safari/9537.53 Redshiftのテーブルの 中身
  13. 13. 第18回 AWS User Group - Japan 東京勉強会 例2:地域情報の付与 •元のデータはそのまま、Fluentd内でデータを加 工してRedshiftに保存したい •fluent-plugin-record-modifier •fluent-plugin-time_parser •fluent-plugin-reassemble •fluent-plugin-geoip 13
  14. 14. 第18回 AWS User Group - Japan 東京勉強会 例2:地域情報の付与 •https://github.com/y-ken/fluent-plugin-geoip •MaxMind社提供のgeoipデータベースを用いて、 IPアドレスから地域情報(緯度・経度・都市名) を取得しデータに付与 •データベースは有償・無償ともに使用可 14
  15. 15. 第18回 AWS User Group - Japan 東京勉強会 例2:地域情報の付与 •https://github.com/y-ken/fluent-plugin-geoip •MaxMind社提供のgeoipデータベースを用いて、 IPアドレスから地域情報(緯度・経度・都市名) を取得しデータに付与 •データベースは有償・無償ともに使用可 15 #  Redshift  DDL create  table  access_log(        time  varchar(255),        host  varchar(255),        req  varchar(255),        status  integer,        size  integer,        referer  varchar(255),        ua  varchar(255),        city  varchar(100),        latitude  real,        longitude  real ); Redshift上の テーブル定義 (地域情報を拡張)
  16. 16. 第18回 AWS User Group - Japan 東京勉強会 例2:地域情報の付与 •https://github.com/y-ken/fluent-plugin-geoip •MaxMind社提供のgeoipデータベースを用いて、 IPアドレスから地域情報(緯度・経度・都市名) を取得しデータに付与 •データベースは有償・無償ともに使用可 16 #  add  location  info <match  nginx.access>        type  geoip        geoip_lookup_key  host        enable_key_city  city        enable_key_latitude  latitude        enable_key_longitude  longitude        add_tag_prefix  geoip. </match> Fluentdの設定 out_geoip
  17. 17. 第18回 AWS User Group - Japan 東京勉強会 例2:地域情報の付与 •https://github.com/y-ken/fluent-plugin-geoip •MaxMind社提供のgeoipデータベースを用いて、 IPアドレスから地域情報(緯度・経度・都市名) を取得しデータに付与 •データベースは有償・無償ともに使用可 17 redshift=#  select  *  from  get_background_links  limit  1;            time              |                  host              |                  req              |                  status               |                  size              |                  referer              |                  ua              |                  city               |                  latitude              |                  longitude              | -­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐ +-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+  04/Oct/2013:20:32:31  +0900  |  xxx.xxx.xxx.xxx  |  GET  /musicians/famous/  HTTP/ 1.1  |  200  |  2172  |  http://www.sada.co.jp/index.html  |  Mozilla/5.0  (iPhone;  CPU   iPhone  OS  7_0_2  like  Mac  OS  X)  AppleWebKit/537.51.1  (KHTML,  like  Gecko)   Version/7.0  Mobile/11A501  Safari/9537.53  |  Osaki  |    38.5887  |      140.973 Redshiftのテーブルの 中身(地域情報を拡張)
  18. 18. 第18回 AWS User Group - Japan 東京勉強会 例2:地域情報の付与 •https://github.com/y-ken/fluent-plugin-geoip •MaxMind社提供のgeoipデータベースを用いて、 IPアドレスから地域情報(緯度・経度・都市名) を取得しデータに付与 •データベースは有償・無償ともに使用可 18 tableau で可視化
  19. 19. まとめ
  20. 20. 第18回 AWS User Group - Japan 東京勉強会 •Fluentd x Redshiftについて。 •Fluentdを使うとデータの登録や加工が思いのまま です。 •便利なので使いましょう。 •環境構築が面倒な方向けには「flydata」という便 利なサービスがあるらしいですよ まとめ 20
  21. 21. Thanks for your listening :)

×