Mulai dari v2.0, Elasticsearch secara default hanya mendengarkan di localhost, tetapi saya ingin membuat permintaan di luar localhost.
Misalnya, permintaan seperti ini diperbolehkan:
http://localhost:9200/
Tapi ini bukan:
http://server_name:9200/
(dari luar server, misalnya: komputer lokal di LAN yang sama).
Terima kasih atas bantuan Anda.
elasticsearch
Abraham Duran
sumber
sumber
Jawaban:
In
config/elasticsearch.yml
putsumber
/etc/elasticsearch/elasticsearch.yml
dan isinya:network.host: ["0.0.0.0"]
T_T
C:\ProgramData\Elastic\Elasticsearch\config
lokasinya. Jika Anda ingin menyambung secara terprogram ke Elasticsearch, Anda mungkin perlu menyetelnyatransport.host: 0.0.0.0
dielasticsearch.yml
file.Secara default transport http dan transport elasticsearch internal hanya mendengarkan localhost. Jika Anda ingin mengakses Elasticsearch dari host selain localhost, coba tambahkan konfigurasi berikut di config / elasticsearch.yml .
Di sini, network.host sebagai 0.0.0.0 memungkinkan akses dari sembarang host dalam jaringan.
sumber
elasticsearch.yml
fileUbah nama file elasticsearch.yml menjadi elasticsearch.json di dalam folder config dan tambahkan:
Pilihan lainnya adalah memberikan pengaturan secara eksternal baik menggunakan ES_JAVA_OPTS atau sebagai parameter ke perintah elasticsearch, misalnya:
$ elasticsearch -Des.network.host=10.0.0.4
Pilihan lainnya adalah mengatur es.default. awalan, bukan es. prefix, yang berarti setelan default hanya akan digunakan jika tidak disetel secara eksplisit di file konfigurasi.
Pilihan lainnya adalah dengan menggunakan
${...}
notasi dalam file konfigurasi yang akan menghasilkan pengaturan lingkungan, misalnya:Lokasi file konfigurasi dapat disetel secara eksternal menggunakan properti sistem:
$ elasticsearch -Des.config=/path/to/config/file
Untuk info lebih lanjut, lihat https://www.elastic.co/guide/en/elasticsearch/reference/1.4/setup-configuration.html
sumber
elasticsearch.yml
menjadielasticsearch.json
karena yang pertama, hmmm, YAML dan yang kedua adalahJSON
??Seperti yang disebutkan @arsent, tambahkan alamat ip itu ke file konfigurasi:
Jay juga menambahkan poin penting - jika Anda menggunakan firewall, ingatlah untuk menambahkan aturan yang mengizinkan lalu lintas ke port tersebut.
Jika Anda ingin mengizinkan server master mengakses ES melalui http, tambahkan aturan yang hanya mengizinkan akses dari alamat tertentu itu. Misalnya, Anda menggunakan ufw, lalu jalankan perintah ini untuk menambahkan port Anda:
Ganti xxx.xxx.xxx.xxx dengan alamat IP server master Anda dan zzzz dengan port yang Anda konfigurasikan
config/elasticsearch.yml
Direkomendasikan untuk menggunakan port kustom dan tidak menyimpan default 9200
Untuk mengujinya, SSH ke server master Anda dan ping ip ES dengan port yang benar untuk melihat apakah Anda mendapatkan respons:
Anda juga dapat memverifikasi ES tidak dapat diakses dari IP lain dengan mencobanya menggunakan browser Anda.
Ada artikel bagus yang menunjukkan cara mengatur ES di Ubuntu di DigitalOcean
sumber
Di /etc/elasticsearch/elasticsearch.yml tetapkan nilai berikut:
network.host: [ localhost, _site_ ]
Opsi ini memungkinkan Anda untuk mengakses dari host lokal dan dari semua komputer di jaringan lokal (192.168.XX), tetapi tidak dari luar.
Baca lebih lanjut tentang ini dan opsi lain, baca dokumentasi
sumber
Di mesin jarak jauh tempat elasticsearch diinstal, tambahkan saja dua konfigurasi di bawah ini
/etc/elasticsearch/elasticsearch.yml
Diuji di elasticsearch 6.8.3 dan AMI Linux AWS EC2 sebagai mesin jarak jauh
sumber
Masuk
/etc/elasticsearch/elasticsearch.yml
:sumber
Ganti localhost dengan 0.0.0.0 di dua tempat.
Pergi
/etc/elasticsearch/elasticsearch.yml
. Cari nilai di network.host dan ubah ke 0.0.0.0Ini adalah langkah jika Anda menggunakan Kibana. Pergi
/etc/kibana/kibana.yml
. Cari nilai di server.host dan ubah ke 0.0.0.0Sekarang Anda mengakses akses jarak jauh dengan alamat IP dan host.
sumber
Masuk
config/elasticsearch.yml
, masukkannetwork.host: 0.0.0.0
sebagai kata @arsent. Dan juga tambahkan Aturan Masuk di firewall untuk port ElasticSearch (9200 ByDefault).Ini bekerja di ElasticSearch versi 2.3.0
sumber
Untuk ElasticSearch 7.8 dan yang lebih baru
Periksa apakah Anda berada di satu node. tambahkan baris berikut
Untuk mengakses server Elasticsearch dari komputer atau aplikasi lain, lakukan perubahan berikut pada node
C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml file:
Tambahkan baris berikut
Suatu saat Anda mungkin perlu Mengaktifkan CORS
Ini file yml lengkap saya
sumber
Selain pengaturan
network.host : 0.0.0.0
mungkin perlu menyetel parameter berikut
Semua pengaturan masuk
elasticsearch/elasticsearch.yml
sumber