昨天的文章<免费开源分布式系统日志收集框架 Exceptionless>反响很大,今天推的一篇是续集,文章来自于宝岛台湾的MVP, 让 Exceptionless 建置 Log Server,性能不用担心,用的是大名点点的ELK组合.

前言


痾...久违的新文章,让我的眼角流下了蛋蛋忧伤的泪珠....

今天来介绍一下一款 Open Source 的项目「Exceptionless」

Exceptionless 是什么? 在 Exceptionless 的团队对这个名称的定义意义是无例外,当然...谁不想~不要有例外错误发生呢? (泪...),但是当发生例外时你要怎么知道!? 就可以通过 Exceptionless 的服务来取得必要信息啦(要钱的~)

当然,这个团队也是很佛心的提供了 Open Source 让你可以自己架设你的 Log Server 啦! 整个 Exceptionless 包含了 Server 与 Client 两部分,Server指的是一个 Web Api 的项目与 Dashboard 检视,提供Client 端将系统信息写入,Clinet 指的是客户端通过所提供的 Lib 就能够简单的呼叫提供的方法写入 Log 信息。

目前有提供的客户端支持有 ASP.NET, MVC, Web API, WPF, WinForms, and Console,JavaScript, Node.js,另外也支持了NLog扩充,为了我们的荷包着想,接来下我将介绍一下怎么自行安装 Exceptionless 给你的系统使用,本文章使用 Exceptionless v 3.0.0 为范例。

准备动作


首先,请先准备以下几个项目

§  安装 .Net Framework 4.5.1+

§  安装 Java 1.8+

§  安装 IIS 8+

§  安装 ElasticSearch 1.7.0+

§  下载 Exceptionless 3.0.0

§  下载 Exceptionless.UI 2.1.1

针对 Java 的部分,需要至环境变量设定 JAVA_HOME,指向你的 Java 安装目录,如下

针对 Elasticsearch,Exceptionless 使用 Elasticsearch 作为数据库储存你的 Log,

下载后解压缩至 C:\Program Files\Elasticsearch\content\ 路径底下,

另外需要使用 Exceptionless 配置好的配置文件,直接覆盖掉在 C:\Program Files\Elasticsearch\content\elasticsearch-1.7.2\config里面的 elasticsearch.yml

接着,我们通过 Window Service 将 Elasticsearch 启动 (参考),

开启命令提示字符,切换到 C:\ProgramFiles\Elasticsearch\content\elasticsearch-1.7.2\bin 目录下

输入: service.bat install elasticsearch-service-x64

看到以下画面就成功了,再去服务里面启动。

另外,还要通过浏览器去检查一下服务是否启动,开启浏览器输入网址: http://localhost:9200

架设 Server 与 Dashboard


架设的部分,最简单的方法可以使用 GitHub 上所提供的 Release 档案进行架设,

解压缩准备步骤中,所下载的两个档案 Exceptionless 与 Exceptionless.UI,

1.开启Exceptionless 解压缩后的 wwwroot 目录里面的 web.confg 档案,

修改里面的内容:

RedisConnectionString: 支持 Redis,如果有的话就可以使用

ElasticSearchConnectionString: 刚刚所安装的 ElasticSearch 的网址: http://localhost:9200

BASE_URL: 更改为 Exceptionless.UI Dashboard 网站的网址,例如:http://ui.localexceptionless.com/#

EnableSSL: 是否要使用 SSL,当然有 SSL 的话是建议启用的

WebsiteMode: 如果为在线环境改使用 Production

Exceptionless:ServerUrl: 更改为 Exceptionless Api 网站的网址,例如: http://api.localexceptionless.com

剩下还有一些设定,例如 Mail 通知等等,可以视需求进行设定。

2.开启 Exceptionless.UI解压缩后目录里面的 app.config.3869d2f297f52e30ccaa12dc361cdd01.js档案,

修改里面的内容:

BASE_URL: 更改为 Exceptionless Api 网站的网址,例如: http://api.localexceptionless.com

USE_SSL: 是否要使用 SSL,当然有 SSL 的话是建议启用的

在 IIS 中建立两个站台,分别指到 Exceptionless 的 wwwroot 目录与 Exceptionless.UI 的根目录。

之后执行网站,就会看到以下两张图 (在这步骤因为我没有IIS8...所以我使用 VS 2015 开启项目档执行 Api 项目)


建立 Exceptionless 项目


当网站架设完成后,你需要点选 Signup注册一个账号进入 Exceptionless,登入后画面如下

在这个页面你要建立一个 Project ,当 Project 建立完成后会产生一组 Api Key,这组 Api Key 将会在Client 端使用到,如下图

安装 Client Exceptionless 套件


到这个步骤就是要来使用我们所建置完成的 Log Server,

首先我建立了一个测试网站,由于一般开发我们都会使用 NLog 作为纪录 Log 的第三方套件使用,而 Exceptionless 也扩展了 NLog,让我们可以直接通过呼叫 NLog 的方法,将 Log 写入到 Exceptionless 的 Target。

接下来通过 NuGet 安装 NLog 与 Exceptionless.NLog,如下图

再来,建立一个 NLog.config 档案,内容为设定 Exceptionless 的 Target,如下

 
<?xml version="1.0" encoding="utf-8" ?>
<nlogxmlns="http://www.nlog-project.org/schemas/NLog.xsd"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <extensions>
    <addassembly="Exceptionless.NLog" />
  </extensions>
  <targetsasync="true">
    <targetname="exceptionless"xsi:type="Exceptionless"

apiKey="eIH5SgZcaluHIfMRzCg0OW5FUZQQMqmfUDsYSOG0"

