LoginSignup
2
1

More than 1 year has passed since last update.

[v8.5版] ElasticsearchとKibanaとElastic Agentの最速インストール手順 (試用環境として)

Last updated at Posted at 2022-12-28

はじめに

現時点(2022年12月)最新のversion 8.5.3を使って最速で自分のマシンにお試し用途のElasticsearch, Kibana, Elastic Agentをインストールする手順をご紹介します。Elastic Agentはインストールした上でログファイルを収集するところまでを実施します。

参考にしたElasticのインストールドキュメントは最後に掲載しますが、本記事ではそこから必要最小限の手順で実践したものです。


[重要]今回は試用環境や勉強用環境という目的で、一つのマシンで手順が完結するようにしています。実際のシステムとして使う際は正しく複数台構成等にして設計ください。以下のドキュメントが参考になります。
https://www.elastic.co/guide/en/elasticsearch/reference/current/high-availability.html

また、実際にシステムとして導入する際は、どちらかというとクラウド版のElastic Cloudを使えば上記のような設計が大分楽になるので、そちらの方がお勧めです。


今回の試用環境の構成について

Elastic Agentを使う場合、Fleet Serverを別途立てて、そこからElastic Agentに何の情報を収集するかを指示してもらうのが通常の構成です。以下Elasticのドキュメンテーションからの引用です。
image.png
出典:https://www.elastic.co/guide/en/fleet/8.5/fleet-server.html

ログ収集のためのElastic Agentは通常はElasticsearchとは別のサーバにインストールします。下のような感じです。(Elastic AgentがFilebeatを内部で起動してログ収集しています)
image.png

ただ、本手順は一つのマシンで全て試せるように、下のような構成で実施します。(本格的に利用する際はこのような構成はおすすめではありません)
image.png

今回使用するマシン環境

AWSのEC2を使いまして、Amazon Linux 2 Kernel 5.10のAMIを使いました。ただ、CentosやRHELでも同様の手順でできるはずです。
スペックはt2.medium (2 vCPU, 4GB Mem )にしています。

手順で利用するツールを事前にインストールしておきます 
sudo yum install perl-Digest-SHA -y
sudo yum install wget -y

Elasticsearchのインストール

以下のコマンドでRPMにてElasticsearchをインストールしてください。

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.3-x86_64.rpm
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.3-x86_64.rpm.sha512
shasum -a 512 -c elasticsearch-8.5.3-x86_64.rpm.sha512 
sudo rpm --install elasticsearch-8.5.3-x86_64.rpm

上記最後のコマンドの出力として色々表示されますが、今回の手順として最低限見ておくのは以下の2箇所です。

パスワードが生成されているので、メモしてください。後でKibanaにログインする際に使用します。

出力
The generated password for the elastic built-in superuser is : <password>

以下のコマンドでsystemdに登録し、Elasticsearchを起動します。

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service

起動後、Elasticsearchインストールベース内の以下のコマンドを実行して後ほどKibanaがElasticsearchにアクセスするためのトークンを発行します。出力されるトークン文字列は後ほど使用しますので、メモしておいてください。

sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

Kibanaのインストール

KibanaもRPMをダウンロードして、インストールしてください。

wget https://artifacts.elastic.co/downloads/kibana/kibana-8.5.3-x86_64.rpm
shasum -a 512 kibana-8.5.3-x86_64.rpm 
sudo rpm --install kibana-8.5.3-x86_64.rpm

以下でsystemd登録し、そしてKibanaを起動します。

sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service

Kibanaをスタートさせる前に、バインドさせるネットワークインターフェースについての設定変更を行います。

sudo vi /etc/kibana/kibana.yml
# =================== System: Kibana Server ===================
# Kibana is served by a back end server. This setting specifies the port to use.
#server.port: 5601

# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
#server.host: "localhost"

上記 #server.host: "localhost"server.host: "0.0.0.0"に変更し、リモートからKibanaにアクセスできるようにしてください。
その後、下のコマンドでKibanaをスタートさせます。

sudo systemctl start kibana.service

Kibana起動後、http://<マシンのip>:5601/にブラウザでアクセスし、以下の画面では前の手順でメモしておいたトークンをペーストしてください。
image.png

