ログ解析をあきらめない、あるいはSumoLogicの紹介

4,101 views

Published on

Published in: Technology, Business

ログ解析をあきらめない、あるいはSumoLogicの紹介

  1. 1. ログ処理を「あきらめない」 JAWS−UG 中央線 第0回 荒木靖宏
  2. 2. 自己紹介 名前 • 荒木 靖宏(AWSのSAです) 中央線 • 吉祥寺と武蔵境に7年弱 ID • Twitter: ar1 • ar@debian.org 好きなAWSサービス • Amazon Virtual Private Cloud • AWS Direct Connect
  3. 3. ログはダッシュボードで見たい
  4. 4. 4 web server web server web server EC2で生成 S3に集約 EMRで集計 FluentdS3Plugin S3DistCp hiveorstreaming RDSに出力 /main?page=1 /main?page=2 /main?page=1 {“page”:”1”} {“page”:”2”} {“page”:”1”} page1 t 2 page2 t 1 page | count --------------- page1 | 2 page2 | 1
  5. 5. 5 web server web server web server 生成 収集 集計 データの流れ
  6. 6. データがS3にあれば・・・ Elastic MapReduce DynamoDB RedShift 必要に応じて解析クラスタを構築しそこにデータをロード することが可能
  7. 7. 7 web server web server web server EC2で生成 S3に集約 EMRで集計 FluentdS3Plugin S3DistCp hiveorstreaming RDSに出力 /main?page=1 /main?page=2 /main?page=1 {“page”:”1”} {“page”:”2”} {“page”:”1”} page1 t 2 page2 t 1 page | count --------------- page1 | 2 page2 | 1 完成までは試行錯誤と場当たり処理の繰り返 し
  8. 8. 現実的なソリューション http://ja.splunk.com/ http://www.sumologic.com/ SaaS
  9. 9. Sumo Logic
  10. 10. 分析グラフ作成例 ~CloudFrontのログ on S3を材料に~
  11. 11. コレクタを記入すればログが読める _collector=“コレクタ名” “LogReduce”ボタンを押すと 集計ログ表示(次のスライ ド)
  12. 12. 集計ログ 642回似たログが集計され た
  13. 13. SIN2に届いたログだけを表示させる
  14. 14. MB per Minute | parse "t*t*t*t*t*t*t*.*t*t*t" as ts, edge_loc, bytes, ip, method, host, uri_stem, filetype, status, referer | timeslice 1m | sum(bytes) as volume by _timeslice | volume/1024/1024 as volume | sort by + _timeslice | fields volume, _timeslice
  15. 15. ファイルタイプ別ダウンロード割合 | parse "t*t*t*t*t*t*t*.*t*t*t*/*%*t*" as ts, edge_loc, bytes, ip, method, host, uri_stem, filetype, status, referer, user_agent, ver,throwaway, uri_query | sum(bytes) as size_mb by filetype | size_mb/1024/1024 as size_mb | sort by size_mb | limit 10
  16. 16. ファイルタイプ別毎分転送サイズ | parse "t*t*t*t*t*t*t*.*t*t*t*/*%*t*" as ts, edge_loc, bytes, ip, method, host, uri_stem, filetype, status, referer, user_agent, ver,throwaway, uri_query | timeslice 1m | sum(bytes) as size by filetype, _timeslice | transpose row _timeslice column filetype as js, css, png, gif, ico, html, jpg, xml
  17. 17. トップヒット数 _sourcecategory=streaming !connect !disconnect | parse "t*t*t*t*t*t*t*t*t*t*t*t*%20*t*t*t*t*" as ts, edgeloc, ip, event, bytes, status, clientid, uri_stem, uri_query, referrer, page_url, user_agent, ua_version, sname, sname_query, file_ext, sid | count (*) as hits by sname | sort by hits
  18. 18. 200と304以外のステータスコード可視化 * !200 !304 | parse regex "t(?<status>ddd?)th" | timeslice 5m | count by _timeslice, status | transpose row _timeslice column status
  19. 19. エッジ毎のヒット数 | parse "t*t*t" as ts, edge_loc | count (*) as hits by edge_loc | sort by hits
  20. 20. 200 vs それ以外 | parse regex "t(?<status>ddd?)th" | timeslice 1m | if(status = "200", 1,0) as statGood | if(status <> "200", 1,0) as statOther | sum(statGood) as good, sum(statOther) as bad by _timeslice | sort by + _timeslice
  21. 21. 22 web server web server web server EC2で生成 S3に集約 EMRで集計 FluentdS3Plugin S3DistCp hiveorstreaming RDSに出力 /main?page=1 /main?page=2 /main?page=1 {“page”:”1”} {“page”:”2”} {“page”:”1”} page1 t 2 page2 t 1 page | count --------------- page1 | 2 page2 | 1 ログ収集、解析 をあきらめない 完成までは試行錯誤と場当たり処理の繰り返 し

×