44
Amazon Elasticsearch Service を利用したAWSのログ活用 1

Amazon Elasticsearch Serviceを利用したAWSのログ活用

  • Upload
    -

  • View
    3.870

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Amazon Elasticsearch Serviceを利用したAWSのログ活用

1

Page 2: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

自己紹介

名前:藤本 真司

所属:クラスメソッド株式会社

やってること:AWSの導入支援、構築

好きなAWSサービス:AWS Lambda

好きなアニメ:のんのんびより(りぴーと)

Page 3: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

月間100万PVの技術系情報サイト Developers.IO

3http://dev.classmethod.jp/

Page 4: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 4

お話すること

• ログの活用って?

• Amazon Elasticsearch Serviceについて

• Amazon Elasticsearch ServiceによるAWSログの可視化・分析(ケーススタディ)

Page 5: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 5

ある日の運用現場

・・・

LB

Web/AP DB

ユーザー

よくあるWEBシステム

遅いなぁ。。

Page 6: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 6

ある日の運用現場

ユーザー

システム管理者

DB担当AP/OS担当NW担当

何か全体的にポータルページが遅いみたいなんだけど

みんな調べて

Page 7: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 7

ある日の運用現場

・・・

LB

Web/AP DB

システム管理者

NW担当 AP/OS担当 DB担当

ログにエラー出力なし レスポンスタイムは悪い SQLのクエリは問題ない

結局原因は・・?

Page 8: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 8

みなさん、

ログを活用していますか?

Page 9: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 9

ログの活用とは?

Page 10: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 10

ログの活用とは?

収集 集約

監視 通知

・・・・・・ 可視化 分析

Page 11: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 11

お話すること

• ログの活用って?

• Amazon Elasticsearch Serviceについて

• Amazon Elasticsearch ServiceによるAWSログの可視化・分析(ケーススタディ)

Page 12: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

• 2015/10/1にリリース(現地時間)

• AWSマネージドサービスのElasticsearch / Kibana

• 東京リージョン対応

12

Amazon Elasticsearch Serviceリリース!!

Page 13: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

• OSSの検索 / 分析エンジン– Luceneベース

– 高拡張性 / 高可用性

– スキーマレス(スキーマ定義も可)

– RESTful APIによる操作

– 豊富な検索オプション

• ユースケース– 全文検索

– ログ分析

– リアルタイムアプリケーション分析

• 豊富な周辺ツール– Logstashログ処理ツール

– Kibanaデータ可視化・分析ツール

13

Elasticsearchとは?

呼んだ?

Page 14: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

• Elasticsearchのデータ可視化・分析ツール

• 多様な多次元の可視化方法

– 円グラフ

– エリアチャート

– ラインチャート

– マップ、などなど

• 強力なElasticsearchの検索

14

Kibanaとは?

Page 15: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 15

Elasticsearch

Amazon Elasticsearch Service

Page 16: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

• AWSマネージドサービス

• IAMポリシーによるアクセス制御

• CloudWatch Logsとの連携

• プラグインがデフォルトで利用可

• 従量制の料金体系

16

Amazon Elasticsearch Serviceの特徴

Page 17: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 17

AWSマネージドサービスのElasticsearch

• 構築の簡略化

– 画面操作、APIによるデプロイ

– OS、アプリケーションのインストール/設定不要

– 自由度の高い構成設定

• インスタンスタイプ指定

• ディスクタイプ指定

• Master Node / Data Node

• マルチAZ

• 運用の簡略化

– 容易なスケール

– 障害の自動検出、および自動ノード交換

– 自動定期スナップショット(手動スナップショットも可)

– CloudWatchによるリソースモニタリング、イベント監視

Availability Zone 1 Availability Zone 2

Master Master

Data Data

Pri1 Rep1 Pri2Rep2

Page 18: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 18

IAMポリシーによるアクセス制御

• IPアドレスによる制御

• リソースによる制御

• IAM User / IAM Roleによる制御

Page 19: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

• ロググループをAmazon ESへSubscriptionするだけ

• 繋ぎのLambda Functionが自動生成

– AWSによって用意済み

• JSON形式の場合、何も不要(Elasticsearchによる自動型マッピング)

– AWS CloudTrail

• TEXT形式の場合、メッセージパターンを指定するだけ

– VPC Flow Logs

– Lambda Function

19

CloudWatch LogsとAmazon ESの連携

自動生成

CloudWatch Logs Lambda Amazon ES

Page 20: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

• Kibana 4 / Kibana 3– データの可視化

• Analysis-icu– 文字の正規化

• Analysis-kuromoji– 日本語の形態素解析

• Jetty– SSL Connection、ベーシック認証

• cloud-aws– S3を利用したスナップショットリポジトリ– EC2上でのクラスタリング

20

プラグインがデフォルトで利用可

Page 21: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

• Elasticsearchのバージョン選択

• VPC対応