次の画面でVerification Codeの入力を求められます。
image.png
このコードは以下のコマンドを実行して取得し、数字をWeb画面に入力してください。

sudo /usr/share/kibana/bin/kibana-verification-code

次にログイン画面に遷移されるので、ここではusername: elastic , password: Elasticsearchインストール時出力されてメモしたパスワード を使ってログインしてください。
image.png

ログイン後、以下の画面が表示されたら、今回はExplore on my ownを押してください。
image.png

Fleet Serverのインストール

左のメニューを開き、下の方のManagement配下のFleetを開きます。
image.png

Add Fleet Serverボタンをクリックしてください。
image.png

Fleet Server hostには、https://<ホストのIP>:8220 という形式で入力してください。(IPはElastic AgentがFleet ServerにアクセスできるIPを設定します)
image.png

Fleet Serverをインストールするコマンドが表示されるので、コピーしてください。
image.png

サーバー上でコマンドをペーストして、実行してください。Elastic Agentがダウンロードされ、その中でFleet Serverが起動します。

サンプル(上で自分のコピーしたものを使ってください)
curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.5.3-linux-x86_64.tar.gz
tar xzvf elastic-agent-8.5.3-linux-x86_64.tar.gz
cd elastic-agent-8.5.3-linux-x86_64
sudo ./elastic-agent install \
  --fleet-server-es=https://172.31.6.148:9200 \
  --fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2VydmVyL3Rva2VuLTE2NzIyMDQyOTc3NzQ6QkFKUDhoLWRSemVxT0hhQ2dVSlpMZw \
  --fleet-server-policy=fleet-server-policy \
  --fleet-server-es-ca-trusted-fingerprint=ec2529ac3379673f4c5c964ae69c37fa27fbf2a7f594c357915882ed88154d79
出力
Successfully enrolled the Elastic Agent.
Elastic Agent has been successfully installed.

Tips:上記見て分かる通り、Fleet Server自身はElastic Agentの一部としてインストールされています。

コマンド実行後、以下のように表示されればFleet ServerからElasticsearchへの接続が成功しました。Continue enrolling ボタンを今回は押さないでください。
image.png

ログ収集のためのIntegrationsを追加

図の通り、Agent policiesタブを選択し、Fleet Server Policyができているので、それをクリックしてください。
image.png

Add integrationsボタンをクリックしてください。
image.png

Integrationsの画面では、custom logsで検索し、Custom Logsのボックスをクリックしてください。
image.png

Add Custom Logsのボタンをクリックします。
image.png

Log file pathに、ログ収集したいファイルパスを指定します。(本手順では後ほど、このログファイルを作成します。)
image.png

ここではそのままDeployを進めます。これでログ収集の設定がElastic Agentに反映されました。
image.png

ログ収集を試す

マシンのターミナルで、以下のようにして先ほど指定したログのファイルパスにログを出すようにします。5秒おきに日付をログしてます。

terminal
while true
do
date >> mylog.log
sleep 5
done
出力
Wed Dec 28 06:36:56 AM UTC 2022
Wed Dec 28 06:37:01 AM UTC 2022
...

左メニューからKibanaのDiscoverを開いてください。
image.png

上のサーチバーに`log.file.path : "/home/ec2-user/mylog.log" のようにログのパスを入力すると、収集されたログデータが出てきます。ただ、見ての通りログメッセージはこのままだとまだ確認できません。
image.png

ログメッセージはmessageフィールドに格納されているので、左側でmessageのプラスボタンを押し、これだけ表示するようにしましょう。

結果、このようにログが随時収集されていることが確認できました。
image.png

参考にしたドキュメント

参考にした製品ドキュメントは以下の通りです。

Elasticsearchのインストール
https://www.elastic.co/guide/en/elasticsearch/reference/8.5/rpm.html#install-rpm

Kibanaのインストール
https://www.elastic.co/guide/en/kibana/8.5/rpm.html#install-rpm

# 終わり
うまくできましたでしょうか? 同じようなOSのマシンさえ用意できれば、ステップ通り簡単に試せたはずです。Elastic Agentのところは、慣れが必要なところなので、この環境を参考にぜひ色々触ってみてください。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1