🌟

MacでElasticsearchをインストールして発生するエラーとその対処法まとめ(analysis-kuromoji含む)

に公開

ElasticsearchをmacOSにインストールし、日本語形態素解析用の analysis-kuromoji プラグインを導入する際に、いくつかのセキュリティエラーや通信エラーに遭遇しました。

この記事では、私が実際に遭遇したエラーと、その具体的な対処法をまとめます。

🔧 環境

  • macOS(Apple Silicon Mac mini)
  • Elasticsearch 7.17.4(公式バイナリからインストール)
  • Java: OpenJDK 17(Homebrewでインストール)

⚠️ エラー1:プラグインインストール時のGatekeeper警告

bin/elasticsearch-plugin install analysis-kuromoji

エラー内容:

Appleは、“jdk”にMacに損害を与えたり、プライバシーを侵害する可能性のあるマルウェアが含まれていないことを検証できませんでした。
これは、macOS の Gatekeeper によって java や Elasticsearch のバイナリがブロックされる場合に表示される警告です。

✅ 解決策:

検疫属性を解除します(※信頼できるファイルに対してのみ行ってください)。

sudo xattr -rd com.apple.quarantine /path/to/elasticsearch

/path/to/elasticsearch は Elasticsearch ディレクトリの実際のパスに置き換えてください(例:~/elasticsearch-7.17.4)。

再度プラグインをインストール:

bin/elasticsearch-plugin install analysis-kuromoji

⚠️ エラー2:HTTPアクセスが拒否される

Elasticsearch 起動後に以下のような警告が表示されました。

received plaintext http traffic on an https channel, closing connection

このエラーは、Elasticsearch が HTTPS を要求しているのに対し、HTTP でアクセスしようとした場合に出力されます。

✅ 解決策①:HTTPSでアクセス

curl -k https://localhost:9200

ただし、さらに次のような401エラーが出る可能性があります。

"reason":"missing authentication credentials for REST request [/]"

これはセキュリティ機能(xpack.security.enabled)が有効になっているためです。

✅ 解決策②:セキュリティ機能を無効化する

config/elasticsearch.yml に以下の設定を追記:

xpack.security.enabled: false

設定後に Elasticsearch を再起動します。

./bin/elasticsearch

再度アクセスすれば、今度はHTTPでもアクセスできます:

curl http://localhost:9200

📝 まとめ

エラー内容 解決方法
Gatekeeper によるバイナリ拒否 xattr -rd com.apple.quarantine で検疫解除
HTTPS強制によるHTTP拒否 curl -k https://localhost:9200 で回避、または xpack.security.enabled: false でHTTP対応
認証要求による401エラー xpack.security.enabled: false でセキュリティ機能を無効化(開発環境用)

🔚 おわりに

macOS で Elasticsearch を使う際、セキュリティ機能や Apple の Gatekeeper が邪魔をすることがありますが、設定変更や検疫解除で対応可能です。

特に日本語解析を目的とした analysis-kuromoji の導入は、事前にJavaとセキュリティ周りを調整しておくとスムーズです。

Discussion