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

Preview:

Citation preview

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

1

Copyright (C) CLASSMETHOD All Rights Reserved

自己紹介

名前:藤本 真司

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

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

好きなAWSサービス:AWS Lambda

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

Copyright (C) CLASSMETHOD All Rights Reserved

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

3http://dev.classmethod.jp/

Copyright (C) CLASSMETHOD All Rights Reserved 4

お話すること

• ログの活用って?

• Amazon Elasticsearch Serviceについて

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

Copyright (C) CLASSMETHOD All Rights Reserved 5

ある日の運用現場

・・・

LB

Web/AP DB

ユーザー

よくあるWEBシステム

遅いなぁ。。

Copyright (C) CLASSMETHOD All Rights Reserved 6

ある日の運用現場

ユーザー

システム管理者

DB担当AP/OS担当NW担当

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

みんな調べて

Copyright (C) CLASSMETHOD All Rights Reserved 7

ある日の運用現場

・・・

LB

Web/AP DB

システム管理者

NW担当 AP/OS担当 DB担当

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

結局原因は・・?

Copyright (C) CLASSMETHOD All Rights Reserved 8

みなさん、

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

Copyright (C) CLASSMETHOD All Rights Reserved 9

ログの活用とは?

Copyright (C) CLASSMETHOD All Rights Reserved 10

ログの活用とは?

収集 集約

監視 通知

・・・・・・ 可視化 分析

Copyright (C) CLASSMETHOD All Rights Reserved 11

お話すること

• ログの活用って?

• Amazon Elasticsearch Serviceについて

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

Copyright (C) CLASSMETHOD All Rights Reserved

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

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

• 東京リージョン対応

12

Amazon Elasticsearch Serviceリリース!!

Copyright (C) CLASSMETHOD All Rights Reserved

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

– 高拡張性 / 高可用性

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

– RESTful APIによる操作

– 豊富な検索オプション

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

– ログ分析

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

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

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

13

Elasticsearchとは?

呼んだ?

Copyright (C) CLASSMETHOD All Rights Reserved

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

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

– 円グラフ

– エリアチャート

– ラインチャート

– マップ、などなど

• 強力なElasticsearchの検索

14

Kibanaとは?

Copyright (C) CLASSMETHOD All Rights Reserved 15

Elasticsearch

Amazon Elasticsearch Service

Copyright (C) CLASSMETHOD All Rights Reserved

• AWSマネージドサービス

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

• CloudWatch Logsとの連携

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

• 従量制の料金体系

16

Amazon Elasticsearch Serviceの特徴

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

Copyright (C) CLASSMETHOD All Rights Reserved 18

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

• IPアドレスによる制御

• リソースによる制御

• IAM User / IAM Roleによる制御

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

Copyright (C) CLASSMETHOD All Rights Reserved

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

• Analysis-icu– 文字の正規化

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

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

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

20

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

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

出来ないこと

Copyright (C) CLASSMETHOD All Rights Reserved 22

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

収集 集約

監視 通知

可視化 分析・・・・・・

Copyright (C) CLASSMETHOD All Rights Reserved 23

お話すること

• ログの活用って?

• Amazon Elasticsearch Serviceについて

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

Copyright (C) CLASSMETHOD All Rights Reserved 24

ケーススタディ

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

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

Copyright (C) CLASSMETHOD All Rights Reserved 25

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

・・・

LB

Web/AP DB

システム管理者

NW担当 AP/OS担当 DB担当

Copyright (C) CLASSMETHOD All Rights Reserved 26

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

LB

Web/AP DB

ユーザー

ユーザー ELB EC2 RDS

Copyright (C) CLASSMETHOD All Rights Reserved 27

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

Copyright (C) CLASSMETHOD All Rights Reserved 28

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

ELB

EC2

RDS(MySQL)

S3

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

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

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

Copyright (C) CLASSMETHOD All Rights Reserved 29

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

ELB

EC2

RDS(MySQL)

S3

スケジューリングは?

ETL処理は?

Amazon ES

Copyright (C) CLASSMETHOD All Rights Reserved 30

EC2 Amazon ES

Copyright (C) CLASSMETHOD All Rights Reserved 31

EC2 -> Amazon ES

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による実装

Copyright (C) CLASSMETHOD All Rights Reserved 33

ELB Amazon ESS3

Copyright (C) CLASSMETHOD All Rights Reserved 34

ELB -> Amazon ES

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による実装

Copyright (C) CLASSMETHOD All Rights Reserved 36

RDS for MySQL Amazon ES

Copyright (C) CLASSMETHOD All Rights Reserved 37

RDS for MySQL -> Amazon ES

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による実装

Copyright (C) CLASSMETHOD All Rights Reserved 39

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

Copyright (C) CLASSMETHOD All Rights Reserved 40

ELBのアクセスログ

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

← タイムスタンプ →

処理時間

Copyright (C) CLASSMETHOD All Rights Reserved 41

Apacheのアクセスログ

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

処理時間

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

Copyright (C) CLASSMETHOD All Rights Reserved 42

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

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

← タイムスタンプ →

処理時間

Copyright (C) CLASSMETHOD All Rights Reserved 43

まとめ

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

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

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

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

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

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

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

Copyright (C) CLASSMETHOD All Rights Reserved 44

2016/02/20 Developers.IO 2016