防火墙配置
# 查看防火墙状态,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
# data 存放数据 plugins 存放插件
mkdir /opt/docker/elasticsearch/data
mkdir /opt/docker/elasticsearch/plugins
chmod 777 /opt/docker/elasticsearch/data
chmod 777 /opt/docker/elasticsearch/plugins
docker-compose.yml
版本号:8.1.0
运行模式:单例
设置内存占用:256 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=-Xms256m -Xmx256m" # 内存
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"
}
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 账号登入进行操作了
目前 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 分词器的两种模式
对于后续我们可能会需要自动补全功能,就是在用户输入拼音的时候,就将用户可能查询的结果提示出来供用户选择,这就使需要我们需要一个将汉字转化为拼音的分词器
点击查询拼音分词器
安装方法也是解压到 plugins 数据卷下,可以参考 ik 分词器的安装,这里不再赘述
拼音分词器的模式: