防火墙配置
我们把 9200 和 9300 两个端口,设置为允许对外访问笔者这边是测试环境,为了防止后续麻烦,直接关闭防火墙
# 查看防火墙状态,running 为运行状态 firewall-cmd --state # 停用防火墙 systemctl stop firewalld.service # 禁止防火墙开机自启 systemctl disable firewalld.service # 查看防火墙状态,是否是running firewall-cmd --state
创建一个 docker 虚拟网络
-- 创建命令 docker network create --driver bridge --subnet=10.10.0.0/16 --gateway=10.10.0.1 mynet -- 查看是否创建成功 docker network ls安装 elasticsearch 创建数据卷目录
# data 存放数据 plugins 存放插件 mkdir /opt/docker/elasticsearch/data mkdir /opt/docker/elasticsearch/plugins chmod 777 /opt/docker/elasticsearch/data chmod 777 /opt/docker/elasticsearch/plugins运行 ES
docker-compose.yml
版本号:8.1.0
运行模式:单例
设置内存占用:128 MB,这里是自用测试环境,标准环境不设置或者设置为 4G 以上
version: '3'
services:
elasticsearch:
image: elasticsearch:8.1.0 # 镜像名
container_name: es # 容器名
volumes:
- /opt/docker/elasticsearch/data:/usr/share/elasticsearch/data
- /opt/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins
ports:
- 9200:9200 # 端口,宿主机:容器
environment:
- "discovery.type=single-node" # 单例
- "ES_JAVA_OPTS=-Xms128m -Xmx128m" # 内存
networks:
default:
external:
name: mynet
启动命令
第一次运行需要下载镜像,请耐心等待
如果机器性能较差,容器启动的时间也可能比较长,耐心等待一会
docker-compose up -d监测是否启动成功
浏览器输入 http://ip:9200,如 http://192.168.200.100:9200
出现输入账号密码的弹窗即为安装成功
账号密码可以看到和低版本相比,这个版本开启了账号密码验证的功能
但是我们并不知道账号密码是多少,这时候我们就需要去重置一下账号密码
# 进入 docker 容器 docker exec -it es bash cd bin # 执行重置密码的命令 ./elasticsearch-setup-passwords interactive
根据提示,依次设置几个账号的密码,之后我们会用到 下面两个账号
elastic: 操作用户
kibana_system:用于 kibana 连接使用
重置密码后,我们上面的弹框输入账号 elastic 和 密码,返回下面的内容为启动成功
{
"name" : "9dd8fc6a8a46",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "NtcKAJTdTd6rU-NTzwnrSg",
"version" : {
"number" : "8.1.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "3700f7679f7d95e36da0b43762189bab189bc53a",
"build_date" : "2022-03-03T14:20:00.690422633Z",
"build_snapshot" : false,
"lucene_version" : "9.0.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
安装 kibana
运行 kibana
docker-compose.yml
环境变量里的账号为专用账号: kibana_system
version: '3'
services:
kibana:
image: kibana:8.1.0 # 镜像名
container_name: kibana # 容器名
ports:
- 5601:5601 # 端口,宿主机:容器
environment:
- ELASTICSEARCH_HOSTS=http://es:9200 # es 地址
- SERVER_PORT=5601 # 端口
- ELASTICSEARCH_USERNAME=kibana_system # es 的 kibana 专用账号
- ELASTICSEARCH_PASSWORD="920619" # 密码,这里如果是纯数字需要加引号
- XPACK_REPORTING_ROLES_ENABLED=false
- XPACK_REPORTING_ENCRYPTIonKEY=xre12345678909876543210
- XPACK_SECURITY_ENCRYPTIonKEY=xse12345678909876543210
- XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIonKEY=xee12345678909876543210
networks:
default:
external:
name: mynet
启动命令
第一次运行需要下载镜像,请耐心等待
如果机器性能较差,容器启动的时间也可能比较长,耐心等待一会
docker-compose up -d验证是否成功
地址栏输入:http://ip:5601 如 http://192.168.200.100:5601
出现如下界面为安装成功,接下来我们就可以使用 elastic 账号登入进行操作了
安装 IK 分词器目前 es 自带的分词器对于中文来讲不是那么的友好,所以我们需要安装对中文友好的 ik 分词器
点击下载 ik 分词器
注意是下载第一个文件,下载源码还需要后续配置,不推荐,我们直接下载编译好的就行
将下载好的压缩包上传到 之前运行 es 容器的插件数据卷目录:/opt/docker/elasticsearch/plugins
# 创建分词器目录 cd /opt/docker/elasticsearch/plugins mkdir ik # 将压缩包上传到 ik 目录 cd ik rz # 解压 unzip elasticsearch-analysis-ik-8.1.0.zip # 删除压缩包 rm -rf elasticsearch-analysis-ik-8.1.0.zip # 重启 es 容器 docker restart es
重启可能需要一定时间,需要耐心等待等待的过程中我们可以通过查看日志,看看安装是否顺利
# 查看容器日志 docker log -f es
ik 分词器的两种模式ik_smart 最少切分ik_max_word 最细切分



