আমি কীভাবে ইলাস্টিকসার্ক 2.0 তে দূরবর্তী অ্যাক্সেস / অনুরোধ সক্ষম করব?


97

V2.0 থেকে শুরু করে ইলাস্টিকসার্ক কেবল লোকালহোস্টে ডিফল্টরূপে শুনছে, তবে আমি লোকালহোস্টের বাইরে অনুরোধ করতে চাই।

উদাহরণস্বরূপ, এর মতো একটি অনুরোধ অনুমোদিত:

http://localhost:9200/

তবে এটি নয়:

http://server_name:9200/ (সার্ভারের বাইরে থেকে, যেমন: একই ল্যানে একটি স্থানীয় কম্পিউটার)।

আপনার সাহায্যের জন্য ধন্যবাদ.


6
এই উত্তরটি আপনাকে খুঁজছেন stackoverflow.com/questions/33412549/...
Val,

ধন্যবাদ! আমি ঠিক কী খুঁজছিলাম!
আব্রাহাম ডুরান

উত্তর:


152

ইন config/elasticsearch.ymlকরা

network.host: 0.0.0.0

4
network.host: 0.0.0.0 সমস্ত স্থানীয় নেটওয়ার্ককে এই নোডটিতে অ্যাক্সেসের অনুমতি দেয়। আমি অনুমান করি যে এটি উত্পাদন মোডের জন্য প্রস্তাবিত নয়।
ইসেঙ্গো

4
এর অর্থ সমস্ত আইপি ঠিকানা অনুমোদিত। নিরাপদ নয়!
ইয়াভুজ

4
আমার সেন্টোস সিস্টেমে ফাইলটি পাওয়া গেছে /etc/elasticsearch/elasticsearch.ymlএবং সামগ্রীটিতে:network.host: ["0.0.0.0"]
অ্যালিকেলজিন-কিলাকা

আমার জন্য কাজ করে না। ES এখনও চলছে 127.0.0.1T_T
E.Big

যারা উইন্ডোজে কনফিগার ফাইলটি সনাক্ত করতে পারেন না তাদের জন্য দয়া করে C:\ProgramData\Elastic\Elasticsearch\configঅবস্থানটি পরীক্ষা করুন । আপনাকে তা সেট করার প্রয়োজন হতে পারে আপনি Elasticsearch প্রতি প্রোগ্রামের সাথে সংযোগ স্থাপন করতে চান transport.host: 0.0.0.0মধ্যে elasticsearch.ymlফাইল।
কোজোট

59

ডিফল্টরূপে HTTP পরিবহন এবং অভ্যন্তরীণ স্থিতিস্থাপক পরিবহন কেবল লোকালহোস্টের শোনায়। যদি আপনি লোকালহোস্ট ব্যতীত অন্য হোস্ট থেকে ইলাস্টিকসার্ক অ্যাক্সেস করতে চান তবে কনফিগারেশন / ইলাস্টিকসার্চ.ইমিতে নিম্নলিখিত কনফিগারেশনগুলি যুক্ত করার চেষ্টা করুন ।

transport.host: localhost 
transport.tcp.port: 9300 
http.port: 9200
network.host: 0.0.0.0

এখানে, 0.0.০.০ হিসাবে নেট.কম নেটওয়ার্কের মধ্যে কোনও হোস্ট থেকে অ্যাক্সেসের অনুমতি দেয়।


4
ভার্চুয়ালবক্স হোস্ট মেশিন থেকে ইলাস্টিকের সাথে অতিথি যান অতিথি হয়ে সংযোগ স্থাপনের জন্য আমাকে সে সমস্ত মান স্পষ্টভাবে সেট করতে হয়েছিল। আপনাকে অনেক ধন্যবাদ!
টম

ইলাস্টিকসার্ক 7.1.0 এ পরীক্ষিত - সমাধানগুলি ভার্চুয়ালবক্সে ইএসের সাথে সংযোগ স্থাপনের কাজ করে।
ডিবি প্রসাদ

উপরের কনফিগারেশনটি
7.2.0 :

4
প্রায় প্রতি মাসে আমি এখানে এই কনফিগারেশনটি অনুলিপি করতে আসি: ডি
নীলেশ

ধন্যবাদ এটি আমাকে একটি টন সাহায্য করেছে। আমি একটি সংযোগ ব্যতিক্রম ইস্যু নিয়ে লড়াই করছিলাম; এবং অবশেষে elasticsearch.ymlফাইলটিতে এই লাইনগুলি যুক্ত করার পরে এটি কাজ করে
স্প্যান্সার ত্রিনহ

19

কনফিগার ফোল্ডারের অভ্যন্তরে ইলাস্টিকসার্চ.জসনে ইলাস্টিকসার্চ.আইএমএল ফাইলটির নাম পরিবর্তন করে যুক্ত করুন:

