Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

Elastic{ON} 2018 最終日セッションレポート LogsとMetricsとAPMをElastic Stackで統合 #elasticonjp

こんばんは。@です。

3日間に渡るElastic{ON}があっという間に終わってしまいました!
伝えたいことが多すぎて困ってしまいますが、少しでも雰囲気をお伝えできればと思います。

Elastic社APMチームのPMであるRasmusさん、Tech leadのRonさんらと共に記念写真。
f:id:acro-engineer:20180302183358j:plain:w700

今日参加したセッション

私が本日参加したセッションと概要は次の通りです。

  1. The State of Geo in Elasticsearch
    • Elasticsearchの2.x => 5.x => 7.xのGeo周りの進化について。仕組みが体系的に説明され、なぜElasticsearchがGeo系の処理が得意なのかを説明してくれていた(と思う)。Vega/VegaLiteにも地図表現があるので増えたよ。
  2. Kubernetes, Docker, and Containers at Elastic: Monitoring, Logging, and More
    • Kubernetes(k8s)でDockerコンテナを運用する上で実際に何をMonitoringするかについて。豊富なDashboardでの可視化例が参考になりました。
  3. Logs, Metrics, and APM: The Holy Trinity of Operations
    • ログ、メトリクス、そしてAPM。なぜElasticsearchでこれらのデータを収集し、いま一つのスタックで分析できることの意味とは。複数の異なるindexを一つのグラフにまとめて可視化する例は非常に参考になりました。
  4. Managing the Elastic Stack in Production
    • 実際にProduction環境になったらどのようにElastic Stackを管理しないといけないか。基本的な戦略が紹介されていたが、ちょっと学びが少なかったです。
  5. A Security Analytics Platform for Today
    • セキュリティ関連のログをElasticsearchに入れて、ルールベースのAlertとMLを使った検知を行うという内容。残念ながらあまり学びがありませんでした。。。早めに終わったのでその足でSecurity Analyticsのデモブースに行ってGraphの話を聞きました。
  6. Lyft's Wild Ride from Amazon ES to Self-Managed Elasticsearch
    • Lyftが成長していく中で、Splunk ⇒ AWS ES ⇒ Self-Managed ESと変化していった経緯を皮肉?を織り交ぜて説明。終わった後は参加者の質問の列ができていました!


その中から、今回は同じようなAPM製品を作ってきた自分たちとして、いろいろ思うところがあった「Logs, Metrics, and APM: The Holy Trinity of Operations」についてのレポートをお送りします。

APMの登場。Logs、Metrics、APMの特徴を理解する

まずは導入として、Logs、Metrics、APMとは何を指すのか?という定義から。

  • Logs
    • records of events
  • Metrics
    • periodic numerical measurements
  • APM
    • application performance monitoring

f:id:acro-engineer:20180302183443j:plain:w400
f:id:acro-engineer:20180302183514j:plain:w400

こういう現在地点をあらためて確認することで、これから複雑な話をするよ!というスタートは好きです。
前のせろ氏はあまり興味なさそうですが。

サーチエンジンであるElasticsearchがメトリクスの分析エンジン、APMへと進化する流れ

そこから話はサーチエンジンであるElasticsearchがなぜメトリクスの分析エンジンとなり、APMに繋がるのかについて、Elasticsearchの進化の歴史をポイントを挙げながら説明をしてくれました。
f:id:acro-engineer:20180302183545j:plain:w400
f:id:acro-engineer:20180302183605j:plain:w400
f:id:acro-engineer:20180302183624j:plain:w400

前のせろ氏は「歴史はいいから早くAPMを!」とぶつぶつ呟いていましたが、私としては、この流れは必然であり、この先に歩む道もまた当然行きつくべき先であるという力強いメッセージが感じられて好きです。

1つの技術スタックでLogs、Metrics、APMを扱うメリット

Elastic Stackとして、Logs、Metrics、APMのデータをまとめて扱えるようになると何が嬉しいのでしょうか。
ここでは統合されたダッシュボードによる分析、同じツールなので、同じ操作によるダッシュボードのカスタマイズ、ML、アラート設定などの利点が説明されていました。

f:id:acro-engineer:20180302183706j:plain:w400
f:id:acro-engineer:20180302184205j:plain:w400
f:id:acro-engineer:20180302184224j:plain:w400

異なるアプリケーションでバラバラにグラフを見るのではなく、一つにまとめてみたいし、一つのアプリケーションの中で行き来したいですよね。

実際にfilebeat, metricbeat, APMのデータを一つのVisualBuilderのグラフにする方法の紹介

こちらはライブデモで、実際にVisualBuilderを操作しながら、異なるindexのデータを一つのグラフに重ねていく様子です。
f:id:acro-engineer:20180302183732j:plain:w400

MySQL(マイシーケル)のslow logを一緒にダッシュボードに表示

現在マイブームの「マイシーケル」もslow logを表示できるテーブルを追加してダッシュボードが完成!

f:id:acro-engineer:20180302183915j:plain:w400

BeatsにはModuleの仕組みがあり、専用のダッシュボードも作成されるのですが、このようにして、filebeat、metricbeat、APMのデータを統合して分析できるダッシュボードが作れると運用業務が効率化できそうです。

今後のロードマップ

ロードマップとして、次が挙げられていました。

  1. 新しいBeats Module/Logstash inputの登場
  2. 既にリリースされているModuleのDashboard、ML Job、Alertingの改善
  3. Agentless Shinppers
  4. 分散トレーシング

f:id:acro-engineer:20180302184247j:plain:w400
BeatsのModuleでML Job、Dashboard、Alertingの設定が自動的に作られる環境が整っていくのは嬉しいですね。Agentless Shipperはちょっと理解ができませんでしたが、分散トレーシングは分散システムのログを可視化する時の起点となる問題意識として私たちも持っているので、長年の課題を今の技術でどのように解決していくのか楽しみです。

f:id:acro-engineer:20180302184307j:plain:w400
また、他のセッションでも紹介されたのですが、このElastic Common Schemaを決めていく動きというのも要注目したいところです。

まとめ

というわけで、APMのセッションレポートをお届けしました。

うちの会社でもENdoSnipe APMというAPM製品を長らく開発してきており、目指している理想は非常に共感できるものでした。
昨日のAPMのセッションも含めると、自分たちが進んで来た過程や、今の立ち位置、この後の進む方向性についていろいろと考える機会と刺激を受けましたね。

冒頭の写真の通り、Elastic APMチームとは情報交換をしながらお互いに協力関係で進めて行きますので、ぜひENdoSnipeにもご期待ください!

その他にも紹介したいものがあるのですが、長くなってしまいますので、どこか勉強会などでフィードバックしたいと思います!

それでは皆さん、日本で会いましょう!

Acroquest Technologyでは、キャリア採用を行っています。


  • データ分析(Elasticsearch、Python関連)、ビッグデータHadoop/Spark、NoSQL)、Web開発(SpringCloud/SpringBoot、AngularJS)といった最新のOSSを利用する開発プロジェクトに関わりたい。
  • マイクロサービスDevOpsなどの技術を使ったり、データ分析機械学習などのスキルを活かしたい。
  • 社会貢献性の高いプロジェクトや、顧客の価値を創造するようなプロジェクトで、提案からリリースまで携わりたい。
  • 書籍・雑誌等の執筆や、対外的な勉強会の開催・参加を通した技術の発信、社内勉強会での技術情報共有により、エンジニアとして成長したい。