Ketika saya mencoba menghubungkan ke Elasticsearch menggunakan
curl http://localhost:9200
itu berfungsi dengan baik.
Tapi ketika saya menjalankannya, curl http://IpAddress:9200
muncul kesalahan yang mengatakan
Gagal terhubung ke port localhost 9200: Sambungan ditolak
Bagaimana cara mengatasi kesalahan ini?
elasticsearch
chinna2580
sumber
sumber
curl -X GET "http://localhost:9200"
Jawaban:
Secara default, ini harus mengikat ke semua alamat lokal. Jadi, dengan asumsi Anda tidak memiliki masalah lapisan jaringan dengan firewall, satu-satunya pengaturan ES yang menurut saya perlu diperiksa adalah
network.bind_host
dan memastikannya tidak disetel atau disetel ke0.0.0.0
atau::0
atau ke alamat IP yang benar untuk jaringan Anda.Pembaruan: per komentar di ES 2.3 Anda harus mengatur
network.host
sebagai gantinya.sumber
network.bind_host
nilainya, membiarkannya tidak disetel adalah masalah saya.Edit
/etc/elasticsearch/elasticsearch.yml
dan tambahkan baris berikut:Ini akan "menghapus" parameter ini dan akan mengizinkan koneksi dari IP lain.
sumber
/Applications/elasticsearch-2.1.1/config/elasticsearch.yml
, dan parameter yang harus saya edit adalahnetwork.host
, bukannetwork.bind_host
.curl http://172.17.0.2:9200
. Anda akan mengenali bahwa alamat ip buruh pelabuhan yang umum digunakan.Mencoba semuanya di halaman ini, dan hanya instruksi dari sini yang membantu.
di
/etc/default/elasticsearch
, pastikan ini tidak dikomentari:pastikan
/var/lib/elasticsearch
dimiliki oleh pengguna elasticsearch:sumber
chown -R elasticsearch:elasticsearch /var/lib/elasticsearch/
dan tidak dikomentariSTART_DAEMON=true
sudo systemctl restart elasticsearch
seperti yang dijawab oleh @kalanit, memecahkan masalahDalam kasus saya, pencarian elastik dimulai. Tapi masih punya
Perintah berikut tidak berhasil
Untuk membuatnya berhasil, saya harus lari
Kemudian semuanya baik-baik saja.
sumber
sudo systemctl enable elasticsearch
.systemctl
bekerja dan layanan tidak?Mengapa Anda tidak memulai dengan baris perintah ini:
Saya melakukannya dan mendapatkan:
Kemudian saya mengedit
/etc/elasticsearch/jvm.options
file:Ini bekerja seperti pesona.
sumber
Tidak ada solusi yang diusulkan di sini yang berhasil untuk saya, tetapi yang akhirnya berhasil adalah menambahkan yang berikut ini ke
elasticsearch.yml
Setelah itu, saya memulai ulang layanan dan sekarang saya dapat
curl
melakukannya dari dalam VM dan dari luar. Untuk beberapa alasan aneh, saya harus mencoba beberapa variancurl
panggilan yang berbeda di dalam VM sebelum berhasil:Catatan: Saya menggunakan Elasticsearch 5.5 di Ubuntu 14.04
sumber
pastikan server dimulai. Saya telah melihat masalah ini ketika mesin virtual saya memiliki RAM yang terlalu kecil dan es tidak dapat dimulai.
di atas akan menunjukkan kepada Anda jika es memang sedang berjalan.
sumber
Untuk masalah ini, saya harus menggunakan:
sudo /usr/share/elasticsearch/bin/elasticsearch start
untuk bisa mendapatkan sesuatu di port 9200/9300 (sudo netstat -ntlp) dan respons ke:
curl -XGET http://localhost:9200
sumber
Edit
elasticsearch.yml
dan tambahkan baris berikutnetwork.host: 0.0.0.0
tidak berhasilsumber
Buka Dockerfile bawah elasticsearch folder dan memperbarui "network.host = 0.0.0.0" dengan "network.host = 127.0.0.1" . Kemudian mulai ulang penampung. Periksa koneksi Anda dengan curl.
sumber
Saya memiliki masalah yang sama menolak koneksi pada port 9200. Periksa status layanan elasticsearch dengan perintah
sudo service elasticsearch status
. Jika itu menampilkan kesalahan dan Anda membaca apa pun yang berhubungan dengan Java, mungkin masalahnya adalah memori jvm Anda. Anda dapat mengeditnya di/etc/elasticsearch/jvm.options
. Untuk mesin memori RAM 1GB di lingkungan Amazon, saya tetap menggunakan konfigurasi saya:Setelah mengatur itu dan memulai ulang layanan elasticsearch, itu berfungsi seperti pesona. Pemeriksaan Nmap dan UFW (jika Anda menggunakan firewall lokal) juga berguna.
sumber
Saya mengalami masalah serupa.
Inilah cara saya menyelesaikannya
Jalankan perintah layanan di bawah ini untuk memulai ElasticSearch
ATAU
Jika Anda masih mendapatkan kesalahan
Jalankan perintah layanan di bawah ini untuk memeriksa status ElasticSearch
ATAU
Jika Anda mendapatkan respon ( Aktif: aktif (berjalan) ) seperti di bawah ini maka Anda ElasticSearch aktif dan berjalan
Anda kemudian dapat menguji apakah node Elasticsearch Anda berjalan dengan mengirimkan permintaan HTTP ke port 9200 di localhost menggunakan perintah di bawah ini:
Jika tidak, jika Anda mendapatkan respons dengan respons yang berbeda, Anda mungkin harus melakukan debug lebih lanjut untuk memperbaikinya, tetapi menjalankan perintah di bawah ini, akan membantu Anda mendeteksi peringatan apa yang menahan layanan ElasticSearch dari awal.
ATAU
Jika Anda ingin menghentikan layanan ElasticSearch , cukup jalankan perintah layanan di bawah ini;
ATAU
N / B: Anda mungkin harus menjalankan perintah
sudo service elasticsearch status
ATAUsudo systemctl status elasticsearch
setiap kali menemukan kesalahan, untuk memberi tahu status layanan ElasticSearch .Ini juga berlaku untuk Kibana , jalankan perintah
sudo service kibana status
ATAUsudo systemctl status kibana
setiap kali Anda menemukan kesalahan, untuk memberi tahu status layanan Kibana .Itu saja.
Saya harap ini membantu.
sumber
Dalam hal ini, pertama-tama Anda perlu memeriksa versi java menggunakan perintah di bawah ini:
setelah menjalankan perintah ini Anda mendapatkan sesuatu seperti ini:
lalu gunakan perintah ini:
dan pilih versi di bawah ini
Enter untuk menyimpan pilihan saat ini [+], atau ketik nomor pilihan: 2
sumber
2 sen saya,
Saya baru saja mengikuti prosedur instal di Digital Ocean, ternyata paket yang tersedia di repo tidak up-to-date, saya menghapus semuanya dan mengikuti prosedur penginstalan langsung dari Elastic Search dan semuanya berfungsi sekarang, pada dasarnya perilaku di luar kotak aktif a localhost menunjuk ke 9200. Hal / masalah yang sama ditemukan dengan Kibana, solusi bagi saya juga, untuk menghapus semuanya dan hanya mengikuti prosedur mereka, Semoga ini menghemat dua jam (waktu yang saya habiskan untuk mencari tahu cara mengatur ELK!)
en
sumber
Perbarui jdk Anda ke versi minimum terbaru untuk elasticsearch Anda.
sumber
Ubah network.bind menjadi 0.0.0.0 dan http: port menjadi 9200. Alamat bind 0.0.0.0 berarti semua alamat IPv4 pada mesin lokal. Jika sebuah host memiliki dua alamat IP, 192.168.1.1 dan 10.1.2.1, dan server yang berjalan pada host mendengarkan 0.0.0.0, itu akan dapat dijangkau di kedua IP tersebut.
sumber
Jika Anda mengalami kesalahan Sambungan ditolak , cukup jalankan perintah di bawah ini untuk memeriksa status layanan ElasticSearch
Ini akan membantu Anda menguraikan status layanan ElasticSearch dan apa yang harus dilakukan.
sumber
Tidak berguna untuk 7.5.0 dan yang lebih baru.
sumber
Setelah menggunakan beberapa jawaban di atas, jangan lupa bahwa setelah penginstalan apt, reboot total mungkin dilakukan.
sumber
Hanya untuk menambahkan ini, saya telah menemukan banyak dokumen melalui google yang mengatakan untuk mengatur network.host ke localhost.
Melakukan hal itu memberi saya koneksi terkenal yang ditolak. Anda harus menggunakan alamat IP (127.0.0.1), bukan FQDN.
Jeff
sumber
Pastikan bahwa port
9200
terbuka untuk kasus saya, itu adalah contoh amazon jadi ketika saya membukanya di grup keamanan saya, perintah curl berfungsi.sumber
Menonaktifkan SELinux berhasil untuk saya, meskipun saya tidak menyarankannya - saya melakukannya hanya untuk PoC
sumber
Masalah saya adalah saya tidak dapat bekerja dengan
localhost
saya perlu mengaturnya ke alamat IP localhostnetwork.bind_host: 127.0.0.1
sumber
Dalam kasus saya, masalahnya ada pada versi java, yang saya instal
open-jdk 11
sebelumnya. Itu menciptakan masalah saat memulai layanan. Saya mengubahnyaopen-jdk 8
dan itu mulai bekerjasumber