在 Raspberry Pi 3B+ 上运行 ElasticSearch + Kibana
目标
这是在RaspberryPi3B+上运行ElasticSearch + kibana时的备忘录。我遇到了比预期更多的困难,所以在这里记录下了遇到的错误。
我已经参考了下面的内容。
用 Raspberry Pi 安装并运行 Elasticsearch 和 Kibana。
安装ElasticSearch
sudo apt-get update
sudo apt-get install openjdk-8-jre-headless
mkdir ~/elastic
cd ~/elastic
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.2.tar.gz
tar xf elasticsearch-6.5.2.tar.gz
修改jvm.options(将内存使用量设为256MB)。
-#-Xms1g
-#-Xmx1g
+-Xms256m
+-Xmx256m
修改elasticsearch.yml文件。(修改启动选项。)
+xpack.ml.enabled: false
+network.host: 0.0.0.0
+http.port: 9200
+transport.host: localhost
+transport.tcp.port: 9300
启动
elasticsearch-6.5.2/bin/elasticsearch
Kibana的安装
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.5.2-linux-x86_64.tar.gz
tar xf kibana-6.5.2-linux-x86_64.tar.gz
直接使用此方式无法使用Node.js,因此需要下载可用的Node.js。
$ ./kibana-6.5.2-linux-x86_64/node/bin/node
-bash: ./kibana-6.5.2-linux-x86_64/node/bin/node: バイナリファイルを実行できません: 実行形式エラー
$ chmod -x kibana-6.5.2-linux-x86_64/node/bin/node
$ wget https://nodejs.org/dist/v8.14.0/node-v8.14.0-linux-armv7l.tar.xz
$ tar xf node-v8.14.0-linux-armv7l.tar.xz
$ ./node-v8.14.0-linux-armv7l/bin/node
> .exit
设置nodejs路径并启动kibana。
cd ~/elastic
echo "PATH=$HOME/elastic/node-v8.14.0-linux-armv7l/bin:$PATH" >> ~/.bashrc
echo "PATH=$HOME/elastic/kibana-6.5.2-linux-x86_64/bin/:$PATH" >> ~/.bashrc
echo "PATH=$HOME/elastic/elasticsearch-6.5.2/bin/:$PATH" >> ~/.bashrc
source ~/.bashrc # nodejsのパスを通す
./kibana-6.5.2-linux-x86_64/bin/kibana # kibanaを起動
只要等待几分钟,并从浏览器访问localhost:5601,就可以了。
错误处理
elasticsearch-6.5.2/bin/elasticsearch 强制被终止。
$ elasticsearch-6.5.2/bin/elasticsearch
強制終了
内存不足,在启动过程中发生错误。
关闭其他应用程序进程以解决问题。
设置异常[无法从 [elasticsearch.yml] 加载设置].
$ elasticsearch-6.5.2/bin/elasticsearch
Exception in thread "main" 2020-05-09 14:34:21,491 main ERROR No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/log4j/2.x/manual/configuration.html for instructions on how to configure Log4j 2
SettingsException[Failed to load settings from [elasticsearch.yml]]; nested: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]];
at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1216)
at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:1189)
at org.elasticsearch.node.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:100)
at org.elasticsearch.cli.EnvironmentAwareCommand.createEnv(EnvironmentAwareCommand.java:95)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
at org.elasticsearch.cli.Command.main(Command.java:90)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86)
Caused by: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but found [VALUE_STRING]]
at org.elasticsearch.common.xcontent.XContentParserUtils.ensureExpectedToken(XContentParserUtils.java:78)
at org.elasticsearch.common.settings.Settings.fromXContent(Settings.java:696)
at org.elasticsearch.common.settings.Settings.access$500(Settings.java:84)
at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:1212)
... 8 more
elasticsearch.yml文件中的内容有误(包含了奇怪的字符串)。进行修正以解决问题。
琪娜巴服务器尚未准备好。
数分钟等待后启动…我以为它会启动,但却一直没有启动。
是内存不足了吗?我想到了将elastic search的内存限制为256MB并重新启动,结果成功启动了。
请提供更多的上下文内容,以便给出准确的翻译。
树莓派上使用Elasticsearch和Kibana进行数据分析基础建设入门[使用Fluentd,Elasticsearch和Kibana实现…]
在Raspbian Buster上运行Elastic Stack 7.5.1(有7.2及更高版本的信息)
尝试使用流行的Kibana+fluentd+elasticsearch通过Logging快速测试
在Mac上使用Homebrew安装Elasticsearch和Kibana