ElasticSearch_02_使用docker安装elasticsearch6.8.0
Posted 毛奇志
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElasticSearch_02_使用docker安装elasticsearch6.8.0相关的知识,希望对你有一定的参考价值。
系列文章目录
文章目录
- 系列文章目录
- 前言
- 一、安装docker
- 二、在docker上安装elasticsearch并通过windows访问
- 三、Postman对es基本元素进行操作
- 四、es上安装IK分词器
- 五、kibana监控es
- 总结
前言
本文安装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 插件