amazon elasticsearch serviceを利用したawsのログ活用
TRANSCRIPT
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