docker - 将Seq日志持久保存到EBS卷-该卷不断分离

标签 docker serilog aws-ebs rexray seq-logging

我正在AWS EC2实例上运行Seq docker 镜像。

为了将日志写入持久性存储,我已经将EBS卷附加到实例,并使用rexray / ebs插件从实例内部安装了它:docker plugin install rexray/ebs:latest REXRAY_PREEMPT=true EBS_REGION=eu-central-1a --grant-all-permissions EBS_ACCESSKEY=... EBS_SECRETKEY=...docker volume create --driver rexray/ebs --name SeqData
然后指示Seq使用该卷:docker run -d --name seq -e ACCEPT_EULA=Y -v SeqData:/data -p 80:80 -p 5341:5341 datalust/seq:latest
Seq可以正常运行一段时间(有时需要几个小时,有时需要几天),然后我注意到该容器不再运行,并且AWS控制台显示该卷已分离。 AWS日志显示实例已启动DetachVolume事件。

我在AWS控制台中手动重新连接了卷,然后重新启动了容器。 Seq恢复其正常运行,然后在一段时间后现象再次发生。

docker 日志未提供任何提示。它仅显示Seq大约每5分钟记录一次其正常 Activity (保留,索引等),直到分离发生之前大约10分钟。

我在AWS或Docker方面的经验有限,因此,如果有人可以帮助我,我将不胜感激。

最佳答案

为了使Seq的内存管理有效运行,必须将--memory--memory-swap都传递给docker run命令。通常,这些值应具有相同的值(即无交换)。

docker run --memory=4g --memory-swap=4g <other args> datalust/seq

关于docker - 将Seq日志持久保存到EBS卷-该卷不断分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59554786/

相关文章:

mysql - 通过 Docker 连接到本地主机上的 MySQL 服务器

docker - Kibana docker 与外部 Elasticsearch 组合

c# - Serilog MSSqlServer 接收器是否应该与 Azure SQL Server 一起使用?

kubernetes - 如何保证我的 Kubernetes EBS 卷与部署位于同一个 AZ 中?

postgresql - 如何在 Kubernetes 中使用 Aws EBS 挂载 postgresql 卷

java - 在docker容器中部署.war文件: No main manifest attribute in app. war

docker - docker swarm世界中的复制 Controller

serilog - 如何为 .NET Core 3.0 Worker 服务设置 serilog SEQ

c# - Serilog 在事件序列化时省略基类属性