一、ELK简介

ELK是Elasticsearch、Logstash和Kibana首字母的缩写。这三者均是开源软件,这三套开源工具组合起来形成了一套强大的集中式日志管理平台

Elasticsearch是一个分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点,基于Apache Lucene构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。通过简单的配置,Elasticsearch就会帮你管理集群、分片、故障转移、主节点选举等,还提供集群状态的监控接口。

Logstash是一个用来搜集、解析、过滤日志的工具。支持几乎任何类型的日志,包括系统日志、业务日志和安全日志,支持file、syslog、tcp、stdin、redis和kafka等多种接收方式。支持elasticrsearch、email、exec、nagios、tcp、hdfs等多种方式输出

Kibana是一个开源的分析与可视化平台,用于搜索、分析和可视化存储在 Elasticsearch中的数据,然后以图表的方式展现出来,还允许用户自定义查询、过滤和汇总数据。

二、安装(这里以windows为例)

1. 第一步:下载Elasticsearch 下载地址:https://www.elastic.co/cn/downloads/elasticsearch 选择你适合的平台版本,如下图所示:

2. 下载Logstash 下载地址:https://www.elastic.co/cn/downloads/logstash,选择你适合的平台,如下图所示:

3.下载Kibana,下载地址:https://www.elastic.co/cn/downloads/kibana,选择你适合的平台,如下图所示:

将压缩包解压到文件,如图所示:

切换到elasticsearch-7.3.2\bin,点击elasticsearch.bat即可完成安装,打开http://localhost:9200/如下图所示即安装完成

      安装node.js和grunt,从地址:https://nodejs.org/en/download/下载相应系统的msi,双击安装

打开命令提示符输入npm install -g grunt-cli,如下图所示则grunt安装完成

进入\elasticsearch-7.3.2\config,打开elasticsearch.yml,在文件末尾加上以下代码:

http.cors.enabled: true

http.cors.allow-origin: "*"

双击elasticsearch.bat重启es

下载Head,下载地址:https://github.com/mobz/elasticsearch-head,下载后将elasticsearch-head-master 解压到elasticsearch-7.3.2文件夹下,如图所示:

修改elasticsearch-head-master文件夹下的Gruntfile.js,加上hostname:’*’

在\elasticsearch-7.3.2\elasticsearch-head-master文件夹下执行npm install

安装完成后执行grunt server 或者npm run start 运行head插件,http://浏览器下访问http://localhost:9100/

logstash安装:解压后启动使用配置文件就可以了

Kibana安装:kibana-7.3.2\config文件夹下修改kibana.yml, 取消server.port,server.host,server.name,elasticsearch.hosts,i18n.locale前面的#号,并将i18n.locale的值改为zh-CN,运行bin文件夹下的kibana.bat,打开localhost:5601,如图所示则安装成功

三、.Net Core使用Nlog调用ELK写入日志

1、NuGet安装依赖

2、配置nlog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
internalLogToConsole="true">
<extensions>
<add assembly="NLog.Targets.ElasticSearch"/>
</extensions> <targets async="true">
<!--https://github.com/reactive-markets/NLog.Targets.ElasticSearch/wiki-->
<target xsi:type="ElasticSearch"
name="ElasticSearch"
uri="http://127.0.0.1:9200"
index="Web"
documentType="logevent"
includeAllProperties="false"
requireAuth="false">
<field name="host" layout="${machinename}" />
<field name="application"
layout="${applicationName}" />
<field name="logged" layout="${date}" />
<field name="level" layout="${level}" />
<field name="message" layout="${message}" />
<field name="logger" layout="${logger}" />
<field name="callSite" layout="${callsite:filename=true}" />
<field name="exception" layout="${exception:tostring}" />
<field name="IP" layout="${aspnet-request-ip}" />
<field name="User" layout="${aspnetcore-request-user}" />
<field name="serverName" layout="${machinename}" />
<field name="url" layout="${aspnetcore-request-url}" />
</target> </targets>
<rules>
<logger name="*" minlevel="INFO" writeTo="ElasticSearch" />
</rules>
</nlog>

3、Startup.cs配置

4、应用

可以看到以下数据则表示调用成功

