一、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. C#基于Quartz.NET实现任务调度并部署Windows服务

    一.Quartz.NET介绍 Quartz.NET是一个强大.开源.轻量的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,用C#改写,可用于winform和asp ...

  2. mpvue 星星打分组件

    上图: <template> <div class="container"> <div v-for="(star,index) in sta ...

  3. Java动手动脑第四讲课堂作业

    动手动脑1 完全“手写代码实现”随机数生成 纯随机数发生器

  4. RSA-演变过程、原理、特点(加解密及签名)及公钥私钥的生成

    本篇是iOS逆向开发总结的第一篇文章,是关于iOS密码学的相关技术分析和总结,希望对大家有所帮助,如果有错误地方欢迎指正. 一.前言 密码学的历史追溯到2000年前,相传古罗马凯撒大帝为了防止敌方截获 ...

  5. [Luogu3868] [TJOI2009]猜数字

    题目描述 现有两组数字,每组k个,第一组中的数字分别为:a1,a2,...,ak表示,第二组中的数字分别用b1,b2,...,bk表示.其中第二组中的数字是两两互素的.求最小的非负整数n,满足对于任意 ...

  6. Intel Ivy Bridge Microarchitecture Events

    This is a list of all Intel Ivy Bridge Microarchitecture performance counter event types. Please see ...

  7. redis内存数据的持久化方式

    转: http://blog.csdn.net/wzqzhq/article/details/64920996 概述 Redis的强大性能很大程度上都是因为所有数据都是存储在内存中的,然而当Redis ...

  8. mysql连接方法

    一.MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) mysql -h localhost -u root -p123或mysql -u ...

  9. Java自动化测试框架-04 - TestNG之Test Method篇 - 道法自然,法力无边(详细教程)

    简介 按照上一篇的计划,这一篇给小伙伴们分享一下测试方法. 一.设置参数 测试方法是可以带有参数的.每个测试方法都可以带有任意数量的参数,并且可以通过使用TestNG的@Parameters向方法传递 ...

  10. python如何判断一个对象是否是可迭代的?

    from collections import Iterable test_data = [{"type":1,"keyword":None}, {" ...