Elasticsearch安装

235 阅读5分钟

下载和安装

版本选择

决定使用 Elasticsearch 的时候首先要考虑的是版本问题,Elasticsearch 目前有三个常用的稳定的主版本:2.x,5.x,6.x(排除 0.x 和 1.x)

Easticsearch 可以在这里查看所有历史版本,博主写这篇博文的时候最新的是 Elasticsearch 6.4.2。你可能会发现没有 3.x 和 4.x,ES 从 2.4.6 直接跳到了 5.0.0。这是为什么?

其实是为了ELK(ElasticSearch, logstash, kibana)技术栈的版本统一,免的给用户带来混乱。

我们知道 elasticsearch,kibana,logstash 都是 Elastic Stack 成员, 而且很多时候都是配合使用,那么为了协同开发,避免造成版本困惑,所以需要统一版本,至少保持在一个主版本号下。

在Elasticsearch 是 2.x (2.x 的最后一版 2.4.6 的发布时间是 July 25, 2017) 的情况下,kibana 已经是 4.x(Kibana 4.6.5 的发布时间是 July 25, 2017),那么在 kibana 的下一主版本肯定是 5.x 了,所以 Elasticsearch 直接将自己的主版本发布为 5.0.0 了。统一之后,我们选版本就不会犹豫困惑了,我们选定 elasticsearch 的版本后再选择相同版本的 kibana 就行了,不用担忧版本不兼容的问题。

版本问题

2.x 版本较老,无法体验新功能,且性能不如 5.x。

6.x 版本有点新,网上资料相对比较少(开发时间充足的可以研究)。

数据迁移

2.x 版本数据可以直接迁移到 5.x;

5.X 版本的数据可以直接迁移到 6.x; 但是 2.x 版本数据无法直接迁移到 6.x。

周边工具

2.x 版本周边工具版本比较混乱;Kibana 等工具的对应版本需要自己查,不好匹配。

5.x 之后 Kibana 等工具的主版本号进行了统一。

Sql 语法支持

2.x,5.x,6.x 都可以安装 Elasticsearch-sql 插件,使用熟悉的SQL语法查询 Elasticsearch。

6.3.0 以后内置支持 SQL 模块,这个 SQL 模块是属于 X-Pack 的一部分。

通过以上的版本号了解之后,综合考虑,我起始选择了 elasticsearch 6.4.0版本,其实主要是因为它新,kibana 也选择了 kibana 6.4.0。但是等本地开发完成准备部署的时候,运维通知切换到5.6.0,因为公司其他部门的是5.6.0,方便统一维护,还好 API 变化不大。

下载

lasticSearch: mirrors.huaweicloud.com/elasticsear…

logstash: mirrors.huaweicloud.com/logstash/?C…

kibana: mirrors.huaweicloud.com/kibana/?C=N…

安装

Java版本: Elasticsearch5.0之后的版本至少需要Java 8。可通过如下命令检查Java版本,然后根据需要进行相应的安装/升级。

Win:下载后解压就可以用

Liunx:

运行

Linux: ./bin/elasticsearch

Windows:D:...\elasticsearch-6.4.0\bin\elasticsearch.bat

校验:运行行成功之后(启动日志里面会有.. started标志),浏览器访问http://localhost:9200/?pretty,你能看到类似以下返回信息(各版本稍微不同):

