Saki's 研究记录

Elasticsearch-Kibana docker-compose - Value of "elastic" is forbidden

字数统计: 285阅读时长: 1 min
2023/12/04

闲的无事,把自己服务器的ESKibana7.10.1升级到8.x, 记录一下遇到的问题。

问题现象

启动服务,ES正常,但在浏览器访问http://127.0.0.1:5601提示未准备就绪,日志提示:

1
[FATAL][root] Error: [config validation of [elasticsearch].username]: value of "elastic" is forbidden. This is a superuser account that cannot write to system indices that Kibana needs to function. Use a service account token instead. Learn more: https://www.elastic.co/guide/en/elasticsearch/reference/8.0/service-accounts.html

翻译:
elastic这是一个超级用户帐户,不能写入Kibana需要运行的系统索引,使用服务账户令牌代替。

解决方案

修改docker-compose.yaml(容器编排脚本), 不要直接使用- ELASTICSEARCH_PASSWORD=xxxx,改用-ELASTICSEARCH_SERVICEACCOUNTTOKEN=MY_TOKEN:

1
2
3
4
5
6
7
8
9
10
11
12
13
...
Kibana:
image: kibana:8.10.2
container_name: kibana
restart: always
ports:
- '5601:5601'
environment:
- ELASTICSEARCH_URL=http://elasticsearch:9200
- ELASTICSEARCH_SERVICEACCOUNTTOKEN=MY_TOKEN
depends_on:
- Elasticsearch
...

使用命令docker-compose up -d拉起ESKibana后, 生成token:

1
curl -X POST -u elastic:password "localhost:29200/_security/service/elastic/kibana/credential/token/token1?pretty"

回填token替换docker-compose.yaml中的MY_TOKEN,再重新执行命令docker-compose up -d更新容器, 问题解决。

引用

https://stackoverflow.com/questions/71615937/elasticsearch-kibana-docker-compose-value-of-elastic-is-forbidden

以上。

CATALOG
  1. 1. 问题现象
  2. 2. 解决方案
  3. 3. 引用