安装 Elasticsearch 与 Kibana|Elasticsearch 七日笔记 03
学习目标
- 完成 Elasticsearch 和 Kibana 的安装配置,并在本地环境验证其运行状态,为后续学习奠定基础。
安装准备
环境要求
- 操作系统:
- Windows 10/11、Linux(如 Ubuntu)、MacOS。
- Java 环境:
- JDK 11 或 17(ES 8.x 自带 OpenJDK,可无需单独安装)。
- 检查:
java -version,确保版本兼容。
- 硬件要求:
- 内存:至少 2GB,建议 4GB 以上(ES 默认分配 1GB 堆内存)。
- 磁盘:至少 1GB 可用空间,更多数据需更大空间。
- CPU:双核即可,推荐多核提升性能。
下载资源
- Elasticsearch:
- 官网:
https://www.elastic.co/downloads/elasticsearch - 版本:8.17.2(zip 或 tar.gz 包,大约 300MB)。
- 下载地址示例:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.17.2-windows-x86_64.zip
- 官网:
- Kibana:
- 官网:
https://www.elastic.co/downloads/kibana - 版本:8.17.2(与 ES 版本匹配)。
- 下载地址示例:
https://artifacts.elastic.co/downloads/kibana/kibana-8.17.2-windows-x86_64.zip
- 官网:
文件结构
- ES 目录:
bin/:启动脚本(如elasticsearch.bat、elasticsearch)。config/:配置文件(如elasticsearch.yml、jvm.options)。logs/:日志文件(启动失败时查看)。data/:数据存储目录,默认存储索引数据。lib/:依赖库。
- Kibana 目录:
bin/:启动脚本(如kibana.bat、kibana)。config/:配置文件(如kibana.yml)。data/:Kibana 数据目录。
配置预览
- ES 默认配置(
elasticsearch.yml):cluster.name: elasticsearch node.name: node-1 network.host: 127.0.0.1 http.port: 9200 - Kibana 默认配置(
kibana.yml):server.port: 5601 elasticsearch.hosts: ["http://localhost:9200"]
安装 Elasticsearch 和 Kibana
下载与解压
- 步骤:
- 从官网下载 ES 和 Kibana 8.17.2 的 zip 包。
- 解压到本地目录:
- ES:
D:\elasticsearch-8.17.2 - Kibana:
D:\kibana-8.17.2
- ES:
- 确保路径无中文或特殊字符,避免启动问题。
启动 Elasticsearch
- 步骤:
- 打开命令行(Windows 用 CMD 或 PowerShell,Linux/Mac 用 Terminal)。
- 进入 ES 目录:
cd D:\elasticsearch-8.17.2 - 运行启动命令:
- Windows:
bin\elasticsearch.bat - Linux/Mac:
./bin/elasticsearch
- Windows:
- 等待启动完成:
- 终端会输出日志,关注
[INFO] [o.e.n.Node] [node-1] started。 - 启动时间约 10-30 秒,取决于硬件性能。
- 终端会输出日志,关注
- 验证:
- 浏览器访问
http://localhost:9200,返回:{ "name": "node-1", "cluster_name": "elasticsearch", "version": { "number": "8.17.2" }, "tagline": "You Know, for Search" } - 如果无响应,检查端口是否被占用(
netstat -aon | findstr 9200)。
- 浏览器访问
启动 Kibana
- 步骤:
- 打开另一个命令行窗口。
- 进入 Kibana 目录:
cd D:\kibana-8.17.2 - 运行启动命令:
- Windows:
bin\kibana.bat - Linux/Mac:
./bin/kibana
- Windows:
- 等待启动完成:
- 终端显示
Server running at http://localhost:5601。
- 终端显示
- 验证:
- 浏览器访问
http://localhost:5601,进入 Kibana 登录页面。 - 默认用户:
elastic,密码在 ES 启动日志中生成。
- 浏览器访问
配置密码(若需要)
- 背景:
- ES 8.x 默认启用安全特性(
xpack.security.enabled: true),需密码登录。
- ES 8.x 默认启用安全特性(
- 步骤:
- 检查 ES 启动日志,找到
elastic用户的密码,例如:Generated password for user [elastic] is [X7kP9mN2qL5vR8tJ] - 如果丢失,重置密码:
bin\elasticsearch-reset-password -u elastic- 生成新密码并记录。
- 在 Kibana 中使用
elastic和密码登录。
- 检查 ES 启动日志,找到
开启 Kibana 中文界面
- 编辑
kibana.yml,添加:i18n.locale: "zh-CN" - 重启 Kibana 生效。
初次体验
打开 Kibana
- 步骤:
- 访问
http://localhost:5601。 - 输入用户名
elastic和密码,登录成功后进入主页。 - 点击左侧“Dev Tools”(开发工具)。
- 访问
运行健康检查
- 步骤:
- 在 Dev Tools 左侧输入:
GET /_cluster/health - 点击绿色“运行”按钮(三角形)。
- 检查返回结果:
{ "status": "green", "number_of_nodes": 1, "active_primary_shards": 0, "active_shards_percent_as_number": 100.0 }
- 在 Dev Tools 左侧输入:
- 说明:
status: green表示集群健康。number_of_nodes: 1表示单节点运行。
探索其他命令
- 节点信息:
GET /- 返回与
localhost:9200相同的 JSON。
- 返回与
- 节点状态:
GET _cat/nodes?v- 返回:
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name 127.0.0.1 12 85 5 0.12 0.15 0.18 mdi * node-1
- 返回:
- 任务:
- 记录健康检查结果,理解
status的含义。
- 记录健康检查结果,理解
关键点
- ES 端口:默认 9200,用于 HTTP 请求。
- Kibana 端口:默认 5601,提供可视化界面。
- 单机模式:
- 测试时可将分片设为 1,副本设为 0,节省资源。
- 配置在
elasticsearch.yml中:cluster.initial_master_nodes: ["node-1"] number_of_shards: 1 number_of_replicas: 0
- 安全特性:
- ES 8.x 默认启用 X-Pack,必须登录 Kibana,需配置
elastic用户密码。 - 重置密码:
bin/elasticsearch-reset-password -u elastic。
- ES 8.x 默认启用 X-Pack,必须登录 Kibana,需配置
- 日志文件:
- 启动失败时查看
logs/elasticsearch.log。
- 启动失败时查看
常见问题及解决方法
- 问题:ES 启动失败,提示“port 9200 in use”。
- 原因:端口被占用。
- 解决:
- 检查占用进程:
netstat -aon | findstr 9200(Windows)。 - 杀死进程:
taskkill /PID <进程ID> /F。 - 或修改端口:编辑
elasticsearch.yml,设置http.port: 9201。
- 检查占用进程:
- 问题:Kibana 无法连接 ES。
- 原因:配置错误或 ES 未运行。
- 解决:
- 确保 ES 在
localhost:9200运行。 - 检查
kibana.yml:elasticsearch.hosts: ["http://localhost:9200"]
- 确保 ES 在
- 问题:内存不足错误。
- 原因:默认 JVM 堆内存(1GB)不足。
- 解决:
- 编辑
config/jvm.options,调整:-Xms512m -Xmx512m
- 编辑
- 问题:Kibana 提示“Missing authentication credentials”。
- 原因:未登录或密码错误。
- 解决:
- 检查
elastic用户密码。 - 重置密码并更新
kibana.yml:elasticsearch.username: "elastic" elasticsearch.password: "新密码"
- 检查
学习建议
- 动手实践:
- 安装过程中记录每个步骤的输出,便于排查问题。
- 在命令行运行
curl http://localhost:9200,熟悉 REST API。
- 阅读文档:
- 浏览官方文档的“Getting Started”部分,熟悉术语。
- 阅读
elasticsearch.yml和kibana.yml的注释,了解配置项。
- 工具准备:
- 安装 Postman 或 curl,用于测试 REST API。
- 用 VS Code 记录笔记,整理 JSON 示例。
总结
第一天是 Elasticsearch 学习的起点,通过理论学习,你了解了 ES 的基本原理和核心术语;通过实践操作,你成功安装了 ES 和 Kibana,并在本地运行了第一个健康检查命令。这为你后续的 CRUD、搜索和聚合奠定了基础。明天将进入实际操作,学习如何通过 REST API 管理数据,准备好迎接更具体的挑战吧!
本文是《Elasticsearch 七日笔记》系列的第 3 篇,对应第 1 天的学习内容。
