我被要求使用 DataDog 实现一个集中监控和日志记录系统,该系统将从各种服务和应用程序接收信息,其中一些作为 Windows 服务在虚拟机上运行,一些在 Kubernetes 集群内运行。为了实现日志记录方面,以便 DataDog 可以正确摄取日志,我使用 Serilog 进行日志记录。
我目前的计划是以 json 格式将日志写入控制台,并在每个服务器或 k8s 节点上安装 DataDog 代理捕获并将它们发送到 DataDog。这有效,至少对于我迄今为止实现它的 k8s 节点是有效的。(我试图避免为 DataDog 使用自定义 Serilog 接收器,因为在 DataDog 文档中不鼓励这样做)。
我的问题是我无法在 DataDog 端正确摄取日志。DataDog 期望 json 包含一个属性调用 Message,但 Serilog 将此属性命名为 RenderedMessage(如果我使用 JsonFormatter(renderMessage: true))或 @m(如果我使用 RenderedCompactJsonFormatter())。
如何将我的日志发送到 DataDog 并在 DataDog 端正确摄取?