ElasticSearch_02_使用docker安装elasticsearch6.8.0

Posted 毛奇志

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch_02_使用docker安装elasticsearch6.8.0相关的知识,希望对你有一定的参考价值。

系列文章目录

文章目录


前言

本文安装elasticsearch并使用,本文使用到的postman请求导出的json文件:https://www.syjshare.com/res/P76Y0LPN

如果kibana连接es,最好版本相同,否则会出现版本不对连不上的情况,本文使用的elasticsearch是6.8.0,使用的kibana也是 6.8.0

IK分词器下载地址:https://www.syjshare.com/res/L03N54C1

一、安装docker

1、vmware上linux最小化安装

vmware最小化安装centos7,下载好镜像,不断下一步,直到完成。

先到官网 https://www.centos.org/download/ 下载centos.iso,如下:

国内的,直接选阿里云镜像就好 http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/

具体安装可以参见 https://www.cnblogs.com/liuhui-xzz/p/10155511.html

其实没这么麻烦,只需要配置磁盘这个必选就好了,其他都不用配置,不断下一步,最好就安装好了。

创建好的虚拟机 ping www.baidu.com 失败,需要配置好静态ip,才能连同外网。
输入 vi /etc/sysconfig/network-scripts/ifcfg-ens33 然后按照如下图编辑,最后 service network restart 保存即可

BOOTPROTO=static ONBOOT=yes DNS1=114.114.114.114 这三个是写死的,那么其他三个ip 子网掩码 网关是如何确定的呢?这个和本机的ip无关,只和vmware的虚拟网络编辑器有关。

vware的虚拟网络编辑器,需要配置子网掩码、子网ip、网关ip

首先是子网掩码,一般都是C类,配置为 255.255.255.0 ,没什么好说的,然后是子网ip,这个子网ip要受到子网掩码的限制,只有前面三个字节,最后一个字节为0,一般是 xxx.xxx.xxx.0,这里子网IP配置为192.168.100.0,然后再是网关(就是虚拟网络编辑器的ip),网关ip又受到子网ip的限制,前面三个字节需要和子网ip一样,表示是这个子网段内的ip,这里配置为192.168.100.2,其他可以配置为该子网内任意一个 192.168.100.1 - 192.168.100.127,如下图:

配置好虚拟网络编辑器之后,再来看静态ip的三个字段,NETMASK=255.255.255.0 没问题,c类都是这样配置,然后是网关ip GATEWAY,这里必须和虚拟网络编辑器的那个网关ip一致就是192.168.100.2,所以配置GATEWAY=192.168.100.2,然后就是自己的IPADDR了,要保证两点,在子网段内 且 不和网关ip及该子网段内其他ip冲突,在子网段内就是 192.168.100 开头,不和网关ip及该子网段内其他ip冲突,就是最后一个不能为 2 或者其他用过的,所以是 170,即 192.168.100.170

配置静态ip之后,就可以用xshell连接并操作了,不用再使用vmware敲命令,也有yum命令,缺少什么都可以随时下载,比如最小安装没有wget命令,可以yum -y install wget。

最后注意,一定要 systemctl stop firewalld 关闭防火墙,才能让本机windows的chrome浏览器或postman访问。

2、linux上安装docker

# 直接查看docker服务,发现机器上没有这个服务
systemctl status docker 
# 下载并安装docker服务
yum -y install docker
# 再次查看docker服务,发现机器上已经有了这个服务,只是没有启动
systemctl status docker 
# 启动/重启docker服务
systemctl restart docker
# 第三次查看docker服务,发现启动了,ps -ef查看进程也启动了
systemctl status docker 
ps -ef|grep docker 
# 设置某服务开机启动,下次reboot重启之后,docker上的所有的服务都有的
systemctl enable docker

二、在docker上安装elasticsearch并通过windows访问

1、拉取镜像

docker pull elasticsearch:6.8.0

用docker来安装软件,有两个好处:
1、整个安装过程非常简单,相对于虚拟机安装少了很多的配置,而且docker ps 就可以看到当前机器上的所有容器;
2、dockerHub库里面有很多的镜像,不再需要我们通过虚拟机安装各个到官网上去下载安装包了。

2、修改linux系统配置参数

elasticsearch在启动的时候会进行一些检查,比如最多打开的文件的个数以及虚拟内存区域数量等等,如果你放开了此配置,意味着需要打开更多的文件以及虚拟内存,所以我们还需要系统调优

进入配置文件,

vim  /etc/security/limits.conf

追加内容 (nofile是单个进程允许打开的最大文件个数 soft nofile 是软限制 hard nofile是硬限制 )

* soft nofile 65536
* hard nofile 65536

进入配置文件

vim /etc/sysctl.conf

限制一个进程可以拥有的VMA(虚拟内存区域)的数量,末尾添加

vm.max_map_count=655360

使配置生效

sysctl -p

重启虚拟机

reboot

3、启动es容器

docker run -id --name=es -p 9200:9200 -p 9300:9300 elasticsearch:6.8.0

这里的 --name=es 表示容器名称为es,下面docker exec -it es /bin/bash 中被使用到
-p 前面表示宿主机端口,后面表示容器端口
最后面的 elasticsearch:6.8.0 表示所使用的镜像名称

