ASP.NET Core 日志收集(log4net+Kafka+ELK)
在开发环境中,记录日志这件事情常常被忽视,因为我们有强大的 IDE ,可以调试,可以断点,问题出现后一般都能很快解决。但在生产环境,异常一旦发生,如果不能重现,又没有提前做好日志记录,就会非常被动,问题的定位也可能需要花很多时间,问题最终也是不了了之。给对方的回复也许是这样的: 可能你的网络那个时间点有问题。
日志当然不只是为了定位问题,实际我们还可以通过日志进行一系列的分析,通过分析结果我们可以获得很多有效信息。这篇文章将介绍如何在 .NET Core 项目中使用 log4net 进行日志收集,虽然是 log4net ,但其他 log4xxx 也类似,毕竟 Kafka + ELK 这一套和语言无关。
在使用 log4net 前,我们需要先搭建好 Kafka 和 ELK 环境,之前的文章介绍过 ELK + Filebeat 搭建日志系统、Elasticsearch 集群、 Kafka 集群,这里会将使用 Kafka 作日志收集,实际情况完全可以 log4net + Filebeat + ELK 、log4net + Redis + ELK 等组合。Kafka、Redis 、Filebeat 都有其自身的特点,根据项目情况选择一种适合的方案即可。

architecture
以下 Kafka 和 ELK 的测试环境将基于 Windows 的非集群模式,集群模式请参考上面的文章。
基础环境搭建
下载 ELK (当前最新 6.5.1),Kafka(Binary downloads) 、ZooKeeper 最新版本,下载后分别解压。每个服务的配置文件这里不详细介绍了,使用默认配置即可。

service dir
ELK
Elasticsearch
在 elasticsearch-6.5.1 目录下,运行启动命令:
作者:BeckJin
链接:https://www.jianshu.com/p/e4d3bec9e220
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
浙公网安备 33010602011771号