Files
crmdesk/deploy/docker/readme/readme.kibana.md
T
2026-09-19 16:35:35 +08:00

6.2 KiB
Raw Blame History

Kibana 日志查询(Kibana Log Viewer

中文说明

Kibanacompose/compose-kibana.yaml,一镜像一文件)默认不随主栈启动,通过 start.sh 关键字或 compose 组合启用。

# 方式 A(推荐):启动中间件/应用栈时附带 Kibana(通常与 logstash 一起使用)
./start.sh all logstash kibana
./stop.sh stop all logstash kibana
./stop.sh down all logstash kibana

# 方式 B:仅 Kibana(需先确保 bytedesk-network 存在;在 deploy/docker 目录执行)
docker compose --env-file .env -f compose/compose-kibana.yaml up -d

# 方式 C:与现有 compose 组合
docker compose --env-file .env -f compose/compose-elasticsearch.yaml -f compose/compose-kibana.yaml up -d bytedesk-kibana

# 查看 Kibana 运行状态
docker compose --env-file .env -f compose/compose-kibana.yaml ps
docker compose --env-file .env -f compose/compose-kibana.yaml logs -f

访问地址:

  • Kibana: http://127.0.0.1:15601
  • Elasticsearch: http://127.0.0.1:19200
  • 登录方式: 浏览器打开后直接进入登录页,使用 Elasticsearch 内置账号登录即可
  • 推荐账号: elastic
  • 登录密码: .env 中的 ELASTIC_PASSWORD

当前本地默认值(若你没有改过 deploy/docker/.env):

  • 用户名: elastic
  • 密码: bytedesk123

说明:Kibana 服务自身连接 Elasticsearch 使用的是 .env 中的 KIBANA_SERVICE_ACCOUNT_TOKEN,无需再用超级账号作为后端连接账户。

Token 失效排查:若 Kibana 日志出现 security_exception: unable to authenticate 或启动卡在 unavailable,说明 .env 中的 token 已过期/失效,按下述步骤轮换(ES 9.x 注意:实际密钥在响应的 token.value 字段,不是 token:

# 1. 删除旧 token(同名 token 不能直接覆盖,会报 version conflict
curl -u elastic:${ELASTIC_PASSWORD} -X DELETE "http://127.0.0.1:19200/_security/service/elastic/kibana/credential/token/bytedesk-kibana"

# 2. 重新生成并把返回的 token.value 写入 .env 的 KIBANA_SERVICE_ACCOUNT_TOKEN
curl -u elastic:${ELASTIC_PASSWORD} -X PUT "http://127.0.0.1:19200/_security/service/elastic/kibana/credential/token/bytedesk-kibana"

# 3. 重建 kibana 容器
./start.sh middleware kibana

首次进入建议:

  • 打开 http://127.0.0.1:15601,输入 elastic.env 中的 ELASTIC_PASSWORD 登录
  • 若浏览器提示跳转到 /login?next=%2F,属于正常行为,继续在登录页输入账号密码即可
  • 在 Kibana 的 Data Views 中创建索引模式 bytedesk-logs-*
  • 时间字段选择 @timestamp
  • 之后可在 Discover 页面直接按 requestIdtraceIdmessage 检索日志

推荐查询路径:

  • 左侧进入 Discover
  • 选择刚创建的 bytedesk-logs-* Data View
  • 在顶部搜索框输入例如 requestId : "a9d759fa-f7af-4551-b219-9d358403553d"
  • 或输入 message : "Completed 200 OK" 查看某次请求链路

English

Kibana runs in its own file compose/compose-kibana.yaml (one image per file) and does not start with the default stack; enable it via the kibana keyword or compose composition.

# Option A (recommended): start the stack with Kibana attached (usually together with logstash)
./start.sh all logstash kibana
./stop.sh stop all logstash kibana
./stop.sh down all logstash kibana

# Option B: Kibana only (requires bytedesk-network to exist first; run from deploy/docker)
docker compose --env-file .env -f compose/compose-kibana.yaml up -d

# Option C: combine with existing compose files
docker compose --env-file .env -f compose/compose-elasticsearch.yaml -f compose/compose-kibana.yaml up -d bytedesk-kibana

# Inspect Kibana status and logs
docker compose --env-file .env -f compose/compose-kibana.yaml ps
docker compose --env-file .env -f compose/compose-kibana.yaml logs -f

Access:

Current local default values if you have not changed deploy/docker/.env:

  • Username: elastic
  • Password: bytedesk123

Kibana itself connects to Elasticsearch through KIBANA_SERVICE_ACCOUNT_TOKEN in .env, so it does not need the superuser backend configuration.

Token troubleshooting: if Kibana logs show security_exception: unable to authenticate or startup stays at unavailable, the token in .env has gone stale. Rotate it as follows (ES 9.x note: the actual secret is in the token.value field of the response, not token):

# 1. Delete the old token (a same-name token cannot be overwritten directly; it returns version conflict)
curl -u elastic:${ELASTIC_PASSWORD} -X DELETE "http://127.0.0.1:19200/_security/service/elastic/kibana/credential/token/bytedesk-kibana"

# 2. Recreate it and put the returned token.value into KIBANA_SERVICE_ACCOUNT_TOKEN in .env
curl -u elastic:${ELASTIC_PASSWORD} -X PUT "http://127.0.0.1:19200/_security/service/elastic/kibana/credential/token/bytedesk-kibana"

# 3. Recreate the kibana container
./start.sh middleware kibana

Recommended first steps:

  • Open http://127.0.0.1:15601 and sign in with elastic and the ELASTIC_PASSWORD value from .env
  • If the browser redirects to /login?next=%2F, that is expected; just continue on the login page
  • Create a data view for bytedesk-logs-*
  • Use @timestamp as the time field
  • Search logs in Discover by requestId, traceId, or message

Suggested query flow:

  • Open Discover
  • Select the bytedesk-logs-* data view
  • Search for requestId : "a9d759fa-f7af-4551-b219-9d358403553d"
  • Or search for message : "Completed 200 OK" to inspect one request path