在google cloud platform上收录dokku 生成的日志
Google Cloud Platform (GCP) 上有类似于阿里云 SLS(Simple Log Service)的日志收集和分析服务。在 GCP 上,这个服务主要由 Cloud Logging 和 Cloud Monitoring 组成,它们共同提供了强大的日志管理和分析能力。
但是首先,要将dokku 容器里/app/log/ 映射到宿主机。
将dokku容器里的日志目录,挂载到宿主机
要将 Dokku 部署的应用程序容器内的特定目录映射到宿主机上的指定位置,可以使用 Dokku 的存储挂载功能。以下是具体步骤:
1. 在宿主机上创建目标目录:
首先,在宿主机上创建你想要映射到的目录。例如:
1 |
|
2. 设置目录的权限
如果宿主机中的目录不可以,将导致目录失败。现在我们在容器中通过ps -A命令查到了启动用户是herokuishuser。现在先查询它的uid:
1 |
|
得到其uid是32767。
回到宿主机,设置目录的owner:
1 |
|
这里的格式是:dokku storage:mount <app_name> <host_dir>:<container_dir>
4. 重新部署应用:
执行存储挂载命令后,你需要重新部署应用以使更改生效:
1 |
|
5. 验证挂载:
你可以通过检查 Dokku 的存储配置来验证挂载是否成功:
1 |
|
这应该会显示你刚刚创建的挂载。
6. 注意事项:
- 确保宿主机上的目录具有适当的权限,以便容器可以读写。
- 如果你的应用使用多个容器,这个挂载将应用于所有容器。
- 请记住,这种方法会将容器内的数据持久化到宿主机上,这可能会影响应用的可移植性。
6. 移除挂载(如果需要):
如果你需要移除挂载,可以使用以下命令:
1 |
|
然后重新部署应用。
通过这些步骤,你应该能够将 Dokku 部署的应用程序容器内的 /app/log
目录映射到宿主机上的 /var/log/dokku/your_app_name
目录。这样,容器内的日志文件将被保存在宿主机上,方便查看和管理。
安装 google cloud logging agent 并收集日志
1. 安装 Google Cloud Logging 代理
首先,在运行 Dokku 的服务器上安装 Google Cloud Logging 代理(也称为 ops-agent)。这个代理程序可以收集系统和应用日志,并将它们发送到 Cloud Logging。
1 |
|
2. 配置 Google Cloud Logging 代理
编辑 ops-agent 配置文件,通常位于 /etc/google-cloud-ops-agent/config.yaml
:
1 |
|
这个配置告诉代理从 /var/log/dokku/
目录下收集所有 .log 文件。
3. 重启 Google Cloud Logging 代理
配置更改后,重启代理以应用新设置:
1 |
|
4. 确保 Dokku 日志输出到正确位置
默认情况下,Dokku 应该已经将日志输出到 /var/log/dokku/
目录。如果没有,您可能需要配置 Dokku 将日志写入这个目录。
5. 验证日志收集
在 Google Cloud Console 中,导航到 Logging > Logs Explorer,您应该能够看到来自 Dokku 的日志条目。
6. 创建日志筛选器和警报(可选)
- 在 Logs Explorer 中,您可以创建自定义查询来筛选特定的 Dokku 日志。
- 基于这些查询,您可以设置日志告警,当出现特定事件或错误时通知您。
7. 导出日志(可选)
如果需要长期存储或进行更深入的分析,可以设置日志导出到 Google Cloud Storage 或 BigQuery。
注意事项:
- 确保您的 Google Cloud 项目已启用 Cloud Logging API。
- 检查服务器的 IAM 权限,确保它有权限将日志写入 Cloud Logging。
- 考虑设置日志保留策略以管理存储成本。
- 对于敏感信息,请考虑在发送到 Cloud Logging 之前进行脱敏处理。
通过以上步骤,您应该能够将 Dokku 的日志成功集成到 Google Cloud Logging 中,从而实现集中化的日志管理和分析。