今回は、Elastic StackのKibanaについての記事です。
Elastic Stackはデータ収集、蓄積、可視化を可能にするツール群です。その中でもKibanaは、可視化およびElastic Stack全体の制御といった役割を担うアプリケーションです。
Kibanaを使用する際に、ローカルPC(Kibanaが動いているPC)以外からアクセスできないという問題が稀に発生します。
Elastic Stackの機能を、1台のPCで完結させる場合はほとんどないとないと思います。なので、この問題を解決しないと、データを集めたものの中身が見れないといった状況になってしまいます。
そこで今回は、KibanaがローカルPC以外からアクセスできない問題を解決できるかもしれないTIPSを紹介していきます。
なお、今回紹介する手順は、Windows10環境のものです。Kibanaはオンプレ版でzipファイルのものを使用しています。
zipファイルでのElasticsearchとKibanaの構築方法は以下を参考にしてください。
1. ファイアウォールに通信がブロックされている?
まず考えられるのが、ファイアウォールにKibanaの通信をブロックされているという可能性です。
Kibanaはデフォルトで5601番のポートを使用します。なので、この通信を許可するように設定するか、使用するポートを変更することで、アクセスできるようになるかもしれません。
実際の手順を紹介します。
ファイアウォールで特定のポート番号の通信を許可する
まずは、特定ポートの通信を許可する方法を紹介します。
Windowsのスタートボタンを右クリックし、[システム]を起動します。
[詳細情報]の[Windowsセキュリティで詳細を確認する]をクリックします。
[ファイアウォールとネットワーク保護]をクリックします。
[詳細設定]をクリックします。
変更を許可するポップが出るのでそれを許可すると、以下の画面が出ます。ここに、Kibanaのポートを許可するルールを新たに追加します。
[受信の規則]から[新しい規則]を追加します。
[ポート]を選びます
今回はTCPなので上はデフォルトのままでいいです。そして、[特定のローカルポート]を選択し、Kibanaのポートである5601を入力します。
次の画面で接続を許可し、さらに進みます。
以下の画面では、許可する条件を指定します。デフォルトでは3つすべてにチェックが入っていますが、[パブリック]を含めるのはセキュリティ上あまりオススメできません。
最後に、今回作成した規則の名前と説明を入力して完了です。
これで一度Kibanaへのアクセスを試してみてください。だめなら、さらに記事を読み進めてみてください。
Kibanaの使用ポートを変更する
ファイアウォールのポート通信を許可する方法とは別に、Kibanaが使用するポートを変更するという対策もあります。
ただし、会社のファイアウォールなどでは、使用していないポートを開放したままなんてこともないと思うので、正直失敗に終わる可能性が高い対策です。
使用するポートを変更するには、Kibana.ymlを変更します。kibanaが起動中であれば、一度停止してから編集してください。
Kibana.ymlの最上部に”server.port : ○○”があるので、ここのコメントを外し、任意のポート番号を入力します。
図では、5603番を使用するように指定しています。
Kibanaを再起動し、アクセスしてみてください。
だめなら、さらに読み進めましょう。
2. ファイアウォールによるアプリケーションの許可
KibanaはNode.jsを使用しますが、ファイアウォールにこれが許可されていないために通信ができない可能性があります。
まずは、Node.jsがファイアウォールに許可されているかを調べます。
[コントロールパネル]→[システムとセキュリティ]→[Windowsファイアウォールによるアプリケーションの許可]の順に進みます。
すると以下のような画面が出てくるので、一覧からNode.jsを探し、通信が許可されているか調べます。
許可されていない場合は、[設定の変更]から右側のボックスにチェックを入れます。
Node.jsがリストにない場合
そもそもNode.jsがリストにない場合は、参照して追加します。
[設定の変更]→[別のアプリの許可]で以下の画面を表示させます。
[参照]から、KibanaのNode.jsを指定します。
Node.jsはkibanaの”node”フォルダにあります。
これでファイアウォールによるアプリケーションの許可設定は完了です。
Kibanaにアクセスできるようになりましたか?
まとめ
Elastic Stackは構築が非常に簡単で便利なツールです。ただ今回のようなトラブルが起こるのも事実で、これはElastic側ではどうすることもできません。
今回の記事が、少しでもトラブルシューティングの一助になれば幸いです。
ではでは👋