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工具下载。

  1. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz

  2. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.7.0.tar.gz.sha512

  3. shasum -a 512 -c elasticsearch-6.7.0.tar.gz.sha512

  4. tar -xzf elasticsearch-6.7.0.tar.gz

  5. cd elasticsearch-6.7.0/

下载、解压缩即可,不需要安装。

还可以配置ES_HOME变量,设置到shell环境变量中

启动Elasticsearch

创建用户

因为elasticsearch不允许在root用户启动,所以需要新建一个用户,同时给用户设置足够的权限以运行elasticsearch。

  1. #添加一个用户:elasticsearch

  2. $useradd elasticsearch

  3. #给用户elasticsearch设置密码,连续输入2次

  4. $passwd elasticsearch

  5. #创建一个用户组 es

  6. groupadd es

  7. #分配 elasticsearch 到 es 组

  8. usermod -G elasticsearch es

  9. #这里注意下,如果提示用户“es”不存在,那么是因为服务器版本问题,你可以换成 usermod -G es elasticsearch ,也就是用户和用户组对调一下使用。

  10. #在elasticsearch 根目录下,给定用户权限。-R表示逐级(N层目录) , * 表示 任何文件

  11. chown -R elasticsearch.es *

  12. #切换到elasticsearch用户

  13. su elasticsearch

运行elasticsearch

在elasticsearch的安装目录下运行如下命令,可以通过参数 -d设置后台启动

  1. bin/elasticsearch #前台启动方式,通过ctrl+c可终止

  2. bin/elasticsearch -d #后台启动方式

  3. bin/elasticsearch -d -p <pid> #后台启动方式,指定进程id文件,可以通过pkill -F <pid>关闭进程如果没有指定 -p参数,只能通过 kill工具关闭elasticsearch。

使用elasticsearch

通过curl工具向 127.0.0.1:9200发送http的get请求,获得如下信息即说明启动成功。

  1. curl -X GET "127.0.0.1:9200/"

  2. {

  3. "name" : "xUpgsYd",

  4. "cluster_name" : "elasticsearch",

  5. "cluster_uuid" : "O3PMXWL2Swa59ti-_wKS2A",

  6. "version" : {

  7. "number" : "6.7.0",

  8. "build_flavor" : "default",

  9. "build_type" : "tar",

  10. "build_hash" : "8453f77",

  11. "build_date" : "2019-03-21T15:32:29.844721Z",

  12. "build_snapshot" : false,

  13. "lucene_version" : "7.7.0",

  14. "minimum_wire_compatibility_version" : "5.6.0",

  15. "minimum_index_compatibility_version" : "5.0.0"

  16. },

  17. "tagline" : "You Know, for Search"

  18. }

配置elasticsearch

elasticsearch的默认配置文件位于 $ES_HOME/config/elasticsearch.yml。可以通过配置文件中添加配置。

elasticsearch也可以在命令行中添加配置,使用 -E前缀即可。

  1. ./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权限:

  1. sudo sysctl -w vm.max_map_count=262144

  2. sysctl -a|grep vm.max_map_count

  • 永久修改vm.maxmapcount:

    1. #需要先切换到root用户

    2. vi /etc/sysctl.conf

    3. #添加下面配置:

    4. vm.max_map_count=655360

    5. #并执行命令:

    6. sysctl -p

    7. #然后,重新启动elasticsearch,即可启动成功。

    Kibana安装

    从elasticsearch下载kibana,解压即可

    修改 config/kibana.yml配置文件:

    1. elasticsearch.hosts: ["http://ip:port"]

    本地运行kibana,浏览器输入: localhost:5601/即可使用kibana访问搭建在远程云服务器上的elasticsearch实例。


    相关文章