【问题标题】:Persisting Seq logs to an EBS volume - the volume keeps detaching将 Seq 日志持久化到 EBS 卷 - 卷不断分离
【发布时间】:2020-01-01 17:55:21
【问题描述】:

我正在 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 分钟记录一次其正常活动(保留、索引等) - 直到分离发生前大约 10 分钟。

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

【问题讨论】:

  • 嗨,丹!您是否将--memory=--memory-swap= 传递给docker run 命令?这是 Seq 的资源管理正常工作所必需的,并且可能是导致此行为的原因。两个标志都需要指定,并且应该具有相同的值(例如4g)。
  • 谢谢@NicholasBlumhardt!我现在正在尝试,希望几天后我会回复您报告一切都很好。顺便说一句,我在只有 1GB RAM 的 t2.micro 实例上运行。所以我显然不能按照你的例子分配4g。在这种情况下我应该分配多少(或者 1GB 太小)?
  • 1 GB 太紧了,我个人没试过。 Seq 本身应该以低于 100 MB 的速度加载,但性能会参差不齐。 4 GB 通常是我推荐的最低要求; 3 GB 是 Windows 上的“官方”最小值。 HTH!
  • @NicholasBlumhardt 我们仍在开发中,所以我正在尝试使用免费计划中可以获得的内容。一旦我们开始生产,我会听取您的建议。无论如何,我的问题似乎已经解决了。您能否发表您的第一条评论作为答案,以便我接受?
  • 完成;谢谢!我也会在文档中添加注释。

标签: docker serilog aws-ebs rexray seq-logging


【解决方案1】:

为了使 Seq 的内存管理有效地工作,--memory--memory-swap 都需要传递给 docker run 命令。通常这些应该具有相同的值(即没有交换)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 2021-11-21
    相关资源
    最近更新 更多