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
});
我在 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
});