我正在尝试在Vagrant中安装和运行Elasticsearch。问题是,当我尝试运行elasticsearch时,我收到以下错误:
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /home/vagrant/elasticsearch-2.3.0/logs/elasticsearch.log (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:648)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:514)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)
at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
log4j:ERROR Either File or DatePattern options are not set for appender [file].
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /home/vagrant/elasticsearch-2.3.0/logs/elasticsearch_deprecation.log (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)
at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
log4j:ERROR Either File or DatePattern options are not set for appender [deprecation_log_file].
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /home/vagrant/elasticsearch-2.3.0/logs/elasticsearch_index_indexing_slowlog.log (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)
at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
log4j:ERROR Either File or DatePattern options are not set for appender [index_indexing_slow_log_file].
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: /home/vagrant/elasticsearch-2.3.0/logs/elasticsearch_index_search_slowlog.log (No such file or directory)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at java.io.FileOutputStream.<init>(FileOutputStream.java:133)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:294)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:165)
at org.apache.log4j.DailyRollingFileAppender.activateOptions(DailyRollingFileAppender.java:223)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:307)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:172)
at org.apache.log4j.config.PropertySetter.setProperties(PropertySetter.java:104)
at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:842)
at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:768)
at org.apache.log4j.PropertyConfigurator.parseCatsAndRenderers(PropertyConfigurator.java:672)
at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:516)
at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:440)
at org.elasticsearch.common.logging.log4j.LogConfigurator.configure(LogConfigurator.java:128)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:243)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
log4j:ERROR Either File or DatePattern options are not set for appender [index_search_slow_log_file].
Exception in thread "main" java.lang.IllegalStateException: Unable to access 'path.plugins' (/home/vagrant/elasticsearch-2.3.0/plugins)
Likely root cause: java.nio.file.AccessDeniedException: /home/vagrant/elasticsearch-2.3.0/plugins
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384)
at java.nio.file.Files.createDirectory(Files.java:674)
at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781)
at java.nio.file.Files.createDirectories(Files.java:767)
at org.elasticsearch.bootstrap.Security.ensureDirectoryExists(Security.java:337)
at org.elasticsearch.bootstrap.Security.addPath(Security.java:314)
at org.elasticsearch.bootstrap.Security.addFilePermissions(Security.java:246)
at org.elasticsearch.bootstrap.Security.createPermissions(Security.java:212)
at org.elasticsearch.bootstrap.Security.configure(Security.java:118)
at org.elasticsearch.bootstrap.Bootstrap.setupSecurity(Bootstrap.java:196)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:167)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
我认为问题在于它没有写入权限。当我通过规定安装弹性时,我获得以下权限:
drwxr-xr-x 2 root root 4096 Apr 3 09:26 bin
drwxr-xr-x 2 root root 4096 Apr 3 09:26 config
drwxr-xr-x 2 root root 4096 Apr 3 09:26 lib
-rw-rw-r-- 1 vagrant vagrant 11358 Jan 27 12:53 LICENSE.txt
drwxrwxr-x 5 vagrant vagrant 4096 Mar 29 08:04 modules
-rw-rw-r-- 1 vagrant vagrant 150 Jan 27 12:53 NOTICE.txt
-rw-rw-r-- 1 vagrant vagrant 8700 Jan 27 12:53 README.textile
但是当我手动做同样的事情时:
drwxrwxr-x 2 vagrant vagrant 4096 Apr 2 18:20 bin
drwxrwxr-x 2 vagrant vagrant 4096 Apr 2 18:20 config
drwxrwxr-x 2 vagrant vagrant 4096 Apr 2 18:20 lib
-rw-rw-r-- 1 vagrant vagrant 11358 Jan 27 12:53 LICENSE.txt
drwxrwxr-x 5 vagrant vagrant 4096 Mar 29 08:04 modules
-rw-rw-r-- 1 vagrant vagrant 150 Jan 27 12:53 NOTICE.txt
-rw-rw-r-- 1 vagrant vagrant 8700 Jan 27 12:53 README.textile
我的Vagrantfile是:
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
sudo apt-get install software-properties-common python-software-properties -y
sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
sudo apt-get install oracle-java8-installer -y -q
wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.0/elasticsearch-2.3.0.tar.gz
tar -xzf elasticsearch-*.tar.gz
mv elasticsearch-2.3.0 elasticsearch
rm elasticsearch-*
SHELL
end
答案 0 :(得分:2)
当您从文件运行配置时,它以root身份运行,因此流浪者用户将无法像您所见的那样拥有对文件夹的写入权限。
规则的拇指是
sound = new Howl({
urls: ['assets/sounds.mp3'],
volume: 0.2,
sprite: {
point: [0, 700],
blast: [0, 2000], // start , duration
laser: [3000, 700], // sound.play('laser');
winner: [5000, 9000]
},
onload: function() {
init(); // when every music or sound is loaded
}
});
- &gt;作为流浪汉执行privileged: false
- &gt;以root身份执行(默认情况下,如果省略特权)将您的Vagrant文件更改为
privileged: true
在第一次配置中,我删除了所有sudo,因为它已经是运行该命令的root用户。
第二个配置块将由vagrant用户运行,并将从vagrant用户安装在/ home / vagrant中的ElasticSearch:
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.provision "shell", inline: <<-SHELL
apt-get update
apt-get install software-properties-common python-software-properties -y
apt-add-repository ppa:webupd8team/java
apt-get update
echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections
apt-get install oracle-java8-installer -y -q
SHELL
config.vm.provision "shell", privileged: false, inline: <<-SHELL
wget https://download.elasticsearch.org/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.0/elasticsearch-2.3.0.tar.gz
tar -xzf elasticsearch-*.tar.gz
mv elasticsearch-2.3.0 elasticsearch
rm elasticsearch-*
SHELL
end
答案 1 :(得分:-1)
来自您的访客:
$ cd /home/vagrant/elasticsearch-2.3.0/
$ sudo chmod -R a+w logs
为安全起见,你也可以......
$ sudo touch logs/elasticsearch.log logs/elasticsearch_deprecation.log logs/elasticsearch_index_indexing_slowlog.log logs/elasticsearch_index_search_slowlog.log
然后从主机重新启动和/或重新配置
$ vagrant reload
或
$ vagrant reload --provision
或
$ vagrant halt && vagrant up --provision
最后两个命令理想地做同样的事情,虽然我注意到在运行重新加载而不是停止/提升时有些奇怪。