IT技術に関するメモ(主にセキュリティ関連)

Elasticsearchの起動時にタイムアウトが発生し、起動しない

本ブログ記事にはアフィリエイト広告を利用しています

Ubuntu上に構築したELK環境のElasticsearchが起動していない事が多発したので原因調査と対応を行った内容を記載します。

環境

  • Ubuntu Server 22.04 LTS
  • Elasticsearch 8.4.3

発生したエラー

journalctlでログを確認します。

$ sudo journalctl --unit elasticsearch

発生していたエラーは以下の通りです。

systemd[1]: Starting Elasticsearch...
systemd[1]: elasticsearch.service: start operation timed out. Terminating.
systemd[1]: elasticsearch.service: Failed with result 'timeout'.
systemd[1]: elasticsearch.service: Unit process 812 (java) remains running after unit stopped.
systemd[1]: elasticsearch.service: Unit process 853 (controller) remains running after unit stopped.
systemd[1]: Failed to start Elasticsearch.
systemd[1]: elasticsearch.service: Consumed 1min 27.028s CPU time.z

上から三行目に「Failed with result ‘timeout’.」とありますので、タイムアウトしたことが伺えます。
また、一番下には「Consumed 1min 27.028s CPU time.z」とあるので、おおよそ90秒でタイムアウトしたと思われます。

対処法

まずは現在の設定を確認します。

$ sudo systemctl show elasticsearch | grep ^TimeoutStartUSec
TimeoutStartUSec=1min 30s

タイムアウト値が1分30秒となっており、エラーメッセージとほぼ一致しています。
この設定値を5分に延ばしたいので、以下のように300秒を設定します。

$ sudo mkdir /etc/systemd/system/elasticsearch.service.d

$ echo -e "[Service] \nTimeoutStartSec = 300" | sudo tee /etc/systemd/system/elasticsearch.service.d/startup-time
out.conf

<出力結果>
[Service]
TimeoutStartSec = 300

$ sudo systemctl daemon-reload

これでタイムアウトが5分に延びました。
OS再起動時の自動起動でElasticsearchがタイムアウトになることは無くなりました。


当サイトはさくらインターネットのレンタルサーバーを利用しています。