Loading...
ElasticsearchIT

Elastic Kibana v7.3.0でSystemctrlを用いた起動ができず再起動を繰り返す。

自分的メモです。

v6.7を使用してたのですが、そろそろv7に上げようと思ったらKibanaが上がりませんでした。

ちなみに環境

・CentOS7.5
・Kibana6.7‐>7.3.0
・Mem4GB

再起動を繰り返すKibana

systemctl statusのみを見ているとindexの読み込みでコケて8秒程度で無限に再起動するような動作に見えます。
尚、ブラウザからはいつものごとく「not yet」→「アクセス拒否されました」を繰り返す。

kibanaのデフォルトmessage出力は例のごとく/var/log/messagesなので見てみると

[root@ktk-hq-lin01 ~]# tail /var/log/messages
Aug 13 22:58:08 ktk-hq-lin01 kibana: {"type":"log","@timestamp":"2019-08-13T13:58:08Z","tags":["fatal","root"],"pid":31169,"message":"{ ExtractError: Failed to extract the browser archive\n    at err (/usr/share/kibana/x-pack/legacy/plugins/reporting/server/browsers/extract/unzip.js:14:23)\n    at /usr/share/kibana/node_modules/extract-zip/index.js:87:24\n    at WriteStream.<anonymous> (/usr/share/kibana/node_modules/extract-zip/index.js:185:24)\n    at WriteStream.emit (events.js:194:15)\n    at lazyFs.open (internal/fs/streams.js:272:12)\n    at FSReqWrap.oncomplete (fs.js:141:20)\n  name: 'ExtractError',\n  cause:\n   { Error: EACCES: permission denied, open '/var/lib/kibana/headless_shell-linux/headless_shell'\n     errno: -13,\n     code: 'EACCES',\n     syscall: 'open',\n     path: '/var/lib/kibana/headless_shell-linux/headless_shell' },\n  isBoom: true,\n  isServer: true,\n  data: null,\n  output:\n   { statusCode: 500,\n     payload:\n      { statusCode: 500,\n        error: 'Internal Server Error',\n        message: 'An internal server error occurred' },\n     headers: {} },\n  reformat: [Function],\n  [Symbol(SavedObjectsClientErrorCode)]: 'SavedObjectsClient/generalError' }"}
Aug 13 22:58:08 ktk-hq-lin01 kibana: {"type":"log","@timestamp":"2019-08-13T13:58:08Z","tags":["info","plugins-system"],"pid":31169,"message":"Stopping all plugins."}
Aug 13 22:58:08 ktk-hq-lin01 kibana: {"type":"log","@timestamp":"2019-08-13T13:58:08Z","tags":["info","plugins","translations"],"pid":31169,"message":"Stopping plugin"}
Aug 13 22:58:08 ktk-hq-lin01 kibana: FATAL  ExtractError: Failed to extract the browser archive
Aug 13 22:58:08 ktk-hq-lin01 systemd: kibana.service: main process exited, code=exited, status=1/FAILURE
Aug 13 22:58:08 ktk-hq-lin01 systemd: Unit kibana.service entered failed state.
Aug 13 22:58:08 ktk-hq-lin01 systemd: kibana.service failed.
Aug 13 22:58:09 ktk-hq-lin01 systemd: kibana.service holdoff time over, scheduling restart.
Aug 13 22:58:09 ktk-hq-lin01 systemd: Stopped Kibana.
Aug 13 22:58:09 ktk-hq-lin01 systemd: Started Kibana.

あーもう滅茶苦茶だよ・・・ポイントは赤字のエラーメッセージ。

解決方法

Elasticちゃんがやりがちないつものガバアップデートですがこのエラーはv7以降、Kibana内部で保持するデータを保存するディレクトリが自身で作れない為発生する事象のようです。

そのファイルがこちら

/usr/share/kibana/data

このディレクトリは確かv7から増えたものなのですが、rpmでインストールすると配下のパーミッションがrootに、
そしてkibanaのsystemdはkibanaユーザー指定の為ディレクトリが作れずに再起動を繰り返します。
しかも./dataを作るのは初回のみの模様。

1回起動に失敗したら自分で作ってあげる必要があるらしいです。

mkdir /usr/share/kibana/data
chown kibana.kibana /usr/share/kibana/data

これで良し!
※というか/usr/share/kibana配下をすべてkibanaユーザーにしちゃってもいいかもです。

ちなみに(間違った解決策)

作れないなら作れるようにしてあげればいいじゃん!
と思ってsystemdの実行ユーザーをrootにしたらこうなりました。

[root@ktk-hq-lin01 ~]# systemctl status kibana
● kibana.service - Kibana
   Loaded: loaded (/etc/systemd/system/kibana.service; enabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since 火 2019-08-13 23:02:16 JST; 2s ago
  Process: 2290 ExecStart=/usr/share/kibana/bin/kibana -c /etc/kibana/kibana.yml (code=exited, status=1/FAILURE)
 Main PID: 2290 (code=exited, status=1/FAILURE)

 8月 13 23:02:16 ktk-hq-lin01.ktk.szkhaven.com systemd[1]: kibana.service: main process exited, code=exited, status=1/FAILURE
 8月 13 23:02:16 ktk-hq-lin01.ktk.szkhaven.com systemd[1]: Unit kibana.service entered failed state.
 8月 13 23:02:16 ktk-hq-lin01.ktk.szkhaven.com systemd[1]: kibana.service failed.
 8月 13 23:02:16 ktk-hq-lin01.ktk.szkhaven.com systemd[1]: kibana.service holdoff time over, scheduling restart.
 8月 13 23:02:16 ktk-hq-lin01.ktk.szkhaven.com systemd[1]: Stopped Kibana.
 8月 13 23:02:16 ktk-hq-lin01.ktk.szkhaven.com systemd[1]: start request repeated too quickly for kibana.service
 8月 13 23:02:16 ktk-hq-lin01.ktk.szkhaven.com systemd[1]: Failed to start Kibana.
 8月 13 23:02:16 ktk-hq-lin01.ktk.szkhaven.com systemd[1]: Unit kibana.service entered failed state.
 8月 13 23:02:16 ktk-hq-lin01.ktk.szkhaven.com systemd[1]: kibana.service failed.

どうやらrootユーザーでは実行できなくなったらしい。

2時間くらいはまりました。これだからelasticはやめられないぜ

ちなみに海外でも事例がありました。
先にこれにたどり着いていれば・・・

Unable to start kibana.service using systemctl