注意: 9200端口(Web管理平台端口) 9300(服务默认端口,kibana客户端或者集群节点之间交流时用该端口)

4、linux上访问ElasticSearch

curl http://localhost:9200

代表ES启动成功!

5、在windows上访问es


一定要 systemctl stop firewalld 关闭防火墙,才能让本机windows的chrome浏览器或postman访问。

如果只能在linux上访问es,无法在windows远程进行访问,则需要

(1)登录容器

docker exec -it es /bin/bash

(2)修改配置文件

进入配置文件所在目录

cd config
ls

vi命令无法识别,因为docker容器里面没有该命令,我们还需要安装该编辑器

yum install vim

修改配置文件

vim elasticsearch.yml

千万注意,这里是 elasticsearch.yml 不是 elasticsearch.yaml

添加如下内容:

# 集群名字(上面打印的就是docker-cluster)
# node.name: es
cluster.name: "docker-cluster"
network.host: 0.0.0.0

# 允许elasticsearch跨域访问
http.cors.enabled: true
# 示跨域访问允许的域名地址(表示任意)
http.cors.allow-origin: "*"

三、Postman对es基本元素进行操作

先了解一下es中的基本概念,如下:


然后再连接es,对这些基本概念操作。

1、索引操作(类似mysql的数据库/数据表结构)

创建索引两种方案:
1、创建索引时设置mapping信息;
2、先创建索引然后再设置mapping

创建索引时直接设置mapping信息

先创建索引然后再设置mapping

查询索引列表

查询单个索引详细信息

对于这两个查询
?v 表示查询结果中显示列名,没有也可以查询正确,只是查询出来的结果没有列名
&pretty 无特殊作用,没有无任何影响

删除索引index

2、文档操作

上面的索引index相当于是mysql中的数据库/数据表,mapping相当于数据表的字段设计,现在的文档操作遵循字段设计,对行记录crud。

创建文档document(类似mysql插入表的行记录)

修改文档document

查询文档document

删除文档document

四、es上安装IK分词器

ES分词器 ik分词器-中文分词器

Lucene的IK分词器早在2012年已经没有维护了,现在我们要使用的是在其基础上维护升级的版本,并且开发为ElasticSearch的集成插件了,与Elasticsearch一起维护升级,版本也保持一致

1、下载安装包
注意:下载版本需要和你的ElasticSearch版本一致

IK分词器下载地址:https://www.syjshare.com/res/L03N54C1

2、解压

# 创建目录来保存解压后的文件
mkdir IK

3、拷贝IK目录到ES容器

docker cp  IK es:/usr/share/elasticsearch/plugins

重启容器

docker restart es

4、测试

POST  http://192.168.100.170:9200/_analyze

  "text":"中华人民共和国人民大会堂",
  "analyzer": "ik_max_word"

注意:IK分词器有两种标准:"ik_smart"表示粗粒度划分,"ik_max_word"表示细粒度划分

五、kibana监控es

Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可 以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现,如柱形图,线状图,饼图等。

Kibana 可以使大数据通俗易懂。它很简单,基于浏览器的界面便于您快速创建和分享动态数据仪表板来追踪

Elasticsearch 的实时数据变化。

1、拉取镜像

docker pull kibana:6.8.0

2、启动容器

# 后台方式启动
docker run  -id --name kibana -e \\
ELASTICSEARCH_URL=http://192.168.100.170:9200 -p 5601:5601 \\
kibana:6.8.0

注意:ELASTICSEARCH_URL=http://192.168.100.170:9200:是指链接的ES地址
5601是kibana的默认端口

3、访问测试
注意开启端口或者关闭防火墙 systemctl stop firewalld

访问:

http://192.168.100.170:5601/

直接在windows上安装kibana,连接 docker 上的 es ,也是可以的

1、下载和es相同版本的kibana
2、修改 config/kibana.yml 文件
3、启动 bin/kibana.bat 文件

修改 config/kibana.yml 文件,如下:

关于 config/kibana.yml 文件的修改:
1、将默认的server.host: “localhost” 改成server.host: “0.0.0.0”,以供外网访问。
2、修改elasticsearch.hosts这个配置,将其设置为对应的elasticsearch的真实地址和端口。

启动 bin/kibana.bat 文件,如下:

chrome浏览器访问 localhost:5601 ,如下:

管理页面可以看到es的情况

开发工具可以使用语句操作es,且kibana上有es操作语句的智能提示,如下:

总结

本文安装elasticsearch并使用,本文使用到的postman请求导出的json文件:https://www.syjshare.com/res/P76Y0LPN

用docker来安装软件,有两个好处:

1、整个安装过程非常简单,相对于虚拟机安装少了很多的配置,而且docker ps 就可以看到当前机器上的所有容器;
2、dockerHub库里面有很多的镜像,不再需要我们通过虚拟机安装各个到官网上去下载安装包了。

以上是关于ElasticSearch_02_使用docker安装elasticsearch6.8.0的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch_02_使用docker安装elasticsearch6.8.0

ElasticSearch_01_使用docker安装elasticsearch6.8.0

如何使用 docker compose 安装 ElasticSearch 插件

架构师成长记_第八周_02_ Centos安装分布式搜索引擎 ElasticSearch

ElasticSearch_02_ES的基本筛选条件

Docker 安装 Kibana