serverUrl="http://localhost:50000/">
      <fieldname="host"layout="${machinename}" />
      <fieldname="identity"layout="${identity}" />
      <fieldname="windows-identity"

layout="${windows-identity:userName=True:domain=False}" />
      <fieldname="process"layout="${processname}" />
    </target>
  </targets>
  <rules>
    <loggername="*"minlevel="Info"writeTo="exceptionless" />
  </rules>
</nlog>

然后执行我的测试网站,就可以看到以下的结果:

结语


以上就是用 Exceptionless 建置 Log Server 的教学,Exceptionless 的 Dashboard 操作起来还蛮好使用的,也可以依据条件进行塞选,又整合了 NLog,使用上其实可以很简易的加入项目,效能方面的话,Exceptionless我测试过写入 1 千多万笔的 Log 信息,通过 Dashboard 来查询的时候速度都还OK,如果想的话,也可以自己介接他的 API,做自己的 Dashboard,更多的功能就要你自己去探索了喔!!

相关文章:

  • 免费开源分布式系统日志收集框架 Exceptionless

  • 使用Elasticsearch 与 NEST 库 构建 .NET 企业级搜索

  • 为elasticsearch集成一些实用插件以及配置的开箱即用的版本

原文地址:https://dotblogs.com.tw/joysdw12/2015/10/01/exceptionle

ss_nlog_log_server


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

使用 Exceptionless 作为 Log Server 搭配 NLog 记录系统日志相关推荐

  1. C++日志库log4cplus:SocketAppender记录日志到log Server

    转载请注明出处:http://blog.csdn.net/jmppok/article/details/17375057 1.问题 C++程序在后台运行时,可通过log4cplus记录日志.当C++程 ...

  2. boost::log模块测量日志记录发射的性能

    boost::log模块测量日志记录发射的性能 实现功能 C++实现代码 实现功能 boost::log模块测量日志记录发射的性能 C++实现代码 #define BOOST_NO_DYN_LINK ...

  3. 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣ㄧ増鏈�:

    有的朋友再启动Tomcat的时候会出现 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣ㄧ増鏈� ...

  4. 使用SQL Server 获取插入记录后的ID(自动编号)

    使用SQL Server 获取插入记录后的ID(自动编号) jingxian 本篇文章是对使用SQL Server获取插入记录后的ID(自动编号)的方法进行了详细的分析介绍,需要的朋友参考下 最近在开 ...

  5. 使用SQL Server 获取插入记录后的自增ID(自动编号)

    http://www.jb51.net/article/39029.htm 本篇文章是对使用SQL Server获取插入记录后的ID(自动编号)的方法进行了详细的分析介绍,需要的朋友参考下 最近在开发 ...

  6. Web API——添加Swagger、SQL Server、日志记录、导出到Excel和Docker

    目录 介绍 要求 1.创建一个新的Web API项目 2.将Swagger添加到项目 3.将项目连接到SQL Server数据库 4.登录到SQL Server 5.添加"导出到Excel& ...

  7. Niginx工作笔记-通过error.log定位错误(记录一个寻找问题的方法)

    个人感觉一个合格的程序员,必须具备找到问题的方法和解决问题的能力. 这里记录下第一次通过nginx中error.log找到问题并解决问题的过程. 在nginx目录下有一个logs目录,里面有error ...

  8. SQL Server 审计功能-记录所有的操作记录

    说到审计这个话题,相信作为一个企业管理员都知道,比如一般作为一个AD管理员的话,一般都会通过Policy开启审计功能,记录一些自定义的事务日志.对于SQL Server来说,审计也是一样的,SQL S ...

  9. sql server 的一些记录

    下面记录一些用到sql server查询时候用到的函数. charindex,在一个表达式中搜索另一个表达式并返回其起始位置(如果找到).http://msdn.microsoft.com/zh-cn ...

最新文章

  1. linux nfs 进程,【Linux】 nfs 故障处理
  2. Python学习(10)元组
  3. 测试两个主机之间的连通性_UCloud 全链路大规模网络连通性检测系统详解
  4. php168站内统计,PHP168整站系统0DAY
  5. GStreamer 入门 - Hello,World
  6. CentOS/Linux 卸载MATLAB
  7. perl对文件和目录进行操作
  8. Flume-NG + HDFS + HIVE 日志收集分析 | EyeLu技术Blog
  9. JWT实现Token认证
  10. 大漠插件最新版本7.2031
  11. 静态测试和动态测试有何区别
  12. NEUQOJ 1999: 三角形or四边形?【搜索联通块/模拟】
  13. 前方高能!Netflix推出《怪奇物语》VR体验
  14. 计算机辅助英语教学 研究背景,信息时代背景下的英语教学(原稿)
  15. Parallels Desktop v17.1.1 网络初始化失败
  16. 效率评价方法--数据包络分析
  17. 单细胞转录组文章复现系列(一)——seurat
  18. Qt QTableWidget表格控件的用法(非常详细)
  19. 那些年啊,那些事——一个程序员的奋斗史 ——14
  20. ORA-12034: materialized view log on SCOTT.T_ROWID younger than last refresh

热门文章

  1. Building JavaScript Games for Phones Tablets and Desktop(3)-创造一个游戏世界
  2. Oracle用户、权限、角色管理
  3. iPhone比小米贵3000,贵在哪里?
  4. 在C#中使用SQLite
  5. FreeBSD大败局
  6. 更方便地模拟 Http 响应
  7. C# WPF MVVM开发框架Caliburn.Micro Screens, Conductors 和 Composition⑦
  8. ASP.NET Core启动地址配置方法及优先级顺序
  9. Dapr + .NET 实战(八)服务监测
  10. 成长 | 《大厂晋升指南》学习总结(上)