ELK分布式日志+NLog在.NetCore中的应用的更多相关文章

  1. .NetCore快速搭建ELK分布式日志中心

    懒人必备:.NetCore快速搭建ELK分布式日志中心   该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前言 ELK是什么 它是一个分布式日志解决方案,是Logstash.Elastaics ...

  2. ELK分布式日志收集搭建和使用

    大型系统分布式日志采集系统ELK全框架 SpringBootSecurity1.传统系统日志收集的问题2.Logstash操作工作原理3.分布式日志收集ELK原理4.Elasticsearch+Log ...

  3. ELK 分布式日志实战

    一.  ELK 分布式日志实战介绍 此实战方案以 Elk 5.5.2 版本为准,分布式日志将以下图分布进行安装部署以及配置. 当Elk需监控应用日志时,需在应用部署所在的服务器中,安装Filebeat ...

  4. 懒人必备:.NetCore快速搭建ELK分布式日志中心

    该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前言 ELK是什么 它是一个分布式日志解决方案,是Logstash.Elastaicsearch.Kibana的缩写,可用于从不同的服务中收集日志 ...

  5. 传统ELK分布式日志收集的缺点?

    传统ELK图示: 单纯使用ElK实现分布式日志收集缺点? 1.logstash太多了,扩展不好. 如上图这种形式就是一个 tomcat 对应一个 logstash,新增一个节点就得同样的拥有 logs ...

  6. ELK+kafka docker快速搭建+.NetCore中使用

    ELK开源实时日志分析平台.ELK是Elasticsearch,Logstash,Kibana 的缩写. Elasticsearch:是个开源分布式搜索引擎,简称ESLogstash:是一个完全开源的 ...

  7. 微服务—ELK分布式日志框架

    在微服务架构下,微服务被拆分成多个微小的服务,每个微小的服务都部署在不同的服务器实例上,当我们定位问题,检索日志的时候需要依次登录每台服务器进行检索. 这样是不是感觉很繁琐和效率低下.所以我们还需要一 ...

  8. SpringBoot+kafka+ELK分布式日志收集

    一.背景 随着业务复杂度的提升以及微服务的兴起,传统单一项目会被按照业务规则进行垂直拆分,另外为了防止单点故障我们也会将重要的服务模块进行集群部署,通过负载均衡进行服务的调用.那么随着节点的增多,各个 ...

  9. ELK +Nlog 分布式日志系统的搭建 For Windows

    前言 我们为啥需要全文搜索 首先,我们来列举一下关系型数据库中的几种模糊查询 MySql : 一般情况下LIKE 模糊查询  SELECT * FROM `LhzxUsers` WHERE UserN ...

随机推荐

  1. Hive 官方手册翻译 -- Hive DML(数据操纵语言)

    由 Confluence Administrator创建, 最终由 Lars Francke修改于 八月 15, 2018 原文链接 https://cwiki.apache.org/confluen ...

  2. wx.navigateTo、wx.redirectTo、wx.reLaunch、wx.switchTab和wx.navigateBack的区别

    wx.navigateTo.wx.redirectTo.wx.reLaunch.wx.switchTab和wx.navigateBack有什么区别呢? **wx.navigateTo:** 用于保留当 ...

  3. .Net TCP探索(一)——TCP服务端开发(同时监听多个客户端请求)

        最近在园子里看了大神写的(面试官,不要再问我三次握手和四次挥手),忍不住写段程序来测试一番.     在网上找了很多例子,大多只实现了TCP点对点通讯,但实际应用中,一个服务器端口往往要监听多 ...

  4. Android Studio:多包名打包

    来自:http://m.blog.csdn.net/u011315960/article/details/73251196 前言 最近有点小忙,博客都落下了,今天赶紧写点东西补上. 前几天商务找我,想 ...

  5. App上下左右滑动封装

    #coding=utf-8 from appium import webdriver from time import sleep caps = { "platformName": ...

  6. PHP array_reverse

    1.函数的作用:将数组中的元素顺序反转 2.函数的参数: @params array $array 需要反转顺序的数组 @params $preversed_key  数值索引是否保持不变,非数值索引 ...

  7. 玩转OneNET物联网平台之MQTT服务④ —— 远程控制LED(设备自注册)+ Android App控制

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  8. Dispatcher与UI线程交互

    this.chart2.Dispatcher.BeginInvoke(new Action(() => { this.chart2.SetData("Series1", lx ...

  9. vue 开发插件流程

    UI demo UI 插件汇总 我的github iSAM2016 在练习写UI组件的,用到全局的插件,网上看了些资料.看到些的挺好的,我也顺便总结一下写插件的流程: 声明插件-> 写插件-&g ...

  10. Computer English Notes

    Chapter 1 : About Computer Answer the following - Abbreviation LBS - Location-Based Services HTML - ...