部署用于生产的Exceptionlees(一个强大易用的日志收集服务)
Exceptionless是一个非常优秀的事件记录服务,目前我们的自部署的Exceptionless已经稳定运行了近一年的时间,收集了千万条事件信息。但Exceptionless官方自宿主部署的文档不是非常详细(不知道是不是为了保证云订阅)。今天就来详细介绍下用于生成环境的Exceptionless部署事项。
Exceptionless简介
Exceptionless从翻译来看是无异常的意思,其实它收集了很多异常信息。
大家可以把他看做事一个非常好用的日志收集服务。
还提供了,多组织、多项目。
它是一个开源项目,作者也非常的热心,项目地址
https://github.com/exceptionless/Exceptionless
UI截图




我们还通过了webhook将异常发送至钉钉进行实时通知

这也是一个开源项目,项目地址为:
https://github.com/RabbitTeam/exceptionless-webhooks
支持的技术
- .NET/.NET Core
- JavaScript
- NodeJs
部署要求
- .NET4.7
- IIS 7.5+
- ElasticSearch 5.6
- Redis
关于这些要求大家自行搜索部署,本文不做介绍。
Exceptionless结构
- WebUI
- WebAPI
- BackgroundTask
Exceptionless 由3个部分组成,分别是:可视化的UI视图,WebAPI(主要用于程序发送日志和提供WebUI所需接口),后台任务(发送日志到es,跑webhook等)
本文会将这三个东西部署在一起。(机器有限,还有我们认为日志不是那么的重要,一般也很少宕机)
部署步骤
下载程序包
https://github.com/exceptionless/Exceptionless/releases
包内的wwwroot就是程序文件了
按需配置
配置文件
- Web.config
- app.config.*.js
为什么有两个配置文件?因为我们之前说过WebUI和WebAPI从结构上是两个不同的应用。(前后端分离)
所以我们需要对两个不同的东西单独配置。
Web.config
基本配置
RedisConnectionString
用于持久化状态的redis连接串
例:10.10.10.82:6379,defaultDatabase=1
ElasticSearchConnectionString
es的地址,如是集群可逗号分隔
例:http://10.10.10.231:9200,http://10.10.10.232:9200
BaseURL
exceptionless基础url
EnableSSL
是否启用ssl
WebsiteMode
有三个值
Dev
QA
Production
顾名思义选Production就好了,主要是邮件发送的限制。
邮件发件配置
SmtpHost
SmtpPort
SmtpEncryption
SmtpUser
SmtpFrom
SmtpPassword
这段不解释了。
高级设置
RunJobsInProcess
是否运行后台任务,理论上应该是false,但便捷起见我们没有单独跑后台任务,所以这边设了true,等以后撑不住了再把后台任务分出来。
ElasticSearchNumberOfShards
es切片数,具体看es相关的说明,官方建议设置成 3.
ElasticSearchNumberOfReplicas
es副本数(备份),官方建议设置成 1.
EnableArchive
这个属性文档上面没有写(默认为true),默认Exceptionless会把接收到的事件信息进行本地化IO存储,路径是(StorageFolder的配置项,默认为:App_Data\storage)
这样你会发现server上的硬盘占用非常的大,优于这些事件信息我们认为没那么重要所以设成了false,好处是减轻了IO压力,坏处是极端情况下会丢失事件数据(像es发送数据失败)
这个有点像缓冲区的概念,exceptionless不会每接收到一条事件就去写DB(es),而是通过一个后台任务批量的写一批到es。
app.config.*.js
BASE_URL
和Web.config的BaseURL一致即可
USE_SSL
和Web.config的EnableSSL一致即可
加速静态资源
exceptionless是歪果仁开发的,所以使用了一些国外的cdn资源,但这些资源在国内访问是非常慢的,而且还有被墙,比如 google fonts。
这时候就需要把这些资源替换成国内高速可用的cdn资源。
这边推荐一个国内的前端静态资源库

