Elasticsearch学习一下载安装
Elasticsearch学习一下载安装
本教程主要参考Elasticsearch官网文档,目前网络上流传的《Elasticsearch权威指南》就是官网文档的中文翻译,但是中文版过于陈旧,因此根据官网上的英文版指南自己编写的简易版入门教程。
环境搭建
目前elasticsearch最新版本已经到达7.x,最新的GA版本是6.7.0。本教程基于6.7.0版本,在自己的云服务器上配置elasticsearch,自己本地使用kibana与elasticsearch交互。
kibana是elasticsearch提供的可免费用于生产环境的监控工具。
环境要求
elasticsearch运行环境需要安装JDK7。
下载Elasticsearch
windows环境可从https://www.elastic.co/cn/下载zip或msi安装。
linux或mac环境使用 tar.gz
文件,最简便的方式是使用 wget
工具下载。
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz.sha512
shasum -a 512 -c elasticsearch-6.7.0.tar.gz.sha512
tar -xzf elasticsearch-6.7.0.tar.gz
cd elasticsearch-6.7.0/
下载、解压缩即可,不需要安装。
还可以配置ES_HOME变量,设置到shell环境变量中
启动Elasticsearch
创建用户
因为elasticsearch不允许在root用户启动,所以需要新建一个用户,同时给用户设置足够的权限以运行elasticsearch。
#添加一个用户:elasticsearch
$useradd elasticsearch
#给用户elasticsearch设置密码,连续输入2次
$passwd elasticsearch
#创建一个用户组 es
groupadd es
#分配 elasticsearch 到 es 组
usermod -G elasticsearch es
#这里注意下,如果提示用户“es”不存在,那么是因为服务器版本问题,你可以换成 usermod -G es elasticsearch ,也就是用户和用户组对调一下使用。
#在elasticsearch 根目录下,给定用户权限。-R表示逐级(N层目录) , * 表示 任何文件
chown -R elasticsearch.es *
#切换到elasticsearch用户
su elasticsearch
运行elasticsearch
在elasticsearch的安装目录下运行如下命令,可以通过参数 -d
设置后台启动
bin/elasticsearch #前台启动方式,通过ctrl+c可终止
bin/elasticsearch -d #后台启动方式
bin/elasticsearch -d -p <pid> #后台启动方式,指定进程id文件,可以通过pkill -F <pid>关闭进程如果没有指定
-p
参数,只能通过kill
工具关闭elasticsearch。
使用elasticsearch
通过curl工具向 127.0.0.1:9200
发送http的get请求,获得如下信息即说明启动成功。
curl -X GET "127.0.0.1:9200/"
{
"name" : "xUpgsYd",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "O3PMXWL2Swa59ti-_wKS2A",
"version" : {
"number" : "6.7.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "8453f77",
"build_date" : "2019-03-21T15:32:29.844721Z",
"build_snapshot" : false,
"lucene_version" : "7.7.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
配置elasticsearch
elasticsearch的默认配置文件位于 $ES_HOME/config/elasticsearch.yml
。可以通过配置文件中添加配置。
elasticsearch也可以在命令行中添加配置,使用 -E
前缀即可。
./bin/elasticsearch -d -Ecluster.name=my_cluster -Enode.name=node_1
常见错误
权限限制
如果报错信息显示xxx没有权限,拒绝执行或者没有xx权限进行创建、读取、执行等,说明当前用户的权限不够,使用 chmod
命令赋予足够权限即可。
配置外网访问
因为elasticsearch配置在了云服务器上,所以需要设置外网访问。
在 elasticsearch.yml
文件中配置 network.host:0.0.0.0
。
本地访问结果:
提示 vm.max_map_count
值过低
[2019-03-31T12:08:40,836][INFO ][o.e.t.TransportService ] [xUpgsYd] publishaddress {172.16.226.15:9300}, boundaddresses {0.0.0.0:9300} [2019-03-31T12:08:40,886][INFO ][o.e.b.BootstrapChecks ] [xUpgsYd] bound or publishing to a non-loopback address, enforcing bootstrap checks ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.maxmapcount [65530] is too low, increase to at least [262144]
可以看到错误提示 vm.max_map_count
过小,需要至少提高到 262144
。
临时提高了vm.maxmapcount的大小,此操作需要root权限:
sudo sysctl -w vm.max_map_count=262144
sysctl -a|grep vm.max_map_count
永久修改vm.maxmapcount:
#需要先切换到root用户
vi /etc/sysctl.conf
#添加下面配置:
vm.max_map_count=655360
#并执行命令:
sysctl -p
#然后,重新启动elasticsearch,即可启动成功。
Kibana安装
从elasticsearch下载kibana,解压即可
修改 config/kibana.yml
配置文件:
elasticsearch.hosts: ["http://ip:port"]
本地运行kibana,浏览器输入: localhost:5601/
即可使用kibana访问搭建在远程云服务器上的elasticsearch实例。