Centos7 安装 ElasticSearch7.4.2 详细教程
一、Centos7启动docker,并拉取Elasticsearch二、拉取 kibana 镜像,可视化检索数据三、配置并启动elasticsearch四、配置并启动Kibana五、总结
Elasticsearch 是一个高度可扩展且开源的全文检索和分析引擎。它可以让您快速且近实时地存储,检索以及分析海量数据。它通常用作那些具有复杂搜索功能和需求的应用的底层引擎或者技术。
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、Centos7启动docker,并拉取Elasticsearch
提示:还没有在虚拟机中安装docker的同学们,可以先查看我的这份博客啊:Centos7安装docker,配置阿里云镜像加速.
1、查看正在运行的容器
docker ps
如图,我目前docker只安装了redis 以及 mysql
2、查看下载的镜像
docker images
我电脑中下载的镜像,也只有redis 以及 mysql
3、拉取我们需要下载的elastic镜像
docker pull elasticsearch:7.4.2
如图,就是下载成功
我们再查看一下docker下载的镜像,就能看到elasticsearch
二、拉取 kibana 镜像,可视化检索数据
1、拉取我们需要下载的kibana 镜像
docker pull kibana:7.4.2
如图,就是下载成功
同样,我们再查看一下docker下载的镜像,就能看到kibana,版本与elasticsearch保持一致
三、配置并启动elasticsearch
1、首先检查一下我们的虚拟机还有多少内存,虚拟机我是只给了1G的总内存
free -m
可用内存还剩326M,能满足安装需求
2、创建相关文件夹
# 在mydata文件夹下创建相关的文件夹,之后将docker内的配置文件等信息都挂在到外部的这个文件夹
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
查看我们刚刚创建的文件夹,可以看到不仅有我之前创建的mysql、redis文件夹,还有刚刚新建的elasticsearch文件夹
3、将下面的配置写入elasticsearch.yml文件内,允许任何机器进行对它的访问
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
如图,就成功将值写入elasticsearch.yml文件中,这是yml的键值对语法
4、继续添加配置,执行下面你的命令
命令 | 解释 |
---|---|
–name | 表示给这个容器起一个名字:elasticsearch |
-p | 暴露两个端口,9200,9300 |
每行末尾的 \ | 表示要换行 |
single-node | 表示单节点运行 |
ES_JAVA_OPTS | 指定初始占用64M内存,最大占用128M,不指定的话会将虚拟机卡死,觉得内存给小了可自己定义,比如512 |
-v | 挂载,将容器内的配置与外部的配置进行一一关联 |
-d | 后台启动指定镜像 |
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
如图:出现这串标志就代表运行成功
5、但是,使用 docker ps 命令却看不到启动的elasticsearch服务,这时,我们可以查看错误日志
# 查看错误日志
docker logs elasticsearch
根据排查发现,是data目录被拒绝访问,原因是我们挂载到外面的目录的权限不够。
6、给挂载到外面的elasticsearch文件夹,提升权限
chmod -R 777 /mydata/elasticsearch/
执行完会发现elasticsearch文件夹下的所有目录均为可读可写可执行
7、重新启动elasticsearch
# 1、显示所有的容器,包括未运行的
docker ps -a
# 2、启动elasticsearch
docker start +服务的id(只要能保证唯一性,简写就行)
# 3、列出正在运行的容器
docker ps
8、当我们在本地电脑上输入虚拟机地址加上elasticsearch的端口号,能出现下面的json串,就代表安装成功![ 样式就不用介意啦,我只是在浏览器上安装了json插件美化了一下 ]
四、配置并启动Kibana
1、根据下面的命令,启动kibana,查elastic的IPAddress
【注意:我尝试过多次,其实查elastic的IPAddress 并不友好,因为每次重启虚拟机这个地址都会变,大家也可以试试用自己的虚拟机地址试试】
# XXXX代表的是elastic的容器id 我这里是:26c728ad5f86
docker inspect XXXX|grep IPAddress
得到 IPAddress 为:172.17.0.4
命令 | 解释 |
---|---|
–name | 表示给这个容器起一个名字:kibana |
-e | 修改紧跟在后面的参数 |
-p | 映射kibana的端口号,5601 |
-d | 后台启动指定镜像 |
# 这个192.168.10.10是我的虚拟机地址,如果启动失败,可以换成上面查的查elastic的IPAddress:我的是172.17.0.4
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.10.10:9200 -p 5601:5601 -d kibana:7.4.2
如图,kibana成功启动
2、在浏览器访问kibana
发现提示说:服务还未启动。
3、查看kibana日志,并没有发现报错信息
docker logs 135【请将135改为自己的kibanaid】
再回到浏览器核对时,发现可视化界面已经出来了,查看虚拟机还剩多少内存时,发现可用内存为46M
应该是虚拟机内存小了导致启动有点慢,但是好在安装成功😂
五、安装ik分词器
1、首先,我们从GitHub下载对应版本的压缩包
地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
找到7.4.2版本的压缩包
2、使用文件传输工具将这个压缩包放到虚拟机的 /mydata/elasticsearch/plugins 目录下
我这里使用的工具是 xftp
3、由于我们在之前对此目录进行过挂载,所以此时dock内部的elasticsearch同样具有此插件
# 进入ES控制台,XXXXX指ES的ID
docker exec -it XXXXXXXX /bin/bash
4、退出docker,返回到**/mydata/elasticsearch/plugins** 目录,解压此插件
# 解压命令
unzip elasticsearch-analysis-ik-7.4.2.zip
我这里提示命令未找到,所以我还是选择在本地解压好再传进去已经解压的 ik
5、查看传输好的插件并修改 ik目录的权限
chmod -R 777 ik/
6、检查ik分词器是否安装成功
# 1、进入docker内的elasticsearch内的bin目录中
docker exec -it 26c /bin/bash
cd bin/
# 2、执行【列出安装好的ES插件】目录
elasticsearch-plugin list
如图所示,即为安装成功
7、退出docker,重启elasticsearch服务
docker restart elasticsearch
如图即为重启成功,之后便可正常使用啦
8、验证 ik 的效果
六、总结
最后附上elasticSearch相关命令
命令 | 描述 |
---|---|
GET /_cat/nodes | 查看所有节点 |
GET /_cat/health | 查看es健康状况 |
GET /_cat/master | 查看主节点 |
GET /_cat/indices | 查看所有索引 show databases; |
设置开机启动 elasticsearch
docker update elasticsearch --restart=always
设置开机启动 kibana
docker update kibana --restart=always
取消设置的话,always 改为 no 就好了,同样支持下面的写法
更多推荐
所有评论(0)