Fleet ServerとElastic Agentのインストール

Elasticsearchをいろいろ試しているときの覚書。
Elastic Agent周りが分からなくなったので、もう一度インストールからやってみた。

環境: CentOS Steam 9, Elasticsearch 8.11.3, Kibana 8.11.3


1.Fleet Serverをインストール(RPMで失敗編)

手順メモ

  1. KibanaメニューからManagement | Fleetを表示。
    "Add Fleet Server"
  2. 今度はRPMでインストールしてみた。
    画面に表示されているコマンドを実行。
    # curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.11.3-x86_64.rpm
    # rpm -vi elastic-agent-8.11.3-x86_64.rpm
    # elastic-agent enroll  --fleet-server-es=https://es.hoge.jp  --fleet-server-service-token=AAE...w  --fleet-server-policy=fleet-server-policy --fleet-server-es-ca-trusted-fingerprint=544...601 --fleet-server-port=8220
  3. 「Error: fleet-server failed: context canceled」と表示されたけど無事インストールできたみたい。
  4. サービス起動。
    # systemctl enable elastic-agent
    # systemctl start elastic-agent
  5. 設定ファイルなど確認。
    参考: Installation layout | Fleet and Elastic Agent Guide [8.11] | Elastic

ブラウザでKibanaの画面を更新してみる。

FleetのAgents一覧画面に出ていない。
インストール時に出てたエラーが原因かな?

一旦アンインストールする。
# elastic-agent uninstall

Removing service.... FAILED

サービス確認して削除。
# systemctl status elastic-agent
# rm /usr/lib/systemd/system/elastic-agent.service

確認。
# systemctl daemon-reload
# systemctl list-unit-files -t service

他のファイルを削除。
参考: Installation layout | Fleet and Elastic Agent Guide [8.11] | Elastic
# rm -rf /usr/share/elastic-agent/
# rm -rf /etc/elastic-agent/

Kibanaの管理画面で作成されていたAgent Policiesは"Delete policy"する。

rpm一覧を確認して削除する(これを先にやればよかった)。
# rpm -aq | grep elastic
# rpm -e elastic-agent-8.11.3-1.x86_64


2.Fleet Serverをインストール(ソースからビルド)

RPMはCentOSでインストールに失敗することが分かったので、ソースからビルドする方法でもう一度インストールする。

KibanaのFleet管理画面で"Add Fleet Server"。

"Linux Tar"に表示されたコマンドを実行。
# cd /opt/software/
# curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.11.3-linux-x86_64.tar.gz
# tar xzvf elastic-agent-8.11.3-linux-x86_64.tar.gz
# cd elastic-agent-8.11.3-linux-x86_64
# ./elastic-agent install --fleet-server-es=http://1.2.3.4:9200 --fleet-server-service-token=AAEA...Zw --fleet-server-policy=fleet-server-policy --fleet-server-es-ca-trusted-fingerprint=5449c2...01 --fleet-server-port=8220

エラー

Installed as a system package, installation will not be altered.
Enrolling Elastic Agent with Fleet... FAILED
Error: failed to execute enroll command: fork/exec /usr/bin/elastic-agent: no such file or directory
For help, please see our troubleshooting guide at https://www.elastic.co/guide/en/fleet/8.11/fleet-troubleshooting.html

システムログに何も表示されてないから分からない。
一番最初にソースからビルドしたときは普通にインストールできたから、アンインストールを繰り返したから何か整合性が取れてないのかもしれない。

オプションなしで実行してみる。
# ./elastic-agent install

Fleet enrollment token:を入力したところで失敗する。
Elasticsearchに接続するためのトークンらしい。

もう一度"Add Fleet Server"をクリックして、今度は"Advanced"の方で進めてみる。

TLSは"Quick start"を選択。
"Generate token"
画面に表示されたコマンドを実行。
…やっぱりエラーで進まない。


時間切れ。また今度考える。


【2023/12/25追記】原因が分かった。

RPMパッケージでインストールしたあと、rpmコマンドでアンインストールしてなかったから。
下記コマンドを実行。
# rpm -aq | grep elastic
# rpm -e elastic-agent-8.11.3-1.x86_64


【関連記事】