A presentation at 【福岡】LINE Developer Meetup #52 in April 2019 in Fukuoka, Japan by Jun Ohtani
Elastic Stackでマイクロサービス 運用を楽にするには? 2019/04/17 Community Engineer @Elastic Jun Ohtani @johtani !1
about • • !2 Me, Jun Ohtani / Community Engineer ‒ lucene-gosenコミッター ‒ データ分析基盤構築入門 共著 ‒ http://blog.johtani.info Elastic, founded in 2012 ‒ Products: Elasticsearch, Logstash, Kibana, Beats Elastic APM, Elastic Cloud, Swiftype Professional services: Support & development subscriptions Trainings, Consulting, SaaS
Kibana、ログだけじゃないし 監視系の話もできないとなぁ !3
!4
これだ! (インスパイアされてみました) !5
アジェンダ • マイクロサービスとは? • Elastic Stackとは? • 様々な観点からのアプリケーションの監視 • さらに色々試してみるには? !6
マイクロサービスとは !7
マイクロサービス (Wikipedia) https://ja.wikipedia.org/wiki/マイクロサービス !8
モノリシック v.s. マイクロサービス !9
!10
!11
マイクロサービス??? !12
Elastic Stackとは? !13
Elastic Stack Kibana 可視化、管理 Elasticsearch 保存、検索、分析 Beats Logstash インジェスト
Application Search Metrics Elastic Stack Site Search APM Enterprise Search Logging Business Analytics Security Analytics Future ソリューション Kibana 可視化、管理 Elasticsearch 保存、検索、分析 Beats Logstash インジェスト
App Search Site Search Metrics Elastic Stack APM Enterprise Search Logging Business Analytics Security Analytics Future ソリューション Kibana 可視化、管理 Elasticsearch 保存、検索、分析 Beats SaaS Elastic Cloud Logstash インジェスト Self Managed Elastic Cloud Enterprise Standalone デプロイ
Application Search Site Search Metrics Elastic Stack APM Enterprise Search Logging Business Analytics Security Analytics Future ソリューション Kibana 可視化、管理 Elasticsearch 保存、検索、分析 Beats SaaS Elastic Cloud Logstash インジェスト Self Managed Elastic Cloud Enterprise Standalone デプロイ
!18
Beats 軽量データシッパー ソースからデータを転送 転送しElasticsearchに集約 変換とパースのため Logstashに転送 Elastic Cloudに転送 Libbeat: カスタムbeatsのた めのAPIフレームワーク 30以上のコミュニティbeats 19
The Beats family Packetbeat Metricbeat Winlogbeat Network data Metrics Windows Event Logs Auditbeat Filebeat Audit data Log files Heartbeat Uptime monitoring +40 community Beats
!21
Logstash データ加工パイプライン 全ての形式、サイズとデータ ソースの投入 パースと動的な データ変換 あらゆる出力に データ転送 安全で暗号化された データ入力 独自のパイプライン処理 の作成 200以上のプラグイン 22
!23
Elasticsearch Heart of the Elastic Stack 分散型、スケーラブル 高可用性 マルチテナント 開発者フレンドリー リアルタイム、全文検索 アグリゲーション 24
!25
Kibana Window into the Elastic Stack 可視化と分析 地理空間 カスタマイズと レポートの共有 グラフ探索 Elastic Stackへの セキュアなアクセスと管理 カスタムAppsの作成 26
Kibana 7 !27
Elastic Stackの構成 Beats Log Files Elasticsearch Kibana Wire Data Instances Nodes Metrics your{beat} Distributed Message Queue Kafka !28 Data Store Web APIs Social Sensors Logstash Nodes Queues Storage Metrics Notification
アプリケーションの 監視ポイント !29
監視ポイント • 外形監視 • メトリック(メトリクス) • !30 サーバー、アプリケーション • ログ • アプリケーションのリリースタイミング • 分散トレーシング
外形監視 • !31 死活監視 • プロセス • HTTPサーバー • TCP • ICMP
Heartbeat Lightweight Shipper for Uptime Monitoring
Uptime UI Dedicated Uptime Monitoring UI for Kibana
メトリック • サーバー • • アプリケーション • • リクエスト数、コネクション数、処理時間 コンテナー • !34 CPU、メモリ、ディスク、ネットワークI/O、プロセス数 コンテナ数
Metricbeat Collect system and application metrics
Metricbeat lots of modules
Metricbeat モジュール ● ● ● ● ● ● ● ● ● ● ● ● ● ● !37 Aerospike module Apache module aws module Ceph module Couchbase module couchdb module Docker module Dropwizard module Elasticsearch module envoyproxy module Etcd module Golang module Graphite module HAProxy module ● ● ● ● ● ● ● ● ● ● ● ● ● HTTP module Jolokia module Kafka module Kibana module Kubernetes module kvm module Logstash module Memcached module MongoDB module mssql module Munin module MySQL module Nats module ● ● ● ● ● ● ● ● ● ● ● Nginx module PHP_FPM module PostgreSQL module Prometheus module RabbitMQ module Redis module System module traefik module uwsgi module vSphere module Windows module ZooKeeper module
ログ !38 • アクセスログ • システムログ • 認証ログ • スローログ • アプリケーションログ
Filebeat tail log from file
Filebeat many modules
Filebeat modules - v7.0.0 • Apache module • Kafka module • PostgreSQL module • Auditd module • Kibana module • Redis module • Elasticsearch module • Logstash module • Santa module • haproxy module • MongoDB module • Suricata module • Icinga module • MySQL module • System module • IIS module • Nginx module • Traefik module • Iptables module • Osquery module • Zeek (Bro) Module
winlogbeat Welcome to 1998
winlogbeat Now
Packetbeat Capture the Packet
アプリケーションのリリースタイミング !46 • バグフィックスリリース • 新機能リリース • 新サービス開始 • サーバー増強
Time Series Visual Builder Annotations on Visualization
分散トレーシング !48 • マイクロサービス • 1つのリクエストに対して複数のプロセスが関係 • アプリケーションパフォーマンスモニタリングの1つ
!49
Elastic APM !50
Distributed Tracing Beta | Basic (free) 全ての計測されたサービスを見るための 統合されたビュー サブコンテキスト内のトレースに遷移 OpenTracing 互換
そのほかの便利な機能 !52 • Infra UI • Logs UI • Machine Learning • Alerting
Infrastructure Solution Beta | Basic (free) インフラオペレーター向けに特化 1000を超えるインフラの構成を俯瞰 Kubernetes、Docker のネイティブサ ポート メトリック、ログ、APM ビューへの ドリル・ダウン アドホックおよび構造化検索
Logs Solution Beta | Basic (free) ライブでログのトラブルシューティング を助ける軽量なログビューアー コンソールのような表示 (tail -fのような)ライブ・ログ・ストリー ミング 履歴ログの無限スクロール アドホックおよび構造化検索
!55
!56
!57
さらに活用するには? !58
!59
!60
参考サイト • ユースケース • https://www.elastic.co/use-cases • Discuss(Webフォーラム) • https://discuss.elastic.co • Elastic{ON}のビデオと資料 • https://www.elastic.co/elasticon/videos • サポートメニュー • https://www.elastic.co/subscriptions !61
Elastic Stack 7.0 リリースウェビナー !62 • 日時:2019/04/23 12:00 - 13:00 • Elastic Stack 7.0で導入された 様々な新機能、改善について概要 を紹介予定
Elastic{ON} Tour Tokyo • 開催日:2019/05/30 • Elasticsearch、Kibana、Beats、 そしてLogstashの最新ロードマッ プが公開されます。 ElasticのエキスパートやElastic Stackユーザーから活用のヒント を得る機会にもなります。 !63
参考文献 • Elasticsearch - The Definitive guide ‒ http://www.elastic.co/guide/en/elasticsearch/guide/current/ index.html • 書籍(日本語) !64 ‒ データ分析基盤構築入門 ‒ Elasticsearch実践ガイド
参考文献 • 入門 監視 ―モダンなモニタリングのためのデザインパターン Mike Julian 著、松浦 隼人 訳 https://www.oreilly.co.jp/books/9784873118642/ !65
Thank you! ● Web : https://www.elastic.co/jp/ ● Forums : https://discuss.elastic.co/ ● Twitter : @johtani