【问题标题】:Download or Backup a generated file from PCF automatically自动从 PCF 下载或备份生成的文件
【发布时间】:2020-08-07 19:42:06
【问题描述】:

我们有一个在 PCF 上运行的微服务应用。 一些微服务能够在其日志文件夹中生成日志文件。 有没有办法自动下载这些日志文件并将其保存到共享文件夹或远程容器(如谷歌驱动器等)?

非常感谢您的建议和建议。

谢谢。

【问题讨论】:

    标签: spring-boot microservices spring-cloud cloud-foundry pcf


    【解决方案1】:

    在理想情况下,您不会将需要保留的内容写入本地文件系统。编写可以简单地重新创建的缓存文件或工件是可以的,但你不应该在那里放置任何重要的东西。

    https://docs.cloudfoundry.org/devguide/deploy-apps/prepare-to-deploy.html#filesystem

    向您的应用公开的本地文件系统是短暂的,即使在短时间内存储重要的东西也不安全。您当然可以尝试设置一个定期运行的进程,并将日志文件从您的容器发送到其他地方。但是,当您的应用崩溃时,您将丢失日志消息,可能是说明应用崩溃原因的重要消息,因为在清理容器之前,您的同步过程没有时间运行。

    您想要做的是配置您的应用程序以将其日志写入 STDOUT 或 STDERR。

    https://docs.cloudfoundry.org/devguide/deploy-apps/streaming-logs.html#writing

    任何写入 STDOUT/STDERR 的内容都会被平台自动捕获,并为您的应用发送日志流。然后,您可以将日志流发送到各种持久位置。

    https://docs.cloudfoundry.org/devguide/services/log-management.html

    大多数应用程序都可以轻松配置为写入 STDOUT/STDERR。您已经在这篇文章中标记了 spring-boot,所以我假设您的应用程序正在运行 Spring Boot。默认情况下,Spring Boot 应该记录到 STDOUT/STDERR,所以你不需要做任何事情。

    但可能发生的情况是您的应用开发人员已专门配置应用以将日志发送到文件。在应用程序的src/main/resources/application.propertiesapplication.yml 文件中查找属性logging.file.pathlogging.file.name。如果存在,请注释掉或删除它们。这应该使您的日志到 STDOUT/STDERR。

    https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-logging-file-output

    【讨论】:

    • 这实际上是问题所在。每当应用程序崩溃或重新启动时,写入的日志文件都会被包含并完全删除。我不知道 PCF 架构行为和 Spring Boot 云机制(我被指定研究和审查 Web 应用程序),这就是我注意到的。
    • 非常感谢您指出网络应用程序的写入/日志机制的弱点。
    猜你喜欢
    • 1970-01-01
    • 2023-04-04
    • 2020-06-10
    • 1970-01-01
    • 2016-11-24
    • 2012-08-21
    • 2013-06-10
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多