说明
- 建议将整篇文章看完后再进行操作,文章结尾有我遇到的坑及解决方案,可以看看!
- 务必在java安装好的环境下进行
一、准备工作:
- Ubuntu 16.04.2 x86_64
- Elasticsearch 5.1.2 下载地址:https://artifacts.elastic.co/...
- Kibana 5.1.2 下载地址:https://artifacts.elastic.co/...
- 由于oracal下载java太慢,可以到CSDN下载 https://download.csdn.net/dow...
- 在root权限下操作创建用户:
创建elasticsearch组:groupadd elasticsearch
创建elasticsearch用户:useradd elasticsearch -g elasticsearch
创建elasticsearch家目录:mkdir /home/elasticsearch
改变家目录权限:chown -R mkdir elasticsearch:elasticsearch /home/elasticsearch
二、开始搭建
1. Elasticsearch 5.1.2:
- 下载Es:`wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.1.2.tar.gz`
- 解压Es到指定目录:`tar -zxf elasticsearch-5.1.2.tar.gz -C /usr/local/`
- 改变目录权限:`chown -R elasticsearch:elasticsearch elasticsearch-5.1.2/`
- 在Java环境变量配置好的情况下执行后台启动es:`sudo ./bin/elasticsearch -d -p pid`
- 关闭es:``kill `cat pid``` #pid是后台启动es时的进程号,文件是在/usr/local/elasticsearch-5.1.2/pid
- 在服务器执行:`curl localhost:9200`
- 如果有如下json返回表示安装成功:
```json
{
"name" : "9bUWQKn",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "2J3aD8mISy2A6l7JP6T4cA",
"version" : {
"number" : "5.1.2",
"build_hash" : "c8c4c16",
"build_date" : "2017-01-11T20:18:39.146Z",
"build_snapshot" : false,
"lucene_version" : "6.3.0"
},
"tagline" : "You Know, for Search"
}
```
2、Kibana 5.1.2
- 下载Kibana:`wget https://artifacts.elastic.co/downloads/kibana/kibana-5.1.2-linux-x86_64.tar.gz`
- 解压:`tar -zxf kibana-5.1.2-linux-x86_64.tar.gz -C /usr/local/`
- `cd /usr/local/kibana-5.1.2-linux-x86_64`
- 改变kibana的拥有者为elasticsearch:`sudo chown elasticsearch:elasticsearch -R kibana-5.1.2-linux-x86_64/`
- 启动kibana:`./bin/kibana`
- 访问:用浏览器http://192.168.10.10:5601/ 此时会进不去页面
- 原因:kibana的默认限制了访问ip
- 解决:`vim /usr/local/kibana-5.1.2-linux-x86_64/config`
将:server.host前的注释打开,最终是:server.host: "0.0.0.0"要重启kibana:`./bin/kibana`
- 再次访问:http://192.168.10.10:5601/ 就ok了额外说下:有了kibana了就不用安装sense这个插件了,因为kibana 5.1.2默认集成了sense
三、用chrome装es的head扩展
不用elasticsearch-plugin安装head了,直接Chrome扩展:https://chrome.google.com/web...
四、坑
1、用root用户权限运行es会报:
在安装es的目录/usr/local/elasticsearch-5.1.2运行es:./bin/elasticsearch
会报如下错误:
root@homestead:/usr/local/elasticsearch-5.1.2# ./bin/elasticsearch
2018-03-26T15:17:52,954[o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
原因:es不能以root用户启动
解决:切换成elasticsearch用户 su elasticsearch
2、运行./bin/elasticsearch -d -p pid
会报
elasticsearch@homestead:/usr/local/elasticsearch-5.1.2$ Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.
原因:我是在Mac下安装了Virtual Box,只分配了2g的内存,这是由于内存不足引起的
解决:
修改es的配置文件:vim /usr/local/elasticsearch-5.1.2/config/jvm.options
将:-Xms2g
改为 -Xms1g
,如果1g还不够的话,可以改为-Xms512m
将:-Xmx2g
改为 -Xmx1g
,如果1g还不够的话,可以改为-Xmx512m
修改完jvm.options后,再执行./bin/elasticsearch -d -p pid
3、./bin/elasticsearch -d -p pid
会报
elasticsearch@homestead:/usr/local/elasticsearch-5.1.2$ 2018-03-26 15:44:22,462 main ERROR RollingFileManager (/usr/local/elasticsearch-5.1.2/logs/elasticsearch.log) java.io.FileNotFoundException: /usr/local/elasticsearch-5.1.2/logs/elasticsearch.log (Permission denied) java.io.FileNotFoundException: /usr/local/elasticsearch-5.1.2/logs/elasticsearch.log (Permission denied)
原因:权限不够,导致/usr/local/elasticsearch-5.1.2/logs/elasticsearch.log日志文件以elasticsearch的文件没权限写入
解决:sudo chown -R elasticsearch:elasticsearch elasticsearch-5.1.2
再次执行:./bin/elasticsearch -d -p pid
4、在启动es时报:
main ERROR Unable to inject fields into builder class for plugin type class org.apache.logging.log4j.core.appender.RollingFileAppender
原因:es是在java环境下运行的,所以要先安装java,并配置好相应的环境变量
解决:以下操作在root用户下操作将java解压到要安装的目录:/usr/local/jdk1.8.0_161
配置java环境变量vim /etc/profile
在/etc/profile文件末尾添加如下几行,根据你所安装的目录修改JAVA_HOME=/usr/local/jdk1.8.0_161
CLASSPATH=.:$JAVA_HOME//usr/local/jdk1.8.0_161/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
再执行source /etc/profile
生效
5、kibana的版本和es的版本务必一致
如:Elasticsearch 5.1.2与Kibana 5.1.2,版本都5.1.2,不同版本的话,在启动kibana时会报错
6、启动es时报
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
临时解决:sudo sysctl -w vm.max_map_count=262144
#重启linux会失效
永久解决:sudo vim /etc/sysctl.conf
加入:vm.max_map_count=262144
再重启linux生效
7、用chrome访问192.168.10.10:9200时出进入不了页面
原因:es的配置文件限制了指定的ip访问,默认是服务器的locallhost:9200
,
解决:sudo vim /usr/local/elasticsearch-5.1.2/config/elasticsearch.yml
将:network.host
的注释打开,最终是network.host: 0.0.0.0
,表示不限制访问ipkill `cat pid
` #杀掉es进程./bin/elasticsearch -d -p pid
#启动es
再用浏览器访问:192.168.10.10:9200
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。