当前位置: 首页 > article >正文

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

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

Docker 安装 ES

创建 docker 网络

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

# 创建名为 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 镜像

# 指定 es 版本下载
docker pull elasticsearch:7.17.9

运行容器

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

# 完整版命令
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 ,有如下输出说明安装成功

{
  "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 桌面版进行修改

  • 设置密码

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

docker restart elasticsearch
  • 验证

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

Docker 安装 Kibana

下载 Kibana 镜像

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

运行容器

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

# 添加以下配置
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 中展示,索引模式支持使用 * 进行通用符匹配
      如: 
      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等。

http://www.kler.cn/news/351174.html

相关文章:

  • ARM/Linux嵌入式面经(五二):华为
  • 自定义多级联动选择器指南(uni-app)
  • 理解JVM里的栈信息
  • SpringBoot实现的智能个人理财平台
  • Java-对一个List进行groupingBy分组操作同时保持原有的排序
  • nodejs 实现docker 精简可视化控制
  • Python办公自动化案例:实现word表格转换成Excel表格
  • 【MySQL】入门篇—基本数据类型:使用WHERE子句进行数据过滤
  • conda新建环境中存在大量ros相关python包
  • SpinalHDL之设计错误(Design Errors)(二)
  • Sequelize 提示报错ERR_HTTP_HEADERS_SENT
  • 京存助力自动驾驶,打造智能出行未来
  • 使用git页面如何用旧项目创建一个新项目出来并且保留所有分支内容和提交历史
  • GC1277替代OCH477/灿瑞芯片在电脑散热风扇中的应用
  • 计算机网络—静态路由
  • set的基本用法 和 底层简单了解
  • 一个人走到一条岔路,不知道该往哪里走,前面有两个人,但是这两个人中其中一个人永远说真话,另一个人永远说假话
  • 【Linux进程信号】Linux信号机制深度解析:保存与处理技巧
  • Spring Boot图书管理:进销存系统的现代化解决方案
  • 基于Matlab使用蚁群算法寻找最优路径
  • 顺序执行的Runnable队列
  • 【Java 22 | 11】 深入解析Java 22 : String API 增强特性
  • 【Redis】Zset类型常用命令
  • AWS账号与亚马逊账号的关系解析
  • 【网络安全】JSONP劫持原理及攻击实战
  • 鸿蒙系统开发快速入门教程