我们有一个在PCF上运行的微服务应用程序。一些微服务能够在其日志文件夹中生成日志文件。有没有一种方法可以自动下载这些日志文件并将其保存到共享文件夹或远程容器(例如Google驱动器之类)?
非常感谢您的建议。
谢谢。
在理想环境中,您不会将事情写到需要保留的本地文件系统中。可以编写可以重新创建的缓存文件或工件是可以的,但是您不应在其中放置任何重要内容。
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.properties
或application.yml
文件中查找属性logging.file.path
或logging.file.name
。如果存在,请注释掉或删除它们。那应该使您的日志进入STDOUT / STDERR。