Taste of Tech Topics

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

Elastic CloudでObservabilityを簡単に始める 2024年版

こんにちは、Elastic認定資格3種(※)を保持しているノムラです。
※Elastic社の公式認定資格(Elastic Certified Engineer / Elastic Certified Analyst / Elastic Certified Observability Engineer)

Elastic Stack (Elasticsearch) Advent Calendar 2024の13日目のブログ記事になります。
qiita.com

Elastic CloudはElastic社が提供しているSaaSサービスで、クラウドプロバイダはAWS、Azure、GCP等をサポートしています。
最新バージョンのクラスタ構築や、既存クラスタのバージョンアップを数クリックで実施できるため、導入がお手軽です。

本記事ではElastic Cloudを利用してAWSのリソース・メトリック監視/ログ監視/死活監視を簡単に始める方法について手順ベースで紹介します。

はじめに
1. Elastic AWS Integrationのインストール
2. リソース・メトリック監視
3. ログ監視
4. 死活監視
まとめ

はじめに

以下本記事ではElastic Cloud(Elasticsearch Service)の名称を統一して「Elastic Cloud」で記載します。
またElastic Cloudと監視対象のAWS各サービスの構築手順/権限設定については割愛します。

Elastic Cloudの構築手順について不明な方は、以下の記事を参照ください。
AWSでElastic Cloudを利用する 2024年版(構築編) - Taste of Tech Topics
AzureでElastic Cloudを利用する 2024年版(構築編) - Taste of Tech Topics

構成イメージ

今回Elastic Agentを利用してAWSのリソース・メトリック監視/ログ監視/死活監視を実現します。

構成イメージ

1.Elastic AWS Integrationのインストール

(1) 関連ダッシュボード等のインストール

「Install AWS」を押下し関連資材をインストールします

インストールすると関連ダッシュボード/APIリファレンス等が表示されます

(2) EC2にElastic Agentをインストール

「Add Amazon EC2」を押下し遷移後、画面下部の「Install Elastic Agent」を押下しAgentのインストールを開始します


手順「①Install Elastic Agent on your host」に従って、EC2上でコマンドを実行しElastic Agentをインストールします。
手順通り実行すると、以下の通りAgentが登録されます。

(3) AWS Integrationの設定

そのまま画面下部の「Add the integration」を押下すると、AWS Integrationの設定画面に遷移します。
今回は以下の設定を行います。

  1. Collect EC2 logs from CloudWatchをオンに設定
  2. CloudWatch Logs の監視対象ログが登録されているARNを設定
  3. Collect EC2 metricsのCollection Periodを「1m」に設定
  4. Advanced Settingからアクセスキーとシークレットキーを入力

「Save and Continue」を押下後、「Save and deploy changes」を押下しAWS Integrationの設定をElastic Agentに反映します。

(4) AWS Integrationによるデータ登録の確認

上記までの操作でElastic Agent経由でEC2のメトリクスと、CloudWatch Logsに格納されているEC2のログが確認可能になりました。

2.リソース・メトリック監視

まずは登録したEC2のリソース・メトリクスを確認していきます。

(1) Kibanaダッシュボード画面にアクセス

Kibana画面左のメニューから[Dashboards]を選択し「[Elastic Agent] Input Metrics」を押下すると以下のダッシュボードが表示されます。

このダッシュボードからサービス毎のダッシュボードに遷移可能です。
今回はEC2とCloudWatchのみを対象にリソース・メトリックを収集していますが、他クラウド環境/オンプレ環境のリソース情報も集約して監視/分析可能な点がElastic Cloud(Elastic Stack)の利点だと思います。

(2) EC2のリソース・メトリックを確認

同様に「[Metrics AWS] EC2 Overview」ダッシュボードを利用すると、より詳細にEC2インスタンス毎のCPU使用率等のメトリクスを確認することが可能です。

3.ログ監視

ログ監視にはLogs Explorerを利用します。

(1) Logs Explorerによるログ監視

Logs Explorerでは以下のようにログのタイムスタンプとそのSummaryが表示されます。何か問題が発生した際にはログメッセージやステータスを絞りこんで分析していくことで状況確認に利用可能です。
キャプチャでは特定ホストのErrorログのみを表示しています。

Elasticsearchの特徴になりますが、大量のログに対して絞り込みを行っても素早くレスポンスが返ってくるのは業務上快適だと思います。
このようにLogs Explorerで簡単にログの確認/分析が可能です。

ただし実際の運用では常時ダッシュボード/Logs Explorerを監視しているわけにはいきません。
そのためAlertsを設定することで特定条件での検知/通知が可能です。
Alertsの詳細/設定方法については以下ドキュメントをご参照ください。
Create and manage rules | Elastic Observability [8.16] | Elastic

4.死活監視

最後に死活監視も実施していきます。死活監視にはSynthetic monitoringの機能を利用します。
Synthetic monitoringの詳細については以下のドキュメントをご参照ください。
Synthetic monitoring | Elastic Observability [8.16] | Elastic

(1) Synthetic monitoring画面へアクセス

Kibana画面左のメニューから[Applications] ⇒ [SYNTHETICS] ⇒ [Monitors]を選択しSynthetic monitoringの画面へ遷移します。

(2) 監視対象を設定

画面上部の「select a different monitor type」を押下し、以下の通り設定し「Create Monitor」を押下します。

項目名 設定値 今回の設定値
Select a monitor type HTTP PingTCP Ping HTTP Ping
URL <監視対象URL> LogstashサーバURL
Monitor name 任意の名前 LogstashServer
Locations 監視対象が起動している地域 US East

(3) 監視結果を確認

以下のように監視対象の死活状態が表示されます。

Synthetic monitoringによってKibana画面の設定のみで対象ホストの死活監視が可能になり、簡単に死活監視が実現可能になりました。
(これまではHeartbeatというBeatsを監視対象サーバにインストールする必要がありました)

(4) 検知/通知の設定

Synthetic monitoringではKibana画面から簡単にAlertsのオン・オフが可能です。
画面の「LogstashServer」を押下するとキャプチャのように詳細画面が表示されます。

詳細画面右上の「Enable(all location)」のトグルをオン・オフすることでAlertsを有効化・無効化できます。
メールやSlackなどで通知が簡単に飛ばすことができ便利です。

まとめ

Elastic Cloudで簡単にAWS上のサービスに対してObservabilityを実現できました。
途中にも記載しましたが他クラウド環境/オンプレ環境の情報も集約してリソース・メトリック監視/ログ監視/死活監視を実現できるのはElastic Cloud(Elastic Stack)の利点だと思います。

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

  • Azure OpenAI/Amazon Bedrock等を使った生成AIソリューションの開発
  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • マイクロサービス、DevOps、最新のOSSクラウドサービスを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

 

少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。

www.wantedly.com