Serilog Elasticsearch 日志未发送到服务器(但缓冲正确)

Serilog Elasticsearch logs not making it to the server (but buffering correctly)

我在 Windows IIS Web 服务器上本地托管了一个 ELK 堆栈 (v7.0),但日志没有发送到服务器。服务器是 运行,我可以到达保留的 URL 并取回通用 json 包说 Elasticsearch 是 运行 我可以很好地登录 Kibana,只是没有日志看看。

我在正在记录日志的应用程序中设置了一个 bufferBaseFilename,当我转到该位置时,日志实际上就在那里,并已正确编入索引。我想知道为什么它永远不会同步回服务器?这似乎是一个连接问题,但所有网络内容都已检查出来。我可能遗漏了一些简单的东西。有什么想法吗?如果您需要更多信息,请告诉我!

此错误的常见来源是格式错误的(模板)请求,它与您的 ES 版本不匹配(例如,包含已弃用的字段)。你可以试试

  • 使用 the nuget package
  • 的预览版
  • DetectElasticsearchVersion设置为true
  • RegisterTemplateFailure设置为IndexAnyway

您可以像这样配置接收器:

var loggerConfig = new LoggerConfiguration()
    .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(...) ){
        // ...
        DetectElasticsearchVersion = true,
        RegisterTemplateFailure = RegisterTemplateFailure.IndexAnyway
     });