{
    "network" : {
        "host" : "10.0.0.4"
    }
}

অন্য বিকল্পটি হল ES_JAVA_OPTS ব্যবহার করে বা ইলাস্টিক সারণিটির পরামিতি হিসাবে বাহ্যিকভাবে সেটিংস সরবরাহ করা, উদাহরণস্বরূপ:

$ elasticsearch -Des.network.host=10.0.0.4

আরেকটি বিকল্প হল es.default সেট করা। এস এর পরিবর্তে উপসর্গ উপসর্গ, যার অর্থ ডিফল্ট সেটিংস কেবল তখনই ব্যবহৃত হবে যদি কনফিগারেশন ফাইলটিতে স্পষ্টভাবে সেট না করা হয়।

অন্য বিকল্পটি হ'ল ${...}কনফিগারেশন ফাইলের মধ্যে স্বরলিপিটি ব্যবহার করুন যা পরিবেশের সেটিংয়ের সমাধান করবে, উদাহরণস্বরূপ:

{
    "network" : {
        "host" : "${ES_NET_HOST}"
    }
}

সিস্টেম বৈশিষ্ট্য ব্যবহার করে কনফিগারেশন ফাইলের অবস্থানটি বাহ্যিকভাবে সেট করা যেতে পারে:

$ elasticsearch -Des.config=/path/to/config/file

আরও তথ্যের জন্য, https://www.elastic.co/guide/en/elasticsearch/references/1.4/setup-configration.html দেখুন


পেয়েছেন: থ্রেডের ব্যতিক্রম "মূল" BindTransportException [বাঁধতে ব্যর্থ [9300-9400]]; নেস্টেড: চ্যানেলএক্সেপশন [বাঁধতে ব্যর্থ: / 10.0.0.4:9400]
মাউন্ট্রিক্স

4
এটি কীভাবে করা যেতে পারে, আমি বলতে চাই, আমরা কেবল নামকরণ elasticsearch.ymlকরতে পারি না elasticsearch.jsonকারণ প্রথমটি, এইচএমএম, ওয়াইএএমএল এবং দ্বিতীয়টি JSON??
শুভম এ।

9

@ অস্থায়ী হিসাবে উল্লিখিত হিসাবে কনফিগ ফাইলে সেই আইপি ঠিকানা যুক্ত করুন:

sudo nano /etc/elasticsearch/elasticsearch.yml

জে একটি গুরুত্বপূর্ণ বিষয়ও যুক্ত করেছেন - আপনি যদি ফায়ারওয়াল ব্যবহার করেন তবে সেই বন্দরে ট্র্যাফিকের অনুমতি দেওয়ার জন্য একটি বিধি যুক্ত করতে ভুলবেন না।

আপনি যদি কোনও মাস্টার সার্ভারকে HTTP এর মাধ্যমে ES অ্যাক্সেস করার অনুমতি দিতে চান, তবে কেবলমাত্র সেই নির্দিষ্ট ঠিকানা থেকে অ্যাক্সেসের অনুমতি দেওয়ার জন্য একটি বিধি যুক্ত করুন। উদাহরণস্বরূপ, বলুন আপনি ufw ব্যবহার করছেন, তারপরে আপনার পোর্ট যুক্ত করতে এই আদেশটিটি চালান:

sudo ufw allow from xxx.xxx.xxx.xxx to any port zzzz

Xxx.xxx.xxx.xxx কে আপনার মাস্টার সার্ভারের আইপি ঠিকানা এবং zzzz এর পরিবর্তে আপনার পোর্টটি কনফিগার করেছেন config/elasticsearch.yml

এটি একটি কাস্টম পোর্ট ব্যবহার করার এবং ডিফল্ট 9200 না রাখার পরামর্শ দেওয়া হয়

এটি পরীক্ষা করতে, এসএসএইচকে আপনার মাস্টার সার্ভারে প্রবেশ করুন এবং ES আইপিকে সঠিক বন্দরের সাথে পিং করুন যদি আপনি কোনও প্রতিক্রিয়া পান তবে তা দেখুন:

curl -X GET 'http://xxx.xxx.xxx.xxx:zzzz'

আপনার ব্রাউজারের সাহায্যে অন্য আইপি থেকে ইএস অ্যাক্সেসযোগ্য তা যাচাই করতে পারেন।

আছে একটি চমৎকার নিবন্ধ যে দেখায় কিভাবে আপ ইএস উবুন্টু উপর DigitalOcean উপর সেট করতে


7

/Etc/elasticsearch/elasticsearch.yml এ নিম্নলিখিত মান সেট করুন:

network.host: [ localhost, _site_ ]

