前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >话说ELK使用安装,结合.NET Core、ABP框架Nlog日志

话说ELK使用安装,结合.NET Core、ABP框架Nlog日志

作者头像
牛嗷嗷
发布2018-08-01 10:47:35
1.4K0
发布2018-08-01 10:47:35
举报
文章被收录于专栏:微服务

介绍ELK

它是一个解决方案,是Logstash、Elastaicsearch、Kibana的缩写,为什么使用:想想你是很多系统,出了问题还要登录到服务器查看日志、或者系统部署在客户的机器上,你甚至没有权限登录到别人服务器,作为开发人员又要修复bug!!再者,我们日志可以根据日志级别做分析,Kibana提供很多图形展示,很好的分析日志,从而检测系统健康。
  • 数据源:可以来自Redis、Nginx、Docker、Rabbitmq、Consul、系统日志等等各式各样的日志文件。
  • Logstash:开源的服务器数据处理管道,能够同时从多个来源采集数据、转换数据、然后将数据存到数据库中。
  • Elastaicsearch:搜索、分析、存储数据。
  • Kibana:数据可视化Web。
  • Beats: 轻量型采集器的平台。从边缘机器想Logstash和Elasticsearch发送数据。
  • Filebeat:轻量型日志采集器。

安装ELK 这里采用懒人安装,Docker容器化安装,安装前先保证自己已经安装Docker-compose,安装地址:https://github.com/deviantony/docker-elk.git,安装完访问服务地址:http://localhost:5601,http://localhost:9200.

ELK中文官方文档 Elasticsearch 权威指南中文版(2.x) Kibana 中文手册(6.0) 好了,ELK内容到这里把!建议、最好看一首文档,就不要去看博客了,因为都是抄来抄去,想骂人。分割线 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ABP集成ELK

  • ABP开始是Log4,一开始以为Log4这里可以支持集成ELK,后续发现比较坑。因为没有Log4支持的Nuget包,后续转到Nlog。ABP很多文档说转换日志管理很简单,很多博客都是一笔带过,知其然不知其所以然,我看到这些博客心里早已是万马奔腾,mmp,最后在github找到一个开源的abp的nlog包Abp.Castle.NLog,另外还需要安装另外两个包NLog.Web.AspNetCore,NLog.Extensions.Logging,如果你不安装,在nlog.config中的一些参数你将不可用。 .net core 配置nlog

nlog配置文件:

代码语言:javascript
复制
<?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"
      autoReload="true"
      internalLogLevel="Warn"
      internalLogFile="internal-nlog.txt">

  <extensions>
    <add  assembly="NLog.Web.AspNetCore"/>
  </extensions >

  <variable name="logDirectory" value="${basedir}\logs\"/>

  <!--define various log targets-->
  <targets>

    <!--write logs to file-->
    <target xsi:type="File" name="allfile" fileName="${logDirectory}\nlog-all-${shortdate}.log"
            layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />

    <target xsi:type="Network"
            name="elastic"
            keepConnection="false"
            address ="tcp://ip地址:5000"
            index="msglog-${shortdate}"
            layout="${longdate}|${logger}|${uppercase:${level}}|${message} ${exception}" />
    />

    <target xsi:type="Null" name="blackhole" />

  </targets>

  <rules>
    <!--All logs, including from Microsoft-->
    <logger name="*" minlevel="Trace" writeTo="allfile" />

    <!--Skip Microsoft logs and so log only own logs-->
    <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
    <logger name="*" minlevel="Trace" writeTo="elastic" />

  </rules>
</nlog>

注意:ip地址哪里的端口为你配置logstash的input地址:

ABP日志写入

ABP日志通过属性注入,直接看代码了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍ELK
    • 它是一个解决方案,是Logstash、Elastaicsearch、Kibana的缩写,为什么使用:想想你是很多系统,出了问题还要登录到服务器查看日志、或者系统部署在客户的机器上,你甚至没有权限登录到别人服务器,作为开发人员又要修复bug!!再者,我们日志可以根据日志级别做分析,Kibana提供很多图形展示,很好的分析日志,从而检测系统健康。
      • ABP日志写入
      相关产品与服务
      云数据库 Redis
      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档