大家把这些资源在上面的网站上搜索,进行替换就好了。
注意还有 google fonts。
部署wwwroot
将wwwroot拷贝到服务器上,在IIS上创建一个web即可(相关文件权限记得开)
写在最后
这样一个可以用于生产的exceptionless就搭建完成了。
其中有几个步骤官方文档描述的不详细,这边在强调下
ElasticSearchConnectionString(多个es服务器以 ‘,’ 分隔)
EnableArchive(如果以默认值true,过段时间你会发现服务器的硬盘增长的非常快,exceptionless不会自动删除)
加速静态资源(如果不做这步你会发现打开exceptionless的ui非常的慢)
.NET技术栈QQ群:384413261(点击加入 .NET Group)
部署用于生产的Exceptionlees(一个强大易用的日志收集服务)的更多相关文章
- SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能
SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. 第一步:配置web.xml <!-- 配置Shiro过滤器,先让Shiro ...
- Linux下rsyslog日志收集服务环境部署记录【转】
rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...
- Linux下rsyslog日志收集服务环境部署记录
rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...
- 一个简单易上手的短信服务Spring Boot Starter
前言 短信服务在用户注册.登录.找回密码等相关操作中,可以让用户使用更加便捷,越来越多的公司都采用短信验证的方式让用户进行操作,从而提高用户的实用性. Spring Boot Starter 由于 S ...
- 将 Django 应用程序部署到生产服务器
原文出自: http://www.ibm.com/developerworks/cn/opensource/os-django/ 比较有启发性质的一篇文章,会避免很多弯路 Django 是一个基于 P ...
- linux下syslog-ng日志集中管理服务部署记录
syslog是Linux系统默认的日志守护进程,默认的syslog配置文件是/etc/syslog.conf文件.syslog守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放地点 ...
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十三)——istio+dapr构建多运行时服务网格之生产环境部署
之前所有的演示都是在docker for windows上进行部署的,没有真正模拟生产环境,今天我们模拟真实环境在公有云上用linux操作如何实现istio+dapr+电商demo的部署. 目录:一. ...
- (转) 将ASP.NET Core应用程序部署至生产环境中(CentOS7)
原文链接: http://www.cnblogs.com/ants/p/5732337.html 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Cor ...
- CSharpGL(0)一个易学易用的C#版OpenGL
+BIT祝威+悄悄在此留下版了个权的信说: CSharpGL(0)一个易学易用的C#版OpenGL CSharpGL是我受到SharpGL的启发,在整理了SharpGL,GLM,SharpFont等开 ...
随机推荐
- centos/linux下的安装Nginx
1.安装gcc编译器 先查看gcc编译器是否安装 在shell控制台输入gcc-v 如果没有安装请看下一步 使用yuma安装gcc yum intsall gcc 看到如下视图则说明安装成功 2.安装 ...
- es2015及es2017对我们的编程方式造成了什么影响?
记一些写代码中用得到的es6+语法,至于什么正则的拓展,数组的什么fill方法,对我们来说用处不大,就不提及了. 还有es6的import模块和class模块,这些在各种框架中都有体现,而且语法简单, ...
- 手把手教你树莓派实现简易室内监控系统(C)之BOA服务器的搭建
本篇主要讲利用BOA服务器做室内监控系统的服务器端. 古人云:万事开头靠百度,实在不行就Google.小编也是一步一步的,亲自搭建成功,不能说是万全之策,仅仅是给大家一个参考就满足了. 第一步: 1. ...
- 转:【web前端开发】浏览器兼容性处理大全
解决思路: ①.写代码的时候遵循W3C标准,按照最新稳定版本的IE或WebKit内核浏览器进行编码 ②.遇到部分无法全面解决浏览器兼容的时候,采取CSS的hack手段进行针对性微调.简单的说,CSS ...
- WinSock WSAEventSelect 模型总结
前言 本文配套代码:https://github.com/TTGuoying/WSAEventSelect-model 由于篇幅原因,本文假设你已经熟悉了利用Socket进行TCP/IP编程的基本原理 ...
- 排序算法整理(python version)
import random import time def bubble_sort(a): n=len(a) while n>1: for i in range(n-1): if a[i]> ...
- R-CNN算法概要
参考论文:Rich feature hierarchies for accurate object detection and semantic segmentation 下载地址:https://a ...
- Xamarin.Android 调用Web Api(通过ListView展示远程获取的数据)
xamarin.android如何调用sqlserver 数据库呢(或者其他的),很多新手都会有这个疑问.xamarin.android调用远程数据主要有两种方式: 在Android中保存数据或调用数 ...
- C#中各种计时器 Stopwatch、TimeSpan
1.使用 Stopwatch 类 (System.Diagnostics.Stopwatch)Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 St ...
- .Net Core 1.0升级2.0(xproj项目迁移到.csproj )
vs2015的创建的项目是以*.xproj的项目文件,迁移到vs2017需要如下准备: 1.安装好vs2017(废话) 2.下载最新的SDK和 .NET Core 2.0 Preview 1 Runt ...