首页 > 解决方案 > Serilog Elasticsearch 日志未发送到服务器(但正确缓冲)

问题描述

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

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

标签: .netelasticsearchloggingkibanaserilog

解决方案


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

  • 使用nuget 包的预览版
  • 设置DetectElasticsearchVersiontrue
  • 设置RegisterTemplateFailureIndexAnyway

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

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

推荐阅读