Elasticsearch の Shield プラグインに問題があります。Elasticsearch をサービスとして実行するようにインストールしました。ポート 9200 で実行されていることがわかります。
Macターミナルに入るcurl http://localhost:9200
と、正しいelasticsearch出力が得られます...
最近、基本認証からシールド認証にアップグレードしようとしています。次のコマンドを使用して、シールドとライセンスをインストールしました。
/usr/share/elasticsearch/bin/plugin install license/latest
/usr/share/elasticsearch/bin/plugin install shield/latest
これにより、シールドとライセンスのプラグインが正常にインストールされます。それらは、Vagrant ボックスの /usr/share/elasticsearch/plugins ディレクトリに含まれています。
したがって、curl -XGET http://localhost:9200
もう一度使用しようとすると、次の応答が返されます。
{"error":{"root_cause":[{"type":"security_exception","reason":"REST リクエストの認証トークンがありません [/]","header":{"WWW-Authenticate":"Basic レルム=\"shield\""}}],"type":"security_exception","reason":"REST リクエストの認証トークンがありません [/]","header":{"WWW-Authenticate":"Basic realm= \"盾\""}},"ステータス":401}
これはいい。適切な認証がないとelasticsearchに到達できません。そこで、elasticsearch に対して認証するユーザーを作成したいと思います。次のコマンドを使用します。
sudo ./esusers useradd testuser -p password -r admin
これにより、管理者権限を持つパスワード「password」を持つユーザー「testuser」が作成されます。
次のコマンドを使用して、このユーザーが作成されたことを確認できます。
sudo ./esusers list
これは以下を返します:
テストユーザー: 管理者
そこで、このユーザーで再度 curl コマンドを実行してみます。
curl -u testuser:password -XGET http://localhost:9200
しかし、管理者ユーザーなしで試したときと同じエラー メッセージが表示されます。
ここでの問題は何ですか?管理者ユーザーが認証されないのはなぜですか?