Cerebro は Elasticsearch 向けのオープンソースの管理ツールです。軽量で迅速に起動し、ブラウザーベースのインターフェースからクラスターヘルスを表示したり、インデックスデータを管理したり、検索クエリを実行したりできます。開発者や運用エンジニアは、これを使用して Elasticsearch クラスターを迅速に検査および管理します。
前提条件
開始する前に、以下が準備できていることを確認してください:
-
Alibaba Cloud Elasticsearch クラスター (後の手順でクラスターエンドポイントが必要になります)
-
Elasticsearch クラスターと同じ仮想プライベートクラウド (VPC) 内、またはパブリックネットワークアクセスが有効になっている Linux を実行する Elastic Compute Service (ECS) インスタンス
-
ECS インスタンスにインストールされた Java Development Kit (JDK) 1.8 以降。インストール手順については、「OpenJDK の手動デプロイ」をご参照ください。
クラスターエンドポイントの取得
Cerebro は、プライベートエンドポイントまたはパブリックエンドポイントのいずれかを介して Elasticsearch クラスターに接続します。
-
VPC プライベートエンドポイント:低レイテンシーと高い安定性のために内部ネットワーク経由で接続します。クラスター作成後にデフォルトで有効になります。
-
パブリックエンドポイント:インターネット経由で接続します。手動で有効にする必要があります。
ほとんどのセットアップでは、VPC プライベートエンドポイントを使用します。Cerebro を実行している ECS インスタンスがクラスターの VPC の外部にある場合にのみ、パブリックエンドポイントを有効にしてください。
パブリックネットワークアクセスの有効化
-
Elasticsearch コンソールにログインし、クラスターの [基本情報] ページに移動します。
-
左側メニューで、[設定と管理] > [セキュリティ設定] を選択し、パブリックネットワークアクセスを有効にします。クラスターのステータスが [Initializing] から [Valid] に変わるまで待ちます。
重要パブリックエンドポイントはクラスターのセキュリティを低下させます。IP アドレスホワイトリストを設定し、使用後は速やかにパブリックネットワークアクセスを無効にしてください。

IP アドレスホワイトリストの設定
Cerebro を実行しているデバイスの IP アドレスをクラスターのホワイトリストに追加します。ホワイトリストに登録された IP アドレスを持つデバイスのみがクラスターに接続できます。
ステップ 1:追加する IP アドレスの確認
| シナリオ | 追加する IP アドレス | 確認方法 |
|---|---|---|
| オンプレミスデバイスからの接続 | デバイスのパブリック IP アドレス。デバイスがローカルエリアネットワーク (LAN) (自宅や企業のネットワークなど) の背後にある場合は、LAN のパブリック Egress IP を使用します。 | デバイスで curl ipinfo.io/ip を実行します。 |
| 異なる VPC 内の ECS インスタンスからの接続 | ECS インスタンスのパブリック IP アドレス | ECS コンソールにログインし、インスタンスリストを確認します。 |
| 同じ VPC 内の ECS インスタンスからの接続 | ECS インスタンスのプライベート IP アドレス | ECS コンソールにログインし、インスタンスリストを確認します。 |
ステップ 2:IP アドレスをホワイトリストに追加
-
Elasticsearch コンソールにログインし、クラスターの [基本情報] ページに移動します。ナビゲーションペインで、[設定と管理] > [セキュリティ設定] を選択します。
-
[変更] をクリックして、ホワイトリストダイアログボックスを開きます。

-
デフォルトグループの右側にある [設定] をクリックし、IP アドレスを追加します。
-
複数の IP アドレスまたは CIDR ブロックは、カンマで区切ります。前後にスペースは入れません。
-
1 つのクラスターは、最大 300 の IP アドレスまたは CIDR ブロックをサポートします。
-
別のグループを作成するには、[IP ホワイトリストグループの追加] をクリックします。グループは IP アドレスの管理専用です。すべてのグループの IP は同じアクセス権限を共有します。
重要ホワイトリストを
0.0.0.0/0または::/0に設定しないでください。これらの設定は任意の IP アドレスからのアクセスを許可し、重大なセキュリティリスクをもたらします。一部のクラスターバージョン (7.16 や 8.5 など) やリージョンでは、これらの値はサポートされていません。IPv6 ホワイトリストのサポートは、中国 (杭州) リージョンの v2 デプロイメントアーキテクチャを使用するクラスターに限定されます。サポートされている形式:
タイプ 形式 例 IPv4 単一アドレス A.B.C.D192.168.0.1IPv4 CIDR ブロック A.B.C.D/N192.168.0.0/24IPv4 すべて拒否 — 127.0.0.1IPv4 すべて許可 (高リスク) — 0.0.0.0/0IPv6 単一アドレス — 2401:XXXX:1000:24::5IPv6 CIDR ブロック — 2401:XXXX:1000::/48IPv6 すべて拒否 — ::1IPv6 すべて許可 (高リスク) — ::/0
-
-
[確認] をクリックします。

