Elasticsearch简介
#简介
Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,可以实现单机和集群部署,轻松缩放规模。ELK:Elasticsearch + Kibana
#官方地址
https://www.elastic.co/cn/
https://www.elastic.co/guide/en/elastic-stack/7.6/overview.html
https://hub.docker.com/_/elasticsearch
#应用场景
日志分析:对IT设备进行运维分析与故障定位、对业务指标分析运营效果。
站内搜索:对网站内容进行关键字检索、对电商网站商品进行检索与推荐。
向量检索:对图像、视频、语料等非结构化数据提取的特征向量数据进行最近邻或近似近邻检索。
运行环境
#运行环境
CentOS Stream9
#前期环境条件
已安装好Docker,配置加速镜像
Docker部署Elasticsearch + Kibana
#基于7.6.0版本拉取镜像,以下镜像源现在依然可用
$ docker pull m.daocloud.io/docker.io/elasticsearch:7.6.0
$ docker pull m.daocloud.io/docker.io/kibana:7.6.0
#准备
$ mkdir -p /docker-compose/elastic76/data
$ chmod 777 /docker-compose/elastic76/data #如果不授权,容器里的用户权限不足操作外层目录,启动会失败#部署ElasticSearch
$ docker run -d --name es7.6 -p 9200:9200 -p 9300:9300 -v "/docker-compose/elastic76/data":/usr/share/elasticsearch/data -e "discovery.type=single-node" elasticsearch:7.6.0#查看日志
$ docker logs es7.6 --since 30m#访问验证
http://ip:9200#部署Kibana
$ docker run --name kibana7.6 -p 5601:5601 -d --link es7.6:elasticsearch kibana:7.6.0
$ docker logs -f kibana7.6#修改配置文件
$ docker exec -it kibana7.6 bash
$ cd config
$ vi kibana.yml1)如果地址不对,改一下地址
2)添加:i18n.locale: "zh-CN"#改配后重启
$ docker restart kibana7.6#验证
http://ip:5601
安装中文分词器插件,配置认证
#安装中文分词器(版本务必对应)
#下载地址:https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-7.6.0.zip$ wget https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-7.6.0.zip
$ docker cp elasticsearch-analysis-ik-7.6.0.zip es7.6:/usr/share/elasticsearch/plugins/$ docker exec -it es7.6 bash
#安装插件
$ cd plugins/
$ mkdir analysis-ik
$ mv elasticsearch-analysis-ik-7.6.0.zip analysis-ik/
$ cd analysis-ik
$ unzip elasticsearch-analysis-ik-7.6.0.zip
$ rm -rf elasticsearch-analysis-ik-7.6.0.zip#重启服务
$ docker restart es7.6#验证
POST _analyze
{
"analyzer": "ik_max_word",
"text": "2024春装新款连衣裙"
}#安全设置,认证配置
$ docker exec -it es7.6 bash
$ vi /usr/share/elasticsearch/config/elasticsearch.yml#开启自带的xpack的验证功能(复制如下内容到elasticsearch.yml)
xpack.security.enabled: true#重启服务
$ docker restart es7.6#设置密码
$ docker exec -it es7.6 bash
$ cd /usr/share/elasticsearch/bin
$ ./elasticsearch-setup-passwords interactive
#给每个账号设置密码,至少6位(举例:admin1)
#改变kibana
$ docker exec -it kibana7.6 bash
$ vi config/kibana.yml#复制如下内容到【需与 ES 的 ELASTIC_PASSWORD(admin1) 一致】kibana.yml
elasticsearch.username: "elastic"
elasticsearch.password: "admin1"#重启服务
$ docker restart kibana7.6#验证
登录kibana时需要用 elastic 作为用户名。
基于Dockerfile、docker-compose.yml一键部署 Elasticsearch + Kibana
#先做准备工作
$ mkdir -p /docker-compose/elastic76/data
$ mkdir -p /docker-compose/elastic76/config
$ mkdir -p /docker-compose/elastic76/plugins
$ mkdir -p /docker-compose/kibana76/config
###############第一步:编辑elasticsearch.yml############
$ vi /docker-compose/elasticsearch.yml
# 复制以下内容到elasticsearch.yml,保存并退出
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: true###############第一步:编辑elasticsearch.yml############
###############第二步:下载elasticsearch-analysis-ik-7.6.0.zip############
$ wget -P /docker-compose/elastic76/plugins/ https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-7.6.0.zip
###############第二步:下载elasticsearch-analysis-ik-7.6.0.zip############
###############第三步:编辑构建镜像的Dockerfile、Makefile############
$ vim /docker-compose/Dockerfile
#输入以下内容并保存
# es的基础镜像
FROM elasticsearch:7.6.0# 1. 安装 IK 分词器
COPY ./plugins/elasticsearch-analysis-ik-7.6.0.zip /tmp/
RUN mkdir -p /usr/share/elasticsearch/plugins/analysis-ik && \
unzip /tmp/elasticsearch-analysis-ik-7.6.0.zip -d /usr/share/elasticsearch/plugins/analysis-ik && \
rm -f /tmp/elasticsearch-analysis-ik-7.6.0.zip# 2. 复制自定义配置(启用 X-Pack 安全认证)
COPY ./config/elasticsearch.yml /usr/share/elasticsearch/config/# 3. 设置环境变量(单节点模式)
ENV discovery.type=single-node# 4. 暴露端口
EXPOSE 9200 9300#保存Dockerfile文件后,继续创建Makefile
$ vim /docker-compose/Makefile
# 输入以下内容,并保存
build:
docker build -t elasticsearch-xpack:7.6.0 .
#保存Makefile文件后,执行make命令,可以得到一个elasticsearch-xpack:7.6.0的镜像
$ make
###############第三步:编辑构建镜像的Dockerfile、Makefile############
###############第四步:编辑kibana的kibana.yml的外部数据卷############
$ vim /docker-compose/kibana76/config/kibana.yml
#
# ** THIS IS AN AUTO-GENERATED FILE **
## Default Kibana configuration for docker target
server.name: kibana
server.host: "0.0.0.0"
# 通过服务名访问 ES,es7.6为docker-compose定义的服务名
elasticsearch.hosts: [ "http://es7.6:9200" ]# X-Pack 认证
xpack.monitoring.ui.container.elasticsearch.enabled: trueelasticsearch.username: "elastic"
# 需与 ES 的 ELASTIC_PASSWORD 一致
elasticsearch.password: "admin1"# 中文界面
i18n.locale: "zh-CN"
###############第四步:编辑kibana的kibana.yml的外部数据卷############
###############第五步:编辑docker-compose.yml,内容如下############
$ vim /docker-compose/docker-compose.yml
services: es7.6: container_name: es7.6 environment: - discovery.type=single-node - ELASTIC_PASSWORD=admin1 # 设置 elastic 超级用户密码(可选) volumes: - ./elastic76/data:/usr/share/elasticsearch/data ports: - "9200:9200" - "9300:9300" restart: unless-stopped setup-passwords: # 可选:初始化密码的临时容器(仅第一次运行时需要) image: elasticsearch-xpack:7.6.0 depends_on: - es7.6 command: > sh -c "sleep 30 && elasticsearch-setup-passwords auto --url http://elasticsearch:9200 -b" environment: - ELASTIC_PASSWORD=admin1 # 必须与 ELASTIC_PASSWORD 一致 kibana7.6: # 可选:初始化密码的临时容器(仅第一次运行时需要) image: kibana:7.6.0 container_name: kibana7.6 depends_on: - es7.6 volumes: - ./kibana76/config/kibana.yml:/usr/share/kibana/config/kibana.yml ports: - "5601:5601"###############第五步:编辑docker-compose.yml############
启动认证
$ docker-compose up -d
3912

被折叠的 条评论
为什么被折叠?