এই বিকল্পটি আপনাকে লোকালহোস্ট এবং স্থানীয় নেটওয়ার্কের সমস্ত কম্পিউটার (192.168.XX) উভয় থেকে অ্যাক্সেস করার অনুমতি দেয়, তবে বাইরে থেকে নয়।
এটি সম্পর্কে আরও পড়ুন এবং অন্যান্য অপশন ডকুমেন্টেশন পড়ুন


7

রিমোট মেশিনে যেখানে স্থিতিস্থাপক ইনস্টল করা আছে কেবল নীচে দুটি কনফিগারেশন যুক্ত করুন /etc/elasticsearch/elasticsearch.yml

network.host: xx.xx.xx.xx #remote elastic machine's internal IP
discovery.type: single-node

ইলাস্টিকসर्च 6.8.3 এবং এডাব্লুএস ইসি 2 লিনাক্স এএমআই দূরবর্তী মেশিন হিসাবে পরীক্ষিত



2

লোকালহোস্টকে দুটি জায়গায় 0.0.0.0 দিয়ে প্রতিস্থাপন করুন ।

  1. এতে যান /etc/elasticsearch/elasticsearch.ymlনেটওয়ার্কসর্বকালের মানটির সন্ধান করুন এবং এটি 0.0.0.0 এ পরিবর্তন করুন

  2. আপনি যদি কিবানা ব্যবহার করেন তবে এটি পদক্ষেপ। এতে যান /etc/kibana/kibana.ymlসার্ভার.হোস্টে মানটির সন্ধান করুন এবং এটি 0.0.0.0 এ পরিবর্তন করুন

এখন আপনি আইপি ঠিকানা এবং হোস্টের মাধ্যমে দূরবর্তী অবস্থান অ্যাক্সেস করতে পারেন।


নিম্নলিখিত কমান্ডগুলি যুক্ত করা জরুরী: ufw 9200 এবং ufw 5601 এর অনুমতি দেয়
জোসে টি।

1

ইন config/elasticsearch.yml, network.host: 0.0.0.0সরস হিসাবে বলা হিসাবে। এবং আপনার ইলাস্টিক অনুসন্ধান পোর্টের জন্য ফায়ারওয়ালে ইনবাউন্ড বিধি যুক্ত করুন (9200 বাই ডেফাল্ট)।

এটি ইলাস্টিক অনুসন্ধান সংস্করণ ২.৩.০ এ কাজ করেছে


1

জন্য ElasticSearch 7.8 এবং আপ

আপনি একক নোডে আছেন কিনা তা পরীক্ষা করুন। নিম্নলিখিত লাইন যুক্ত করুন

cluster.initial_master_nodes: node-1

অন্য কম্পিউটার বা অ্যাপ্লিকেশন থেকে ইলাস্টিক সার্চ অ্যাক্সেস করতে নোডের নিম্নলিখিত পরিবর্তনগুলি করুন C:\ProgramData\Elastic\Elasticsearch\config\elasticsearch.yml file:

নিম্নলিখিত লাইন যুক্ত করুন

network.host: ["0.0.0.0", 127.0.0.1", "[::1]"]
network.bind_host: 0.0.0.0
network.publish_host: 0.0.0.0
http.host: 0.0.0.0

কিছু সময় আপনাকে সিওআর সক্ষম করতে হবে

http.cors.enabled : true
http.cors.allow-origin : "*"
http.cors.allow-methods : OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type, Content-Length

এখানে আমার সম্পূর্ণ yML ফাইল

bootstrap.memory_lock: false
cluster.name: elasticsearch
http.port: 9200
node.data: true
node.ingest: true
node.master: true
node.max_local_storage_nodes: 1
cluster.initial_master_nodes: node-1
node.name: ITDEV
path.data: C:\ProgramData\Elastic\Elasticsearch\data
path.logs: C:\ProgramData\Elastic\Elasticsearch\logs
transport.tcp.port: 9300
xpack.license.self_generated.type: basic
xpack.security.enabled: false
network.host: ["0.0.0.0", 127.0.0.1", "[::1]"]
network.bind_host: 0.0.0.0
network.publish_host: 0.0.0.0
http.host: 0.0.0.0
http.cors.enabled : true
http.cors.allow-origin : "*"
http.cors.allow-methods : OPTIONS, HEAD, GET, POST, PUT, DELETE
http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type, Content-Length

0

স্থাপন ছাড়াও network.host : 0.0.0.0

নিম্নলিখিত প্যারাম সেট করা প্রয়োজন হতে পারে

node.name: elasticsearch-node-1

cluster.initial_master_nodes: ["elasticsearch-node-1"]

সমস্ত সেটিং ভিতরে যেতে elasticsearch/elasticsearch.yml

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.