跳到主要内容

组件日志

概述

Rainbond 组件页面中的 日志 用于查看组件运行实例的实时日志。这里展示的是容器的标准输出和标准错误输出,也就是应用打印到 stdoutstderr 的内容。

如果组件已经启动,但日志页面没有内容,通常不是平台没有采集到日志,而是应用没有把日志打印到 stdoutstderr。例如应用只把日志写入容器内的某个文件目录,组件日志页面就不会自动读取这些文件。

让日志显示在组件日志中

推荐将运行日志输出到标准输出,由 Rainbond 和 Kubernetes 统一接管日志查看。这样可以直接在组件的 日志 页面查看启动过程、异常堆栈和运行信息。

常见处理方式如下:

  • Java / Spring Boot:保留控制台日志输出,不要只配置 logging.file.name 或只写入文件。
  • Node.js:使用 console.log()console.error() 或日志框架的 Console 输出。
  • Python:使用 print() 或将 logging 输出到 sys.stdout / sys.stderr
  • Go:使用 log.Print()fmt.Println() 或将日志框架输出到标准输出。
  • Nginx:将访问日志和错误日志分别输出到 /dev/stdout/dev/stderr

Nginx 示例:

access_log /dev/stdout;
error_log /dev/stderr;

调整日志输出方式后,更新或重启组件,再进入组件的 日志 页面查看实时日志。

下载文件日志

如果业务必须把日志输出到目录中,例如 /app/logs/data/logs 或框架默认的 logs 目录,需要先把该目录配置为组件存储。这样日志文件会写入挂载的存储卷,后续才能在 Rainbond 中下载。

对于源码构建的组件,运行时默认工作目录是 /workspace。如果应用配置的是相对路径日志目录,例如 logs./logs,实际写入位置就是 /workspace/logs。添加存储时,挂载路径需要填写这个实际目录。

操作步骤:

  1. 进入目标组件的 存储 页面。
  2. 点击 添加存储,选择合适的存储类型。
  3. 将存储挂载路径填写为应用实际写日志的目录,例如 /app/logs/workspace/logs
  4. 保存后更新或重启组件,使存储挂载生效。
  5. 确认应用继续把文件日志写入该目录。
  6. 在组件的 存储 页面找到该存储,点击 下载,将日志文件下载到本地。
提示

添加存储后,应用写入挂载目录的新文件才会进入存储卷。已经写在容器临时文件系统中的旧日志,不会自动迁移到新挂载的存储中。

选择哪种方式

日常排障建议优先使用标准输出日志,直接在组件日志中查看。只有在业务要求保留文件日志、需要按文件归档,或框架必须写入固定目录时,才需要为日志目录添加存储并通过存储下载。

如果需要检索历史日志、跨组件查询日志或下载标准输出产生的历史日志,可以启用 日志中心插件