Elasticのコンサルタントの杉森です。前回Elasticsearchをビルドしたので、今回はKibanaをビルドしたいと思います。
ElasticsearchはJavaのプロダクトでしたが、KibanaはNode.js / Typescriptで実装されていますので、ビルドのツールキットが違ってきます。とはいえひとまずビルドしてみましょうという記事ですので気張らずに行きましょう。
前提
この記事の前提は以下とします。
- Macのローカルでビルド(IntelMac, macOS Montereyで確認しています)
- Homebrewインストール済み
Kibanaのチェックアウト
何はともあれコードをチェックアウトします。Kibanaはまた巨大なリポジトリなので結構時間かかります。
$ git clone git@github.com:elastic/kibana.git
本記事執筆時点でのHEADは 84db06c15d04bcaa011c41daf13ad1521deba604 でした。
ビルドツールのインストールとビルド
まずはNodeをインストールするためにnvmをインストールしましょう。すでにnodebrewなどを使っているようでしたらそちらでもおそらく問題ありません。homebrewは入ってる前提で:
$ brew install nvm
$ source $(brew --prefix nvm)/nvm.sh
$ echo 'source $(brew --prefix nvm)/nvm.sh' >> ~/.bash_profile
こちら参考にさせて頂きました。 > https://qiita.com/ffggss/items/94f1c4c5d311db2ec71a#hombrew%E3%81%AE%E5%A0%B4%E5%90%88
Kibanaのソースコードに含まれている.node-version
で、必要なバージョンを確認します。
$ cat .node-version
16.16.0
ということなので、16.16.0をインストールしましょう。
$ nvm install v16.16.0
$ nvm alias default v16.16.0
確認します。
$ node --version
v16.16.0
インストールできました。
そうしたらNodeのパッケージマネージャーであるところのyarnをインストールします。
$ npm install -g yarn
で、yarnで依存のライブラリをとってきてビルドします。
$ yarn kbn bootstrap
コーヒーを淹れてしばらく待ちます。そういえばCoffeeScriptってありましたけどすっかり聞かなくなりましたよね。実はまだ使われている現場もあるのでしょうか。Rails3くらいにバンドルされていた気がするので、その辺りで作られた社内システムがまだ生きていたり? Google Trendsでは2012年がピークのようです。現在ではTypeScript一択でしょうか。そういえばyarnのレイヤーにもgruntとかgulpとかwebpackとか色々ありましたよね。その辺が出てきた頃から私はフロントエンドを触る機会が少なくなって、現在に至る勢力争いについてはよく把握してませんが……
お、ビルドがようやく終わりました。
...
✨ Done in 445.66s.
起動
ではKibanaを起動しますがその前にElasticsearchが動いていないといけません。この時、以下のコマンドでこのKibanaのディレクトリからテスト用のElasticsearchを起動することができます。Elasticsearch側の設定に特に関心がなければこれで大丈夫でしょう。
yarn es snapshot
ではKibanaを起動します。別のターミナルから以下を実行して下さい。
yarn start
これまた初回はそれなりに時間がかかりますが、以下のログが出るまで待ちましょう。
np bld log [18:53:09.696] [success][@kbn/optimizer] 133 bundles compiled successfully after 102.1 sec, watching for changes
めでたく起動しましたので、http://localhost:5601/にアクセスします。ログイン画面になりますが、以下のユーザーとパスワードで入れます。
- User: elastic
- Password: changeme
お疲れ様でした。
もちろんconfig/kibana.yml
の書き換えることでElasticsearchの接続情報などの設定を変更できます。必要に応じて変更して下さい。