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` 等脚本。
|