ASP.NET Core WebApi 一个良好的日志记录内容包含,唯一请求 Id(traceId),请求 url ,请求 body 内容,相应 body 内容,执行开始和执行结束时间,总耗时时间等等。通过组合 Docker,ElasticSearch,Kibana,ASP.NET Core 和 Serilog ,您获得了前所未有的便利性和功能,再也没有理由不再将日志记录整合到应用程序中了。。 • 一句话总结今天我们学习到达的目标? 如何在 ASP.NET Core 使用 Elasticsearch 和 Kibana 来存储和展示我们应用程序的请求详细日志。 ElasticSearch 和 Kibana 改变了这一切。而 Docker 已经使 ElasticSearch 和 Kibana 的启动和运行变得毫不费力。ElasticSearch 和 Kibana 提供的强大功能以及非常高的性能,再加上它是开源的,这真的令人印象非常深刻。 如果对本次分享课程《ASP.NET Core使用Elasticsearch记录请求响应日志实战演练》感兴趣的话,那么请跟着阿笨一起学习吧。 废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。
• 什么是 ElasticSearch ?
简单来说,ElasticSearch 是一个开源数据库,非常适合索引日志和分析数据。
• 什么是 Serilog ?
Serilog 是 ASP.NET Core 的一个插件,可以简化日志记录。Serilog 有各种可用的接收器,例如,有纯文本、SQL 和 ElasticSearch 接收器等等。
• 为什么我需要 ElasticSearch 和 Kibana ?
如果您曾经构建过应用程序,那么你一定记录过日志。我们经常去记录错误,但这些错误日志存储在服务器某处的文件文件里,经常会无法被访问。ElasticSearch 使任何类型的日志记录变得简单,易于访问和搜索。 ElasticSearch 令人难以置信的速度和简单的查询语言加上 Kibana 的图形界面,构成了强大的组合。如果您还没有使用 ElasticSearch 进行日志记录,我强烈建议您开始使用它。
1)、关于日志的检索,可以通过开启服务端目录访问权限,方便进行检索查到定位日志。
• ASP.NET Core 开启目录浏览
EnableDirectoryBrowsing = true
2)、关于日志的实时展示,通过 kibana 工具来进行显示和分析。
• 什么是 Kibana ? Kibana 是开源的 ElasticSearch 的数据可视化用户界面。可以将 ElasticSearch 视为数据库,将 Kibana 视为 Web 用户界面,您可以使用它在 ElasticSearch 中构建图表和查询数据