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


    什么是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-compose一键搭建 地址:https://github.com/deviantony/docker-elk.git

    使用方法:

    git clone https://github.com/deviantony/docker-elk.git
    cd docker-elk
    docker-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吧

  • 相关阅读:
    linked-list-cycle-ii leetcode C++
    linked-list-cycle-ii leetcode C++
    binary-tree-maximum-path-sum leetcode C++
    0090 变量的概念,变量的使用:声明、赋值、初始化、语法扩展、命名规范
    0089 变量的概念
    0087 JavaScript注释,JavaScript输入输出语句
    0086 初识JavaScript:是什么、浏览器执行 JS(渲染引擎、解释引擎)、组成、初体验
    0085 计算机基础简介
    0084 编程语言简介
    0083 移动端WEB开发之响应式布局、bootstrap
  • 原文地址:https://www.cnblogs.com/YahuiWang/p/csharp-dotnet-core-nlog-elk.html
Copyright © 2020-2023  润新知