Elasticsearch 2.0'ı bir Vagrant VM'de çalıştırmaya çalışıyorum. 1.7 için kullandığım yöntem artık çalışmıyor, bu yüzden yöntemimi güncellemeye çalışıyorum. Sanal makineye ES 2.0 yüklenebilir ve sanal makine içinde iyi çalışıyor gibi görünüyor, ancak sanal makinenin dışından erişemiyorum. Bu, VM'nin bir sebepten ötürü, bir sebepten dolayı bağlantı noktası 9200 portu değil. Bu yüzden yanlış yaptığımı anlamaya çalışıyorum.Vagrant VM'de Elasticsearch 2.0 uygulamasına ana bilgisayardan erişilemiyor
Verilen bu Vagrantfile
:
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.hostname = "ES-2.0.0"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.network :forwarded_port, host: 9200, guest: 9200
config.vm.synced_folder "/Users/sloan/code", "/srv/code"
config.vm.provider "virtualbox" do |v|
v.memory = 2048
v.cpus = 1
v.name = config.vm.hostname.to_s
end
end
benim bootstrap.sh
çalışıyor eski:
#!/usr/bin/env bash
sudo apt-get update
sudo apt-get upgrade
# install openjdk-7
sudo apt-get purge openjdk*
sudo apt-get -y install openjdk-7-jdk
# install curl
sudo apt-get -y install curl
# install Elasticsearch 1.7.3
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.3.tar.gz -O elasticsearch.tar.gz
tar -xf elasticsearch.tar.gz
rm elasticsearch.tar.gz
sudo mv elasticsearch-* elasticsearch
sudo mv elasticsearch /usr/local/share
# set up ES as service
curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz
sudo mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/
rm -Rf *servicewrapper*
sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install
sudo ln -s 'readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch' /usr/local/bin/rcelasticsearch
# start ES service
sudo service elasticsearch start
# enable cors (to be able to use Sense)
sudo echo "http.cors.enabled: true" >> /usr/local/share/elasticsearch/config/elasticsearch.yml
# enable dynamic scripting
sudo echo "script.disable_dynamic: false" >> /usr/local/share/elasticsearch/config/elasticsearch.yml
sudo service elasticsearch restart
Ben anlamda çalıştığını anlamına konak OS (OS X 10.9.5) O Sadece iyi bir şekilde curl olabilir:
es173 > curl localhost:9200
{
"status" : 200,
"name" : "Gibbon",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.7.3",
"build_hash" : "05d4530971ef0ea46d0f4fa6ee64dbc8df659682",
"build_timestamp" : "2015-10-15T09:14:17Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}
Bu yeni sürümükullandığımda
#!/usr/bin/env bash
sudo apt-get update
sudo apt-get upgrade
# install curl
sudo apt-get -y install curl
# install openjdk-7
sudo apt-get purge openjdk*
sudo apt-get -y install openjdk-7-jdk
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb http://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo update-rc.d elasticsearch defaults 95 10
sudo /etc/init.d/elasticsearch start
# enable cors (to be able to use Sense)
sudo echo "http.cors.enabled: true" >> /etc/elasticsearch/elasticsearch.yml
# enable dynamic scripting
sudo echo "script.disable_dynamic: false" >> /etc/elasticsearch/elasticsearch.yml
sudo /etc/init.d/elasticsearch restart
işe ETMEZ: Ben Elasticsearch belgeleri (her zaman zorlu bir görev) izlemeye çalışan tarafından pişirilen. VM içindeyken,
curl localhost:9200
beklendiği gibi çalışır, ancak ana OS aldığım: Burada ne
es200 > curl localhost:9200
curl: (52) Empty reply from server
eksik? Yeni sürüm portunun neden iletilmediğini kimse anlatabilir mi? Ben script.disable_dynamic: false
şeyler kırarak olduğunu tespit ES günlük dosyası (cat /var/log/elasticsearch/elasticsearch.log
) inceleyerek üzerine
ES ağa özgü yapılandırmanın kurulumunuzda nasıl olduğunu bilmiyorum, ancak ilk bakacağım bu olurdu. Çünkü dokümantasyonda belirtilen 2.0'da büyük bir değişiklik var, şu anlama geliyor: 'Şu anda bir elasticsearch nodu birden fazla adrese bağlı olabilir, ancak sadece birini yayınlar. Bu daha önce böyle değildi. 2.0'da aynı şeyi yapmanın bir yolu, 'network.bind_host: 0' değerini ayarlamaktır. –
Bu "elasticsearch.yml" içinde mi gidiyor? Denedim, yardım etmiş gibi görünmüyor. –
"ES ağa özgü yapılandırmanın" kurulumda ne olduğunu nasıl anlarım? İki (şimdi üç) ayarı '/ etc/elasticsearch/elasticsearch.yml' öğesine eklemekten başka, varsayılan ayarları hiçbir şekilde değiştirmedim. –