Docker 下安装 ElasticSearch 和 Kibana (单节点)

Docker 下安装 ElasticSearch 和 Kibana (单节点)

Docker 安装 ES

创建 docker 网络

需要 docker 中的 es 和 kibana 进行网络通信,使用 docker 网络进行容器间通信

shell 复制代码
# 创建名为 es-network 的桥接网络
docker network create es-network

# 查询 docker 网络
docker network ls
输出如下:
NETWORK ID     NAME         DRIVER    SCOPE
b569d3366b85   bridge       bridge    local
8ab6a69d63df   es-network   bridge    local
7650772bc095   host         host      local
44734947ec78   none         null      local

下载 ES 镜像

shell 复制代码
# 指定 es 版本下载
docker pull elasticsearch:7.17.9

运行容器

若需要挂载容器卷,须提前创建文件夹

shell 复制代码
# 完整版命令
docker run -d --name elasticsearch -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms1G -Xmx1G"  -v D:\dev\docker\es\data:/usr/share/elasticsearch/data -v D:\dev\docker\es\logs:/usr/share/elasticsearch/logs  -v D:\dev\docker\es\plugins:/usr/share/elasticsearch/plugins  --network es-network elasticsearch:7.17.9

# 简化版命令
docker run -d --name elasticsearch -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 --network es-network elasticsearch:7.17.9

# 命令解释
-e "discovery.type=single-node" :单节点运行
-p 9200:9200 -p 9300:9300 :指定端口号映射;9200是HTTP API端口、9300是集群间节点通信端口
-e "ES_JAVA_OPTS=-Xms1G -Xmx1G" :指定初始堆内存和最大堆内存,避免因内存不足而导致性能问题或崩溃。通常议将这两个值设置为相同,以优化性能。
-v /xxx/xxx/xxx :挂载卷,用于将docker容器内的文件与宿主机进行同步
--network es-network :将es容器加入网络,用于与kibana通信

验证安装

浏览器输入 localhost:9200 ,有如下输出说明安装成功

shell 复制代码
{
  "name" : "e41442030a3f",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "bq17ajCvSdGBIPr38JrPNQ",
  "version" : {
    "number" : "7.17.9",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "ef48222227ee6b9e70e502f0f0daa52435ee634d",
    "build_date" : "2023-01-31T05:34:43.305517834Z",
    "build_snapshot" : false,
    "lucene_version" : "8.11.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

设置用户密码

  • 开启 xpack.security

修改文件: /usr/share/elasticsearch/config/elasticsearch.yml,末尾追加下述配置 xpack.security.enabled: true

文件修改方式:

  1. 使用 docker cp 命令完成容器和宿主机的文件传输,进行文件修改,

    1. 容器 -> 宿主机:docker cp elasticsearch:/usr/share/elasticsearch/config.elasticsearch.yml D:/xxx/xxx
    2. 宿主机 -> 容器:docker cp D:/xxx/xxx elasticsearch:/usr/share/elasticsearch/config.elasticsearch.yml

    参数解释:docker cp path1 path2

    -- path1 文件复制源路径

    -- path2 文件复制目标路径

    若路径为容器内的路径,则需写为: 容器名称:路径

    如:elasticsearch:/usr/share/elasticsearch/config.elasticsearch.yml

  2. 直接使用 docker 桌面版进行修改

  • 设置密码

    • 手动
    SHELL 复制代码
    # 进入目录
    cd /usr/share/elasticsearch/bin
    # 手动设置用户名和密码,手动输入
    elasticsearch-setup-passwords interactive
    • 自动
    shell 复制代码
    # 进入目录
    cd /usr/share/elasticsearch/bin
    # 自动生成,密码要保存好
    elasticsearch-setup-passwords auto
  • 重启镜像

shell 复制代码
docker restart elasticsearch
  • 验证

浏览器输入 localhost:9200 ,弹出输入用户名和密码弹窗,登录并查看输出;用户名为:elastic。

Docker 安装 Kibana

下载 Kibana 镜像

shell 复制代码
# 指定版本下载 kibana
# 要和上面的 es 的版本相同
docker pull kibana:7.17.9

运行容器

shell 复制代码
docker run -d --name kibana1 -p 5601:5601 --network es-network -e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" kibana:7.17.9

# 参数解释
-p 5601:5601 :端口映射
--network es-network : 加入docker网络,用于与elasticsearch通信
-e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" :指定es地址,可以用 `容器名称` 代替

更改配置

修改 /usr/share/kibana/config/kibana.yml

shell 复制代码
# 添加以下配置
i18n.locale: "zh-CN"   # 设置kibana为中文
csp.strict: false      # 内容安全策略,调试模型设置为false'

# 以下为 kibana 连接es的用户名和密码,若es没开启认证,以下配置可以不加
elasticsearch.username: "kibana_system"
elasticsearch.password: "admin123"

重启 kibana 容器,进入 localhost:5601,进行登录,若es开启了认证,则需输入账号密码;

Kibana常用功能

菜单栏说明

只介绍常用、核心功能

  • Analytics: 分析模块,用于 ES 查询分析

    • Discover: 用于 ES 查询的用户界面
    • DashboardCanvasMaps :该模块主要用于可视化展示,可以根据自身需求设置展示数据、展示方式等。
  • Management:系统设置

    • 开发工具:编写 DSL 语句,与 ES 交互的工具;

    • Stack Management : 系统设置模块

      • 索引管理 : 对所连接 ES 的索引进行管理,包括:索引设置、索引删除、索引映射修改、索引模板等。
      • 安全:对系统的权限进行控制,显示左侧菜单栏的显示等。
      • 索引模式:管理索引模式,只有能被索引模式匹配的数据,才会在 Analytics 中展示,索引模式支持使用 * 进行通用符匹配
      shell 复制代码
      如: 
      1. log-test01、 log-test02、 log-test03 索引会被 log*、log-*、log-test* 索引模式匹配
      2. system_info 索引会被 system_info 索引模式匹配(具体指定,不使用通配符)

导入示例数据

  1. 进入 http://localhost:5601/app/integrations/browse 数据集成配置页面,点击集成 样例数据,选择任一样例数据;
  2. 点击菜单栏中 Analytics ,查看Discover Dashboard Canvas Maps等。
相关推荐
Karoku066几秒前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
条纹布鲁斯37 分钟前
dockerdsktop修改安装路径/k8s部署wordpress和ubuntu
docker·kubernetes
上优2 小时前
uniapp 选择 省市区 省市 以及 回显
大数据·elasticsearch·uni-app
工业3D_大熊2 小时前
3D可视化引擎HOOPS Luminate场景图详解:形状的创建、销毁与管理
java·c++·3d·docker·c#·制造·数据可视化
szc17673 小时前
docker 相关命令
java·docker·jenkins
CP-DD3 小时前
Docker 容器化开发 应用
运维·docker·容器
Stark-C3 小时前
万物皆可Docker,在NAS上一键部署最新苹果MacOS 15系统
macos·docker·策略模式
微信-since811923 小时前
[ruby on rails] 安装docker
后端·docker·ruby on rails
jwolf24 小时前
Elasticsearch向量搜索:从语义搜索到图搜图只有一步之遥
elasticsearch·搜索引擎·ai
吴半杯5 小时前
gateway漏洞(CVE-2022-22947)
docker·kubernetes·gateway