• プラグインのインストール(コマーシャルプラグイン含む)

• Dynamic Script

• ユーザー辞書

• 一部のElasticsearch API(*)

• TCP Transport(サポートしない)

• Elastic社のサポート

(*) http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg-supported-operations.html

21

出来ないこと

Page 22: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 22

AWSにおけるログ可視化・分析

収集 集約

監視 通知

可視化 分析・・・・・・

Page 23: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 23

お話すること

• ログの活用って?

• Amazon Elasticsearch Serviceについて

• Amazon Elasticsearch ServiceによるAWSログの可視化・分析(ケーススタディ)

Page 24: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 24

ケーススタディ

ログデータを可視化・分析し、

ボトルネック箇所を特定せよ

Page 25: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 25

ログ活用していない運用現場

・・・

LB

Web/AP DB

システム管理者

NW担当 AP/OS担当 DB担当

Page 26: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 26

ある日の運用現場をAWSに置き換え

LB

Web/AP DB

ユーザー

ユーザー ELB EC2 RDS

Page 27: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 27

Amazon ESによるログ可視化・分析

Page 28: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 28

解析に必要なログ / データ

ELB

EC2

RDS(MySQL)

S3

アクセスログURL・各種処理時間

ApacheのアクセスログURL・レスポンスタイム

スロークエリログSQL・クエリタイム

Page 29: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 29

各種ログデータのAmazon ESへの投入

ELB

EC2

RDS(MySQL)

S3

スケジューリングは?

ETL処理は?

Amazon ES

Page 30: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 30

EC2 Amazon ES

Page 31: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 31

EC2 -> Amazon ES

Page 32: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

• スケジューリング

– リアルタイム収集

• Extract(ファイルからのメッセージ抽出)

– Logstash file Input Plugin

• Transform(JSONへの加工)

– Logstash grok Filter Plugin

• Load(Amazon ESへの投入)

– logstash-output-amazon_es

– AWS提供のAmazon ESへのLogstash Output Plugin

• 詳しくはブログを。。– http://dev.classmethod.jp/cloud/aws/amazon-es-using-logstash-plugin/

32

Logstashによる実装

Page 33: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 33

ELB Amazon ESS3

Page 34: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 34

ELB -> Amazon ES

Page 35: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

• スケジューリング– S3 Object Createdイベントによる発火

• Extract(S3のオブジェクト取得)– S3エンドポイントへのGetObject API

– Range指定により一回のダウンロードサイズを指定可能

– 一回のLambda Functionで終わらないようなサイズの場合、LambdaFunctionをChainすることも可能

• Transform(JSONへの加工)– 要実装(サンプルコードあり)

https://github.com/awslabs/amazon-elasticsearch-lambda-samples

• Load(Amazon ESへの投入)– ElasticsearchのBulk APIを利用して一括投入

• 詳しくはブログを。。– http://dev.classmethod.jp/cloud/aws/elb-accesslog-to-elasticsearch/

35

AWS Lambdaによる実装

Page 36: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 36

RDS for MySQL Amazon ES

Page 37: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 37

RDS for MySQL -> Amazon ES

Page 38: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved

• スケジューリング– スケジュールイベントによる発火

• Extract(AWS APIによる取得)– RDSエンドポイントへのDownloadDBLogFilePortion API

– Marker指定により準リアルタイムな取り込み可能

– 一回のLambda Functionで終わらないようなサイズの場合、LambdaFunctionをChainすることも可能

• Transform(JSONへの加工)– 要実装

• Load(Amazon ESへの投入)– ElasticsearchのBulk APIを利用して一括投入

• 詳しくはブログを。。– http://dev.classmethod.jp/cloud/aws/rds-mysql-slowquerylog-to-es/

38

AWS Lambdaによる実装

Page 39: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 39

Amazon ESによるログ可視化・分析

Page 40: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 40

ELBのアクセスログ

どのURLへのリクエストがボトルネックなのか判明

← タイムスタンプ →

処理時間

Page 41: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 41

Apacheのアクセスログ

インスタンスレベルの処理時間差が判明

処理時間

WEB-01 WEB-02← タイムスタンプ →

Page 42: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 42

RDS for MySQLのスロークエリログ

どのSQLがボトルネックなのか判明

← タイムスタンプ →

処理時間

Page 43: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 43

まとめ

• ログ活用の大切さ– ログからシステムをモニタリングできる

– 課題があればログからクリアできないか考える

• Amazon Elasticsearch Service– 従量制の課金体系。まず使ってみる。

• AWSのルールに則ったログ活用

– 各種サービスで収集可能なログを理解する

– 各種ログから活用可能な情報を選別する

– 各種ログを活用するためのAWSを知る

Page 44: Amazon Elasticsearch Serviceを利用したAWSのログ活用

Copyright (C) CLASSMETHOD All Rights Reserved 44

2016/02/20 Developers.IO 2016