一、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. js构造函数的浅薄理解

    任何函数,只要通过 new 操作符来调用,那它就可以作为构造函数 如:任何函数,只要通过 new 操作符来调用,那它就可以作为构造函数 : fuction Preson(){...} var pres ...

  2. 通​过​C​a​c​t​i​监​控​w​i​n​d​o​w​s​资​源

    前提条件 一.已安装好Cacti:ubuntu下cacti安装配置 二.准备好以下安装文件: Cacti_SNMP_Informant_Standard_Metrics_v13.zip(该cacti监 ...

  3. Creator3D 守护你的球球—UV动画与天空盒

    1 游戏预览 在线体验地址:http://example.creator-star.cn/follo-ball/ 2 场景物体 场景物体 新建场景后,引擎会为我们创建默认的摄像机和灯光,这个我们就不介 ...

  4. Windows SDK version 8.1 下载地址

    Windows SDK version 8.1 下载地址 https://go.microsoft.com/fwlink/p/?LinkId=323507

  5. 某PHP发卡系统SQL注入

    源码出自:https://www.0766city.com/yuanma/11217.html 安装好是这样的 审计 发现一处疑似注入的文件 地址:/other/submit.php 看到这个有个带入 ...

  6. 自力更生Collections.sort发现比较结果混乱?Comparator的锅还是强转类型导致?

    近日开发任务时间充裕一些,于是有时间回顾一下项目. 我关注到了项目中使用的七牛云的对象存储服务. 作为测试需要上传了一些图片,但七牛的控制台却无法将内容按照上传时间排序或者是按照日期查询,由于buck ...

  7. Controller层的方法访问标志与Spring装配与AspectJ切面处理

    最近在做AspectJ实现的日志模块,在spring配置中加入了<aop:aspectj-autoproxy/>,之后发现,只要有用到自定义注解的类,某些方法经MVC请求时就报空指针错误. ...

  8. 一文了解Mysql

    文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. Redis系列到上一篇已经全部结束了,从本篇开始进入Mysql系列文章专题.本篇作为Mysql系列专题的开篇文 ...

  9. 【Spring Cloud】服务容错保护:Hystrix(四)

    一.雪崩效应 在微服务架构中,由于服务和服务之间可以互相调用,一项工作的完成可能会依赖调用多个微服务模块,但由于网络原因或者自身的原因,服务并不能保证100%可用,如果单个服务出现问题,调用这个服务就 ...

  10. 实践开发:vue框架重点知识分析

    一个VUE项目的主树: assets文件夹是放静态资源: components是放组件: router是定义路由相关的配置; view视图: app.vue是一个应用主组件: main.js是入口文件 ...