Serilog Elasticearch日志未到达服务器(但已正确缓冲)

xhv8bpkk  于 2022-09-20  发布在  ElasticSearch
关注(0)|答案(2)|浏览(134)

我在Windows IIS Web服务器上本地托管了一个ELK堆栈(V7.0),日志无法到达服务器。服务器正在运行,我可以访问保留的URL并取回通用的json包,上面写着Elasticearch正在运行,我可以很好地登录Kibana,只是没有日志可供查看。

我在正在记录的应用程序中设置了BufferBaseFilename,当我转到该位置时,日志实际上就在那里,并正确地建立了索引。我想知道为什么它永远不会同步回服务器?这看起来像是连接问题,但所有的网络信息都是正确的。我可能错过了一些简单的东西。有什么想法吗?如果您需要更多信息,请告诉我!

b4lqfgs4

b4lqfgs41#

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

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

您可以按如下方式配置接收器:

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

ddhy6vgd2#

我有这个问题,对我来说,是w3wp.exe进程阻止了几个较早的缓冲区日志推送到ElasticSearch,之后的一切也都在队列中。

我通过终止进程解决了这个问题。

相关问题