ES_9_本机安装记录.md
4.48 KB
Elasticsearch 9.3.1 本机安装记录
按 ES_9 文档在本机完成安装,数据与日志安装在 /data 目录下。
安装概要
| 项目 | 说明 |
|---|---|
| 版本 | Elasticsearch 9.3.1(APT 9.x 源) |
| 安装方式 | 官方 APT 源,二进制在 /usr/share/elasticsearch |
| 数据目录 | /data/elasticsearch/data |
| 日志目录 | /data/elasticsearch/logs |
| 配置 | /etc/elasticsearch/elasticsearch.yml |
| 模式 | 单机单节点 discovery.type: single-node |
| 安全 | 当前为开启状态(HTTP 访问需认证) |
| HTTP | http://0.0.0.0:9200 |
| Kibana | 9.3.1,http://0.0.0.0:5601,已安装并启用 |
已执行步骤
- 添加 ES 9.x APT 源与 GPG,
apt-get install elasticsearch - 创建
/data/elasticsearch/{data,logs}并chown elasticsearch:elasticsearch - 配置
elasticsearch.yml:cluster、node、path.data/logs、network、discovery、security - JVM 堆:
/etc/elasticsearch/jvm.options.d/heap.options中-Xms4g -Xmx4g(本机约 15GB 内存) - sysctl 与 limits 已按文档追加(vm.max_map_count、nofile、nproc、memlock 等)
systemctl enable elasticsearch且systemctl start elasticsearch- Kibana:
apt-get install kibana,配置/etc/kibana/kibana.yml(server.host: 0.0.0.0, elasticsearch.hosts: http://127.0.0.1:9200),`systemctl enable kibana且systemctl start kibana`
验证
curl http://127.0.0.1:9200
# 返回 cluster_name: searchengine-cluster, version.number: 9.3.1
常用命令
# Elasticsearch
sudo systemctl status elasticsearch # 状态
sudo systemctl start elasticsearch # 启动
sudo systemctl stop elasticsearch # 停止
# Kibana
sudo systemctl status kibana
sudo systemctl start kibana
sudo systemctl stop kibana
Kibana
- 版本:9.3.1(与 ES 同源)
- 配置:
/etc/kibana/kibana.yml - 当前关键配置:
server.host: "0.0.0.0"server.port: 5601elasticsearch.hosts: ["http://localhost:9200"]elasticsearch.serviceAccountToken: "<token>"
- 访问:浏览器打开
http://<本机IP>:5601(当前会跳转登录页)
2026-03-11 Kibana 故障修复记录
现象
systemctl status kibana显示运行,但公网访问:5601页面无法打开或长时间无响应。- 日志出现
savedobjects-service长时间迁移;HTTP 端口虽然监听但请求超时。
根因
监听地址问题(已修复)
Kibana 一度仅监听127.0.0.1:5601,外部无法直接访问。认证方式问题(核心根因,已修复)
Kibana 使用了业务用户saas(elasticsearch.username/password)连接 ES。
迁移阶段需要对.kibana_*受限索引执行创建动作,日志报错:security_exceptionaction [indices:admin/create] is unauthorized ... on restricted indices [.kibana_*]导致 Saved Objects migration 卡住,HTTP 长时间无有效响应。
修复动作
- 在
/etc/kibana/kibana.yml固化对外监听:server.host: "0.0.0.0"server.port: 5601
- 在 ES 创建 Kibana service account token:
POST /_security/service/elastic/kibana/credential/token/kibana-server-1
- Kibana 认证改为 service token(官方推荐):
- 删除
elasticsearch.username - 删除
elasticsearch.password - 新增
elasticsearch.serviceAccountToken
- 删除
- 重启并验证:
systemctl status kibana=active (running)ss -lntp | grep 5601=0.0.0.0:5601- 日志出现
Completed all migrations - 访问
http://<IP>:5601/返回302 -> /login
排障命令速查
# 服务与监听
sudo systemctl status kibana --no-pager -n 50
sudo ss -lntp | grep 5601
# Kibana 日志(关注迁移与权限报错)
sudo tail -n 200 /var/log/kibana/kibana.log
sudo journalctl -u kibana -n 200 --no-pager
# 本机/公网 HTTP 验证
curl -I http://127.0.0.1:5601/
curl -I http://<公网IP>:5601/
注意事项
- 不要让 Kibana 复用应用侧业务账号(如
.env的ES_USERNAME/ES_PASSWORD)作为系统连接账号。 - 优先使用
elasticsearch.serviceAccountToken。 - 如果手动操作过
/run/kibana/kibana.pid,可能造成 stop/restart 流程异常,需用 systemd 重新拉起并确认状态。
与 SearchEngine 项目集成
- 环境变量或配置中 ES 地址:
ES_HOST=http://127.0.0.1:9200 - 索引与导入:使用项目内
mappings/search_products.json(9.3 建议 bfloat16)及./scripts/ingest.sh等脚本。