AWS EC2にElastic Stackを構築した手順と気づきの記録

BLOG

この記事では、Amazon EC2 上に Elastic Stack 8.x (Elasticsearch、Logstash、Kibana、Filebeat) をインストールしたときの手順を、備忘録として、またこれから同じことをやろうとしている方への参考としてまとめました。 実際に体験したつまずきポイントや工夫した点も交え、実践的な内容を目指しています。

本題に入る前に Elastic Stack とは?

各コンポーネントの役割は以下のとおりです。

  • Filebeat: EC2 サーバー内のログファイルを読み取る。
  • Logstash: Filebeat から受け取ったログを Elasticsearch 用に成形し転送する。
  • Elasticsearch: ログをインデックス化し、保存・検索できる状態にする。
  • Kibana: Elasticsearch に保存されたログをダッシュボードで可視化する。

Elastic Stack は、インフラ監視、アプリケーションパフォーマンス管理、セキュリティ分析など、幅広い用途で活用されています。

1. 前提条件の整理

  • 使用OS:Amazon Linux 2
  • インスタンスタイプ:t2.medium(2vCPU、4GB RAM)
  • 必要なポート:
    • 22(SSH用)
    • 5044(Filebeat→Logstash)
    • 9200(Elasticsearch)
    • 5601(Kibana)
  • Java 11が必要(Amazon Correttoを使用)

ここで気をつけたのは、初期設定でセキュリティグループにこれらのポートを忘れずに開けること。忘れると、後々アクセスできなくなって手間取ります。
Network setting –> Edit –> Security Group Rules

2. EC2インスタンスを起動

AWSマネジメントコンソールからEC2ダッシュボードに入り、「Launch instance」を選びました。

選択した構成

  • AMI:Amazon Linux 2(64-bit Arm)
  • インスタンスタイプ:t2.medium(コストパフォーマンスがよい)
  • キーペア作成:新しい.pemファイルを作成し、すぐに安全な場所に保存
  • ストレージ:20GB以上を推奨(ログが増えるので余裕をもたせました)

そしてセキュリティグループでは、自分のグローバルIPアドレスを指定して、前述のポートだけ開けました。

3. SSH接続と初期パッケージの準備

ターミナルから以下で接続:

その後、パッケージを最新にしてJava 11をインストール。

java -versionでちゃんと入ったか確認。

4. Elasticsearchをインストール

Elasticの公式リポジトリを登録し、インストールします。

以下の内容で.repoファイルを作成:

そしてインストール:

インストール中に表示されるメッセージの中にパスワードが書かれています。後で必要なのでメモっておきます。

設定ファイルの変更

以下を追加:

xpack.security.enabled: trueのまま進みます。

起動:

アクセス時はcurlにユーザー名とパスワードを指定:

設定ファイルは以下のようにしました。

有効にし起動させる。

5. Kibanaをインストール

起動と自動起動設定:

Elasticsearch 8.x 以降では、Kibana の内部動作に、広範な権限を持つ elastic ユーザーではなく、より権限が限定されたサービスアカウントトークンまたは専用のロールベースのユーザーアカウントを設定する必要があります。セキュリティ強化と不要な権限付与を防ぐための変更です。

kibana は “elastic” をユーザー名として使用できないため、専用の kibana ユーザーを新規作成します:

設定ファイル:

変更する箇所:

ブラウザでKibanaを確認。

Kibanaを起動する際に、usernameとpasswordの入力を求められます。このとき、elasticsearchのインストール中に画面に表示されたpasswordを入力します。

6. Filebeatの導入と連携

設定ファイル(重要!インデント注意):

elastic outputセッションでコメントアウトする箇所:

logstash outputセッションでアンコメントする箇所:

他、変える箇所:

起動してステータス確認:

ログを収集するシステムモジュールを有効に:

システムモジュール設定ファイルを開く:

以下のファイルセットが有効になっている(true に設定されている)ことを確認。

変更を反映するために、以下のコマンドを実行:

7. ダッシュボード連携と仕上げ

index managmentを設定:

Kibanaが立ち上がっている事を確認し、次Kibanaのdashboards と ingest pipelinesを設定。

インデックスをチェックして、Elasticsearch が Filebeat からデータを受信して​​いることを確認。

8. 動作確認

ブラウザ上のKibanaからDiscoverに移動し、filebeat-*を指定。

KibanaのDiscoverからfilebeat-*インデックスを確認できれば成功です!

最後に

Elastic Stackを使い始める方のために、構築手順と役立つ情報をまとめました。内容に誤りや不足があるかもしれません。ご意見やご質問があれば、問い合わせフォームよりご連絡ください。

以下のコマンドは役立ちました:

SSH接続が切断されないように、SSH config ファイルを編集して、スリープモードに入るまでの時間を延長します。

以下のブロックを追加: