Blame view

docs/ES/ES_9_本机安装记录.md 4.48 KB
1589c4f8   tangwang   es 9.3 install
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  # Elasticsearch 9.3.1 本机安装记录
  
  [ES_9](./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` |
02c40701   tangwang   frontend proxy se...
15
  | 安全 | 当前为开启状态(HTTP 访问需认证) |
1589c4f8   tangwang   es 9.3 install
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
  | 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 elasticsearch` 且 `systemctl 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 kibana` 且 `systemctl start kibana`
  
  ## 验证
  
  ```bash
  curl http://127.0.0.1:9200
  # 返回 cluster_name: searchengine-cluster, version.number: 9.3.1
  ```
  
  ## 常用命令
  
  ```bash
  # 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 同源)
02c40701   tangwang   frontend proxy se...
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
  - **配置**`/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 使用了业务用户 `saas`(`elasticsearch.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`
  
  ### 排障命令速查
  
  ```bash
  # 服务与监听
  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 重新拉起并确认状态。
1589c4f8   tangwang   es 9.3 install
118
119
120
121
122
  
  ## 与 SearchEngine 项目集成
  
  - 环境变量或配置中 ES 地址:`ES_HOST=http://127.0.0.1:9200`
  - 索引与导入:使用项目内 `mappings/search_products.json`(9.3 建议 bfloat16)及 `./scripts/ingest.sh` 等脚本。