Cerebro のインストールとクラスターへの接続
1. Cerebro のインストールと設定
ECS インスタンスに接続します。以下の手順では Linux システムを使用します。接続手順については、「ECS インスタンスへの接続」をご参照ください。
-
ECS インスタンスに JDK 1.8 以降をインストールします。「OpenJDK の手動デプロイ」をご参照ください。
-
Cerebro パッケージをダウンロードして展開します。
この例では v0.9.0 を使用します。最新バージョンを使用するには、Cerebro のリリース を確認し、ダウンロード URL を適宜更新してください。
# Cerebro v0.9.0 のダウンロード wget https://github.com/lmenezes/cerebro/releases/download/v0.9.0/cerebro-0.9.0.tgz # パッケージの展開 tar -zxvf cerebro-0.9.0.tgz -
Cerebro の設定ファイルを開きます。
vim cerebro-0.9.0/conf/application.conf -
hostsパラメーターを設定して Cerebro が Elasticsearch クラスターを指すようにし、ファイルを保存します。Cerebro を複数のクラスターに接続するには、
hosts配列に複数のエントリをカンマで区切って追加します。パラメーター 説明 hostクラスターエンドポイント。プライベートアクセスには http://<VPC プライベートエンドポイント>:9200を、パブリックアクセスにはhttp://<パブリックエンドポイント>:9200を使用します。ES クラスターではデフォルトで HTTP が有効になっています。トラフィックを暗号化するには、[設定と管理] > [セキュリティ設定] で HTTPS を有効にします。HTTPS を有効にする前に、アプリケーションコードを更新して HTTPS 接続をサポートするようにしてください。既存の HTTP ベースのコードは動作しなくなります。nameElasticsearch クラスター ID。Elasticsearch コンソールのクラスターリストで確認できます。 usernameクラスターのユーザー名。デフォルトは elasticで、完全なクラスター権限を持っています。本番環境では、代わりに Elasticsearch X-Pack のロール管理 を使用して、権限範囲を限定した専用ユーザーを作成してください。password指定したユーザーのパスワード。 # 既知のホストのリスト hosts = [ #{ # host = "http://localhost:9200" # name = "Localhost cluster" # headers-whitelist = [ "x-proxy-user", "x-proxy-roles", "X-Forwarded-For" ] #} # 認証付きホストの例 { host = "http://es-cn-xxx.elasticsearch.aliyuncs.com:9200" name = "es-cn-xxx" auth = { username = "elastic" password = "xxx" } } ]
2. Cerebro サービスの起動
フォアグラウンドでの起動 (デバッグ用):
cd cerebro-0.9.0
bin/cerebro
Cerebro が正常に起動すると、ターミナルに確認メッセージが表示されます。
[root@VM01 cerebro-0.9.0]# bin/cerebro
[info] play.api.Play - Application started (Prod) (no global state)
[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0.0.0.0:9000
バックグラウンドでの起動 (本番環境用):
cd cerebro-0.9.0
nohup bin/cerebro > cerebro.log 2>&1 &
ログを表示するには: tail -f cerebro.log
サービスを停止するには: pkill -f cerebro
3. ブラウザーで Cerebro を開き、クラスターに接続
-
ECS セキュリティグループで、Cerebro にアクセスするデバイスの IP アドレスに対し、ポート 9000 へのインバウンドトラフィックを許可します。手順については、「セキュリティグループルールの追加」をご参照ください。
-
ブラウザーで
http://<ECS インスタンスのパブリック IP アドレス>:9000にアクセスします。 -
Cerebro のログインページに、
application.confで設定したクラスターが表示されます。接続するクラスターをクリックします。 -
接続後、Cerebro コンソールにクラスターヘルス、インデックス、その他の管理オプションが表示されます。
接続後、Cerebro コンソールにクラスターのステータスが green で表示されます。クラスターの概要には、ノード数 (2 ノード)、インデックス数 (22 インデックス)、シャード数 (44 シャード)、ドキュメント数、ストレージサイズが含まれます。概要の下には、各インデックスのシャード分布や、各ノードのヒープ、ディスク、CPU、ロードのメトリクスを表示できます。
Cerebro の使用に関する詳細については、「Cerebro ドキュメント」をご参照ください。
トラブルシューティング
Cerebro が起動しない
以下を確認してください:
-
JDK がインストールされていない、またはバージョンが 1.8 未満。
java -versionを実行して確認します。バージョンが 1.8 未満の場合は、互換性のある JDK をインストールしてください。 -
ポート 9000 が既に使用されている。
application.confでhttp.portを別の値に設定してポートを変更します。 -
起動スクリプトに実行権限がない。
chmod +x bin/cerebroを実行して権限を追加してください。
Elasticsearch クラスターへの接続に失敗した
以下を確認してください:
-
IP アドレスホワイトリストが設定されていない。Cerebro ホストの IP アドレスが Elasticsearch コンソールの正しいホワイトリスト (VPC プライベートまたはパブリック) に追加されていることを確認してください。
-
設定のエンドポイントまたはポートが正しくない。
application.confのhostの値がクラスターエンドポイントと一致し、ポート 9200 を使用していることを確認してください。 -
ECS セキュリティグループがトラフィックをブロックしている。セキュリティグループがポート 9200 (Elasticsearch) とポート 9000 (Cerebro) でのインバウンドトラフィックを許可していることを確認してください。
-
ユーザー名またはパスワードが正しくない。
application.confの認証情報が正しいことを確認してください。