您现在的位置是:网站首页> 内容页

.net core 结合nlog使用Elasticsearch , Logstash, Kibana

  • 大润发drf336
  • 2019-03-28
  • 309人已阅读
简介什么是ELKELK是三个开源软件的缩写,分别表示:Elasticsearch,Logstash,Kibana,它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日

什么是ELK

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

Elasticsearch

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

Kibana

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

如何使用ELK

ELK环境快速搭建

这里推荐使用docker-conpose一键搭建 地址:https://github.com/deviantony/docker-elk.git

使用方法:

git clone https://github.com/deviantony/docker-elk.gitcd docker-elkdocker-compose up -d

安装完之后,浏览器上访问安装服务器的ip:5601 (注意端口号)可以打开kibana管理后台

注意:在logstash/pipeline/logstash.conf``您的logstash input配置是 tcp 5000 后面我们会用到。

net core项目中使用

代码项目中添加

项目引用NlognugetNLog.Extensions.Logging

Startup.cs中添加nlog启动

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddNLog();//添加NLog ……

在项目的 nlog.config文件中targets节点添加子target

<!-- Tcp日志target --> <target xsi:type="Network" name="ownLog-tcp" keepConnection="false" address ="tcp://ELK服务器ip:5000" layout="#${longdate}#${nodeName}#${logger}#${uppercase:${level}}#${callsite}#${callsite-linenumber}#${aspnet-request-url}#${aspnet-request-method}#${aspnet-mvc-controller}#${aspnet-mvc-action}#${message}#${exception:format=ToString}#" />

rules节点添加配置

<logger name="*" minlevel="Trace" writeTo="ownLog-tcp" />

启动项目,生成日志

配置kibana 添加index pattern

进入刚刚搭建好的kibana后台,按照指引创建一个index pattern然后 discover你的log吧

, 1, 0, 9);

文章评论

Top