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,已安装并启用

已执行步骤

  1. 添加 ES 9.x APT 源与 GPG,apt-get install elasticsearch
  2. 创建 /data/elasticsearch/{data,logs}chown elasticsearch:elasticsearch
  3. 配置 elasticsearch.yml:cluster、node、path.data/logs、network、discovery、security
  4. JVM 堆:/etc/elasticsearch/jvm.options.d/heap.options-Xms4g -Xmx4g(本机约 15GB 内存)
  5. sysctl 与 limits 已按文档追加(vm.max_map_count、nofile、nproc、memlock 等)
  6. systemctl enable elasticsearchsystemctl start elasticsearch
  7. 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 kibanasystemctl 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: 5601
    • elasticsearch.hosts: ["http://localhost:9200"]
    • elasticsearch.serviceAccountToken: "<token>"
  • 访问:浏览器打开 http://<本机IP>:5601(当前会跳转登录页)

2026-03-11 Kibana 故障修复记录

现象

  • systemctl status kibana 显示运行,但公网访问 :5601 页面无法打开或长时间无响应。
  • 日志出现 savedobjects-service 长时间迁移;HTTP 端口虽然监听但请求超时。

根因

  1. 监听地址问题(已修复)
    Kibana 一度仅监听 127.0.0.1:5601,外部无法直接访问。

  2. 认证方式问题(核心根因,已修复)
    Kibana 使用了业务用户 saaselasticsearch.username/password)连接 ES。
    迁移阶段需要对 .kibana_* 受限索引执行创建动作,日志报错:

    • security_exception
    • action [indices:admin/create] is unauthorized ... on restricted indices [.kibana_*] 导致 Saved Objects migration 卡住,HTTP 长时间无有效响应。

修复动作

  1. /etc/kibana/kibana.yml 固化对外监听:
    • server.host: "0.0.0.0"
    • server.port: 5601
  2. 在 ES 创建 Kibana service account token:
    • POST /_security/service/elastic/kibana/credential/token/kibana-server-1
  3. Kibana 认证改为 service token(官方推荐):
    • 删除 elasticsearch.username
    • 删除 elasticsearch.password
    • 新增 elasticsearch.serviceAccountToken
  4. 重启并验证:
    • 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 复用应用侧业务账号(如 .envES_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 等脚本。