🌟
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