Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Open Distro for Elasticsearchとのおいしい関係

Open Distro for Elasticsearchとのおいしい関係

2020/2/7 Amazon Elasticsearch Service & Open Distro for Elasticsearch Meetupでの、日比野の講演資料になります

Recruit Technologies

February 07, 2020
Tweet

More Decks by Recruit Technologies

Other Decks in Technology

Transcript

  1. 2020年2月7日(金)
    株式会社リクルートテクノロジーズ
    日比野 恒
    Open Distro for Elasticsearchとのおいしい関係
    (Amazon Elasticsearch Service & Open Distro for Elasticsearch Meetup)

    View Slide

  2. 2
    自己紹介
    名前: 日比野 恒 (ひびの ひさし)
    所属: 株式会社リクルートテクノロジーズ
    サイバーセキュリティ部 セキュリティアーキテクト
    (CISSP、CISA、IPA安全確保支援士)
    モチベ: クラウドセキュリティのデザインパターン設計
    セキュリティログ分析基盤活用入門(@IT)
    https://www.atmarkit.co.jp/ait/series/16525/
    クラウド環境のログをどう活かす?先駆者の知見から学ぶ
    https://ascii.jp/elem/000/001/697/1697672/
    後日スライド公開予定

    View Slide

  3. 本日お伝えしたいこと
    ✓ Open Distro for Elasticsearchとは何者なのか
    ✓ Amazon Elasticsearch Serviceとの使い分け
    ※ お話しないこと: Elasticsearchの全文検索に関する話
    ×
    3

    View Slide

  4. 1. Amazon Elasticsearch Serviceとは

    View Slide

  5. 5
    そもそも、Elastic社とは
    本社はオランダ、カルフォルニアのマウンテンビューに拠点を持つ、Elasticsearchを手掛けるソフトウェア企業
    【参考】Elasticのストーリー
    https://www.elastic.co/jp/about/history-of-elasticsearch

    View Slide

  6. 6
    Elastic Stackとは
    全文検索エンジンである「Elasticsearch」を中心としたオープンソースプロダクト群
    SaaS Self Managed
    Standalone
    Deployment
    Ingest
    Store/Search/Analyze
    Visualize/Manage
    Solutions
    Application
    Search
    Metrics
    Site
    Search
    APM
    Enterprise
    Search
    Business
    Analytics
    Logging
    Security
    Analytics
    Feature
    Elastic
    Stack

    View Slide

  7. 7
    Elasticsearchとは
    Elastic社が提供する「Lucene」ベースのオープンソース全文検索エンジンです。
    【参考】Elasticsearch (Elastic Stackのハート)
    https://www.elastic.co/jp/products/elasticsearch
    【コンセプト】
    ✓ ユーザの欲しいものを簡単に検索出来るようにすること
    【優位性】
    ✓ 分析の柔軟性と検索のリアルタイム性
    【特徴】
    ✓ 大規模分散
    ✓ リアルタイム性
    ✓ ドキュメント志向
    ✓ スキーマフリー
    ✓ RESTful API

    View Slide

  8. 8
    Kibanaとは
    Elasticsearchに取り込まれたデータを可視化するWebブラウザベースのユーザインターフェースです。
    【参考】Kibana (Elastic Stackへの開かれた窓)
    https://www.elastic.co/jp/products/kibana

    View Slide

  9. 9
    Amazon Elasticsearch Serviceとは
    完全マネージド型の安全かつスケーラブルなElasticsearch+Kibanaのサービスです。
    ※LogstashやBeatsは含まれていないよ!(公式サイトにLogstashが含まれているように書かれている...)
    【参考】Amazon Elasticsearch Service
    https://aws.amazon.com/jp/elasticsearch-service/

    View Slide

  10. 10
    これまでの歴史
    2015年10月にElasticsearch1.5として、Amazon Elasticsearch Service(以下、AmazonES)
    がローンチ!
    (ELK StackからElastic Stackになった2017年以降、バージョンアップや機能拡張が活発化)
    【参考】Amazon Elasticsearch Service のドキュメント履歴
    https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/release-notes.html
    1.5 2.3 5.1 5.3 5.5 5.6 6.0 6.2 6.3 6.4 6.5 6.7 6.8
    2015 2016 2017 2018 2019
    VPCサポート
    Cognito認証
    アラート通知
    SQLアクセス
    蓄積データ暗号化
    3つのAZサポート
    ESバージョンアップに
    追従していなかった
    (暗黒期)
    主だった機能拡張
    クラスタ間暗号化
    7.1
    UltraWarmストレージ

    View Slide

  11. 11
    Elasticsearchノードの役割
    いくつかの役割があるが、大事な役割は「Master/Master-eligible」と「Data」の2つ!
    ※1ノードの中でMasterとDataの役割を兼務することも可能
    【参考】 Nodeの役割
    https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html
    cluster
    Master 1
    cluster_state
    ★ Master 2
    cluster_state
    ☆ Master 3
    cluster_state

    Data 1
    Primary 1
    【Masterノード】
    ・Master-eligibleノードから選出
    ・clusterに1台のみ
    ・cluster_stateの管理を行う
    【Master-eligibleノード】
    ・Masterが障害時にMaster昇格
    ・Masterと合わせて最低3ノード必要
    ・クォーラムを維持できるように構成
    【Dataノード】
    ・shard(Primary、Replica)を保持
    ・CRUD、searchなど実行
    Data 2
    Replica 1
    Primary 2 Replica 2
    Replica 3 Primary 3
    大事なポイント

    View Slide

  12. 12
    【参考】AmazonESデプロイ時の設定画面
    専用マスターインスタンスを有効化すると、MasterとDataが別のインスタンスで起動する。
    ※専用マスターは3もしくは5ノード (専用マスタの目安はクラスタ内のノードが10台を超えるあたり)

    View Slide

  13. 13
    東京リージョンにAZが2個しかない時代は...
    2018年1月に登場した東京リージョンのAZ1dのおかげでAmazonESの可用性は向上した。
    【参考】 Configuring a Multi-AZ Domain
    https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html#es-managedomains-multiaz
    cluster_state

    cluster_state
    ☆ node3
    cluster_state

    AZ1 (apne-az1)
    node2
    node1
    AZ2 (apne-az2) AZ4 (apne-az4)
    cluster_state

    cluster_state
    ☆ node3
    cluster_state

    AZ1 (apne-az1)
    node2
    node1
    AZ2 (apne-az2)
    AZ障害時にクラスタ維持に必要な2ノードが確保できなかった。
    計算式:N(=3)÷2+1=2(NはMasterノード数)
    AZを3つ作成出来ることで、各AZにそれぞれMasterを配置可。
    (Hadoop等の並列分散アーキテクチャが展開し易くなった)

    View Slide

  14. 14
    完全マネージド型だと何が嬉しいのか
    ということで、AmazonESの「うれしみ」を具体的に上げてみた!
    (「運用性」と「信頼性」が特に喜ばれるポイントだと思っている)
    セキュリティ
    VPCサポート
    通信暗号化
    データ暗号化
    Kibana認証
    可用性
    MultiAZ構成
    データ冗長化
    信頼性
    スケールアウト
    運用性
    クラスタ管理
    バージョンアップ
    バックアップ

    View Slide

  15. 15
    Amazon ESが選ばれるポイント
    AWSに請求一元化出来ること、AmazonESにVPCプライベート接続出来ることが選択する上でポイントになる!
    (AWS上にシステム構築している場合は、①と②が嬉しいはず...)
    【参考】Amazon Elasticsearch ServiceドメインのVPCサポート
    https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-vpc.html
    AWS Cloud
    On-Premise
    ②VPCアクセス
    ①請求一元化
    AWS Direct Connect
    Amazon VPC
    Amazon
    GuardDuty
    AWS WAF Amazon S3
    ELB
    Amazon CloudWatchLogs
    AWS CloudTrail
    Amazon RDS Amazon Aurora
    Amazon EC2
    Amazon
    Elasticsearch Service
    VPC

    View Slide

  16. 16
    【参考】Kinesis Data Firehose経由だと...
    KDF経由でログデータをAmazon ESに格納しようとするとパブリック接続になってしまうので、ご注意を!
    (VPCエンドポイントは、VPCからパブリックサービスに出るときには通過するか、逆の経路では利用できない)
    AWS Cloud
    Amazon
    Elasticsearch Service
    (パブリックアクセス)
    VPC
    Amazon Kinesis
    Data Firehose
    Amazon
    Elasticsearch Service
    (VPCアクセス)
    Amazon
    CloudWatchLogs
    Amazon VPC
    ELB
    Amazon RDS Amazon Aurora
    Amazon EC2
    ログ送信元
    VPC Endpoint

    View Slide

  17. 17
    代表的なユースケース
    機能追加に伴い、ユースケースは増えているものの、AmazonESの多くは「全文検索」で利用されている。
    全文検索 ログ分析 セキュリティ分析
    クリックストリーム
    分析
    リアルタイム
    APM
    オレンジ字: 全文検索
    青字: 時系列データ

    View Slide

  18. 18
    【参考】全文検索と時系列データの違い(1/2)
    「読み取り」と「書き込み」の性質の違いが顕著であり、Cacheの使い方が大きく異なる。
    Index (=Table)
    ディスク
    【全文検索】 【時系列データ】
    メモリ メモリ
    いわゆる
    マスターデータ
    document
    Index (=Table)
    いわゆる
    履歴データ
    document
    Query
    Read (=Search)
    Write (=Indexing)
    1
    2
    document document
    document
    Read Cache
    Write Cache
    3 1
    document
    2
    3
    document
    4
    5
    6
    document
    document
    よくSearchされるデータ(document)を
    メモリ上のOS File Cacheに乗せたままに
    出来るようにIndex設計するのがポイント
    常にデータがIndexingされているため
    メモリ上のOS File CacheはWrite Cache
    で埋め尽くされ、SearchしたデータのRead
    Cacheが効きにくい
    Query

    View Slide

  19. ストレージ
    メモリ
    19
    【参考】全文検索と時系列データの違い(2/2)
    クラスタ拡張時のシチュエーション(性能不足のポイント)もユースケースによって異なってくる。
    【全文検索】 【時系列データ】
    Index
    FileCache JVMHeap
    Index
    1
    2
    3
    ストレージ
    メモリ
    Index
    FileCache JVMHeap
    Index
    1
    2
    3
    4
    検索性能を上げるためにFileCache領域の
    拡張が必要となり、クラスタにノードを追加
    蓄積データ増加に伴いストレージとJVMHeapの
    拡張が必要となり、クラスタにノードを追加

    View Slide

  20. 20
    LogstashからAmazonESへの出力設定
    output {
    elasticsearch {
    hosts => ["https://search-test-hoge.ap-northeast-1.es.amazonaws.com:443"]
    index => "%{type}-%{+YYYY.MM.dd}"
    }
    }
    output {
    amazon_es {
    hosts => ["search-test-hoge.ap-northeast-1.es.amazonaws.com"]
    region => "ap-northeast-1"
    index => "%{type}-%{+YYYY.MM.dd}"
    }
    }
    Elastic社純正のプラグインでもAmazonES専用のプラグインでもLogstashからログ出力は可能です!
    logstash-output-amazon_esプラグインの場合
    logstash-output-elasticsearchプラグインの場合

    View Slide

  21. 21
    次期メジャーバージョンの8系から気をつけて...
    [2020-02-
    04T03:42:38,051][WARN ][logstash.outputs.elasticsearch][X
    XX] DEPRECATION WARNING: Connecting to an OSS
    distribution of Elasticsearch using the default distribution of
    Logstash will stop working in Logstash 8.0.0. Please upgrade
    to the default distribution of Elasticsearch, or use the OSS
    distribution of Logstash {:url=>"https:// search-test-hoge.ap-
    northeast-1.es.amazonaws.com:443/"}
    AmazonESはOSS版Elasticsearchで構成されているため、LogstashもOSS版にしないと出力できなくなる。

    View Slide

  22. 2. Open Distro for Elasticsearchとは

    View Slide

  23. 23
    Open Distro for Elasticsearchとは
    2019年3月に突如AWSがGitHub公開した別ディストリビューションのElasticsearchです!
    【参考】新登場 – Open Distro for Elasticsearch
    https://aws.amazon.com/jp/blogs/news/new-open-distro-for-elasticsearch/
    じゃないよ!

    View Slide

  24. 24
    ご存知の方
    ぜひ、挙手をお願いします!!

    View Slide

  25. 25
    一体何を提供してくれるのか
    「Elasticsearch+Kibana」にセキュリティ、アラート通知、SQL接続、性能管理、Index管理が追加された。
    (インストールパッケージを見ると、OSS版Elasticsearchをベースにプラグインの形を取っていることが分かる)
    # 機能名 説明 パッケージ名
    1 Elasticsearch データストア(スキーマレス)と全文検索エンジン elasticsearch-oss
    2 Kibana Elasticsearchに蓄積されたデータの可視化 opendistroforelasticsearch-kibana
    3 Security クラスターの認証とアクセス制御 opendistro-security
    4 Alerting データが特定条件を満たしたときのアラート通知 opendistro-alerting
    5 SQL SQLを使用したデータ照会 opendistro-sql
    6 Performance Analyzer Elasticsearchクラスタの性能監視と最適化 opendistro-performance-analyzer
    7 Index State Management ElasticsearchのIndex管理 opendistro-index-management
    【参考】Open Distro for Elasticsearch
    https://opendistro.github.io/for-elasticsearch/

    View Slide

  26. 26
    Elastic社の有償サブスクリプションでいうと...
    商用機能である「Security」、「Alerting」、「ElasticsearchSQL」がOSSとして無償利用出来る感じ。
    (旧X-Packを購入する企業は、エンタープライズ機能の「Security」、「Alerting」が欲しくて買っているケースが多いのではないか...)

    View Slide

  27. 27
    なぜ、Open Distroは誕生したのか
    Elastic社の商用機能のコードが公開されたタイミングでGitHubのソースにOSS以外のコードも含まれてしまった。
    【参考】Keeping Open Source Open – Open Distro for Elasticsearch
    https://aws.amazon.com/jp/blogs/opensource/keeping-open-source-open-open-distro-for-elasticsearch/

    View Slide

  28. 28
    Security機能
    暗号化、認証、アクセス制御、監査ログ、テナント分離等、多くのエンタープライズ向けのセキュリティ機能を提供。
    【参考】Security機能
    https://opendistro.github.io/for-elasticsearch-docs/docs/security-configuration/
    # Security機能名 説明
    1 ノード間暗号化 Elasticsearchクラスター内のノード間のトラフィックを暗号化
    2 HTTPベーシック認証 Kibana、Elasticsearchへのユーザ名/パスワードによる認証
    3 ログイン認証連携 AD、LDAP、Kerberos、SAML、OpenID Connectを用いた認証連携
    4 役割ベースアクセス制御 ユーザ操作(読み取り/書き込み/変更等)をロール(役割)ベースで制御
    5 Index&Fieldレベルセキュリティ Index、Index内の特定ドキュメント、ドキュメント内の特定Fieldへのアクセス制御
    6 監査ログ ElasticsearchへのAPI操作の監査ログ記録
    7 Kibana マルチテナント Kibanaオブジェクトをユーザ専用もしくは共有スペースとして分離

    View Slide

  29. 29
    Alerting機能
    Elasticsearch内のデータを検索し、特定条件をトリガーにWebhook(Slack等)でのアラート通知が可能。
    【参考】Alerting機能
    https://opendistro.github.io/for-elasticsearch-docs/docs/alerting/

    View Slide

  30. 30
    SQL機能
    Elasticsearch内のドキュメントに対するSQLクエリ、アプリケーション用のJDBCドライバを提供。
    【参考】SQL機能
    https://opendistro.github.io/for-elasticsearch-docs/docs/sql/

    View Slide

  31. 31
    Performance Analyzer機能
    PerfTopコマンドを用いて、Elasticsearchに関する性能情報をグラフ表示させることが可能。
    (Perftopコマンドで、TCP9600ポートとダッシュボード名を指定してElasticsearchに接続)
    【参考】Performance Analyzer機能
    https://opendistro.github.io/for-elasticsearch-docs/docs/pa/
    macOS/Linux用のダウンロードや
    npmでのインストールも可能

    View Slide

  32. 32
    Index State Management機能
    Elasticsearchに格納されているIndexのライフサイクル管理やセグメント統合、ロールオーバなどを自動化。
    【参考】Index State Management機能
    https://opendistro.github.io/for-elasticsearch-docs/docs/ism/

    View Slide

  33. 33
    インストール方法
    インストール方法はこれまでのOSS版Elastic Stackと大きく変わらないが、リポジトリを2つ登録する必要がある。
    (設定ファイルであるymlファイルの内容は異なる)
    【参考】Open Distro for Elasticsearchを作ってみた!
    https://qiita.com/hssh2_bin/items/4024a830db6676ad74d1
    ①Javaインストール
    (JDK8 or JDK11)
    ②リポジトリ登録
    (Elastic + OpenDistro)
    ③Elasticsearch
    インストール
    ④Elasticsearch設定 ⑤Kibanaインストール ⑥Kibana設定

    View Slide

  34. 34
    Amazon ESに機能追加されていくはず!
    この年表に戻りまして、3月11日のローンチ直後からAmazon ESでは大きく3つの機能が追加されている。
    1.5 2.3 5.1 5.3 5.5 5.6 6.0 6.2 6.3 6.4 6.5 6.7 6.8
    2015 2016 2017 2018 2019
    VPCサポート
    Cognito認証
    アラート通知
    (2019/3/25)
    SQLアクセス
    (2019/3/15)
    蓄積データ暗号化
    3つのAZサポート
    主だった機能拡張
    クラスタ間暗号化
    Open Distro for Elasticsearch (2019/3/11)
    7.1
    UltraWarmストレージ
    (2019/12/3)

    View Slide

  35. 35
    Security機能の追加はされるのか?
    Amazon ESのKibana認証は、Amazon Cognitoによる認証がスタンダードであるが...
    (Elasticsearch5.1以降のAmazon ESで利用可能な認証方式であるが、あくまで認証機能のみ)
    【参考】KibanaのAmazon Cognito認証
    https://docs.aws.amazon.com/ja_jp/elasticsearch-service/latest/developerguide/es-cognito-auth.html
    役割ベース
    アクセス制御
    Index&Fieldレベル
    セキュリティ
    監査ログ
    Kibana
    マルチテナント
    【Kibana Amazon Cognito認証】

    ×

    View Slide

  36. 36
    さらに今後追加される予定の機能には...
    機械学習のような高度な分析機能や異常検知のようなセキュリティ機能のリリースが予定されている。
    【参考】New Features Coming Soon
    https://opendistro.github.io/for-elasticsearch/features/comingsoon.html
    SQL Kibanaプラグイン
    アラートとのセキュリティ統合
    K-NN検索
    異常検知(alpha)

    View Slide

  37. 37
    Elastic Journey
    要件や方向性に応じて、自分にあったElastic環境を選択するのが良い!
    (こんなに色々な選択肢があるなんて、、意外と知られていない)
    分岐1
    分岐2
    1. Elastic Cloud
    2. Elastic Stack
    (with Features)
    3. Amazon ES
    4. Open Distro
    (本日のテーマ)
    Start
    分岐1: 先々利用したいエンタープライズ機能
    分岐2: マネージド型にしたい(インフラ運用を楽したい)
    機械学習による
    異常検知
    アラート通知や
    セキュリティ機能
    YES
    NO
    YES
    NO
    分岐2
    Elastic
    Official
    AWS
    Original

    View Slide

  38. 3. アラート通知機能の活用事例

    View Slide

  39. 39
    Alertingを試してみたよ!
    【参考】Amazon Elasticsearch ServiceのAlertingを使ってAWS ConsoleLoginを監視してみた
    https://qiita.com/hssh2_bin/items/06550d437ceb095a139c
    Open Distro for ElasticsearchのAlertingを使って、AWS管理コンソールの不正ログインを見張る。
    (許可されていない送信元IPアドレスからのログインをSlack通知させる)
    AWS Cloud
    Users
    Internet
    ⑧Kibana Login
    ③Audit
    Logging
    ⑥Alerting
    ⑦Notification
    Logstash
    (EC2)
    Slack
    Slack
    ①AWS Management Console Login
    OpenDistro
    (EC2)
    ④Log
    Input
    ⑤Log
    Output
    ②AwsConsoleSignIn
    ALB
    Amazon
    CloudWatchLogs
    AWS CloudTrail

    View Slide

  40. 40
    GuardDutyの脅威リストを用いた不正検知
    GuardDutyでも検知させることは出来るが、リージョン単位の設定となるため、新規リージョン追加がツラみ。
    (CloudFormationのStackSetで一括設定は出来るけど…)
    【参考】脅威リストを使ったGuardDutyの検出テスト
    https://dev.classmethod.jp/etc/guardduty-generate-findings-test/
    【参考】一発でGuardDutyを全リージョン有効化して通知設定するテンプレート作った
    https://dev.classmethod.jp/cloud/aws/set-guardduty-all-region/

    View Slide

  41. 41
    AWS管理コンソールのログインリージョン
    AWS管理コンソールへのログインは、どこのリージョンにログインしたかが記録される。
    (ゆえにGuardDutyで全てのリージョン漏れなく設定する必要がある)

    View Slide

  42. 42
    CloudTrailのAPI監査ログの分析ポイント
    AWS管理コンソールへのログイン成功時のCloudTrail監査ログの送信元IPアドレスをトリガーに利用する。
    eventType AwsAPICall
    AwsConsoleSignIn
    userIdentity.type
    eventName
    IAMUser
    Root
    AWSService
    AssumeRole
    AwsAccount
    Console Login
    CheckMfa
    SwitchRole
    Field Name
    Value
    【凡例】
    eventName
    Additional EventData.MFAUserd
    responseElements.ConsoleLogin
    responseElements.CheckMfa
    responseElements.SwitchRole
    Yes
    No
    Success
    Failure
    Success
    Failure
    Success
    Failure
    eventTime
    sourceIPAddress
    userIdentity.type
    API名
    userIdentity.username

    View Slide

  43. 43
    大まかな設定の流れ
    Alertingは、Destination設定、Monitor設定、Trigger設定の3つのステップで設定を行う。
    (今回は事前処理として、CloudWatchLogsやCloudTrail、Logstashを設定)
    ①CloudWatchLogs
    ロググループ作成
    ②CloudTrail
    証跡作成
    ③Logstash
    ETL処理作成
    ④Alerting設定
    (Destination)
    ⑤Alerting設定
    (Monitor)
    ⑥Alerting設定
    (Trigger)
    【参考】CloudTrailをElasticsearchに取り込んでみた
    https://qiita.com/hssh2_bin/items/e808674b4d08b2eb4756

    View Slide

  44. 44
    Logstashでログの下ごしらえ(1/3)
    Logstashのinput句には作成したCloudWatchLogsのロググループ名を指定する。
    input {
    cloudwatch_logs {
    region => "us-east-1"
    log_group => [ "AWS_CloudTrailLogs" ]
    sincedb_path => "/var/lib/logstash/sincedb_cloudtrail"
    }
    }

    View Slide

  45. 45
    Logstashでログの下ごしらえ(2/3)
    不正検知対象外としたいIPアドレスリストをtranslate filterで辞書登録する。
    (trusted_ipがfalseとなっているイベントを検知対象とする)
    filter {
    json {
    source => "message"
    }
    date {
    match => [ "eventTime", "ISO8601" ]
    target => "@timestamp"
    }
    ruby {
    code => "event.set('[@metadata][local_time]',event.get('[@timestamp]').time.localtime.strftime('%Y-%m-%d'))"
    }
    translate {
    field => "sourceIPAddress"
    destination => “trusted_ip"
    dictionary => {
    "" => "true"
    "" => "true"
    }
    fallback => "false"
    }
    }

    View Slide

  46. 46
    Logstashでログの下ごしらえ(3/3)
    Output句には、Open Distroを指定するが、Security機能が有効の場合は以下のように設定する。
    output {
    elasticsearch {
    hosts => [ "https://:9200" ]
    user => "admin"
    password => "PW"
    ssl_certificate_verification => false
    index => "cloudtrail-%{[@metadata][local_time]}"
    }
    }

    View Slide

  47. 47
    Alerting設定方法(1/6)
    [Alerting] > [Destinations]で「Add destination」でSlack通知先設定を追加する。

    View Slide

  48. 48
    Alerting設定方法(2/6)
    [Monitor]で「Create monitor」で監視間隔や監視対象データ等のモニタリング設定をする。

    View Slide

  49. 49
    Alerting設定方法(3/6)
    監視対象データをクエリベースで指定する場合は、[Define using extraction query]を利用する。
    {
    "size": 0,
    "query": {
    "bool": {
    "must": [
    {
    "match_all": {
    "boost": 1
    }
    },
    {
    "match_phrase": {
    “trusted_ip": {
    "query": "false",
    "slop": 0,
    "zero_terms_query": "NONE",
    "boost": 1
    }
    }
    },
    {
    "match_phrase": {
    "eventType": {
    "query": "AwsConsoleSignIn",
    "slop": 0,
    "zero_terms_query": "NONE",
    "boost": 1
    }
    }
    },
    {
    "range": {
    "cloudwatch_logs.ingestion_time": {
    "from": "now-5m",
    "to": "now",
    "include_lower": true,
    "include_upper": true,
    "format": "epoch_millis",
    "boost": 1
    }
    }
    }
    ],
    "adjust_pure_negative": true,
    "boost": 1
    }
    }
    }

    View Slide

  50. 50
    Alerting設定方法(4/6)
    監視トリガーを設定する。
    (今回は監視対象データが0件より多い場合に通知)

    View Slide

  51. 51
    Alerting設定方法(5/6)
    最後に作成したSlack通知先を指定してモニタリング設定は完了です!

    View Slide

  52. 52
    Alerting設定方法(6/6)
    該当イベントが発生した時に、通知が指定したSlackチャネルに届けばOKです!
    (CloudTrail→CloudWatchLogs→Open Distro→Alert通知まで15分くらい掛かる)

    View Slide

  53. 53
    まとめ
    Open Distroを通じて、Amazon ESのうれしみをお伝えしてきました
    ✓ 完全マネージド型サービスの良さやVPCサポート等のセキュリティ機能の充実度
    ✓ Open Distroで新機能を遊び尽くし、Amazon ESでローンチしたら本番導入
    ✓ AWS環境の各種サービスのログを使ってAWSログ監視システムを構築可能

    View Slide

  54. View Slide