{
  "name" : "AGXQ3qy", 主机名字
  "cluster_name" : "elasticsearch", 默认几区你名字
  "cluster_uuid" : "mg9t4Yi2TRud1JNwRY0bPA",
  "version" : {
    "number" : "6.4.0", 版本
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}

这说明你的 Elasticsearch 集群已经启动成功并且正常运行,接下来我们可以开始使用了。

可视化 web 界面

由于 Elasticsearch 的交互方式是 Rest 形式的,这种不是很直观方便,我们先安装图视化界面,方便我们操作。可选择的目前主要有 elasticsearch-head 和 kibana。

Easticsearch-head

lasticsearch-head 是一个用于浏览和与 elasticsearch 集群交互的Web前端。elasticsearch-head 是 elasticsearch 集群管理、数据可视化、增删查改、查询语句可视化工具。elasticsearch head 是托管的,可以在 github 下载或 fork。

有两种运行和安装elasticsearch-head的方法:

作为ElasticSearch的插件运行(这是首选方法)

1、elasticsearch/bin/elasticsearch-plugin -install mobz/elasticsearch-head。

2、open http://localhost:9200/_plugin/head/。

作为独立的webapp 运行

Docker安装

安装docker(centos)

安装:在测试或开发环境中 Docker 官方为了简化安装流程,提供了一套便捷的安装脚本,Ubuntu 系统上可以使用这套脚本安装:

**curl -fsSL get.docker.com -o get-docker.sh**

**sudo sh get-docker.sh --mirror Aliyun**

安装完后检测:
docker version

image.png

启动docker:

systemctl enable docker
systemctl start docker

配置镜像:
对于使用 systemd 的系统,请在 /etc/docker/daemon.json 中写入如下内容(如果文件不存在请新建该文件)

{
  "registry-mirrors": [
    "https://ceq5zz4j.mirror.aliyuncs.com"
  ]
}

重新启动服务:

systemctl daemon-reload
systemctl restart docker

安装Elasticsearch

安装:
拉去镜像:docker pull elasticsearch:7.4.2

启动es:

docker run --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -d elasticsearch:7.4.2

**验证:

> curl http://localhost:9200
{
    "name": "OwHPNzY",
    "cluster_name": "elasticsearch",
    "cluster_uuid": "WeiDMjJARv2DHMcCrQgS6g",
    "version": {
    "number": "5.6.4",
    "build_hash": "8bbedf5",
    "build_date": "2017-10-31T18:55:38.105Z",
    "build_snapshot": false,
    "lucene_version": "6.6.1"
},
    "tagline": "You Know, for Search"
}

安装es-head

1、 修改响应内容格式
docker exec -it  es-head  /bin/bash
2、修改属性( apt-get install vim)
cd  _site
cd _site
vim vendor.js

** 6886行上下
/contentType: "application/x-www-form-urlencoded
改成
contentType: "application/json;charset=UTF-8"

** 7574行上下
var inspectData = s.contentType ==`= "application/x-www-form-urlencoded" &&` 
改成
var inspectData = s.contentType === "application/json;charset=UTF-8" &&

3、重启

Kibana

1、安装: docker pull kibana:7.4.2

2、启动: docker run -it -d -e ELASTICSEARCH_HOSTS=http://192.168.243.128:9200 --name kibana -p 5601:5601 kibana:7.4.2

kibana的启动倒是没什么大的问题,不过需要注意的时,环境变量中配置的es地址有可能不会生效,这样的话,就需要进入容器,修改/usr/share/kibana/config/kibana.yml文件中的es地址与端口。

3、汉化:kibana 7 中官方加入了中文的选项,只需要在配置文件 kibana.yml 中加入

       i18n.locale: "zh-CN"

然后重启kibana容器就ok了,不过6版本及之前的版本,需要下载汉化包并修改配置文件。

4、访问: http://192.168.243.128:5601/

安装ikl分词器

1、进入容器

       docker exec -it elasticsearch  /bin/bash

2、查看es版本

       elasticsearch –version

3、下载分词器

       elasticsearch-plugin install github.com/medcl/elast…

4、重启容器

       docker restart elasticsearch

logstash安装

下载logstash

www.elastic.co/cn/download…

解压logstash

进入bin目录,新建文件logstash_default.conf

input {
    stdin{
    }
}

output {
    stdout{
    }
}

在bin目录,新文件文件run_default.bat

logstash -f logstash_default.conf

image.png

运行启动logstash

点击run_default.bat,启动logstash,浏览器访问http://localhost:9600/,表示启动成功。

logstash.bat -f D:\software\third\logstash\logstash-7.4.2\logstash-7.4.2\bin\logstash_default.conf

image.png