Exceptionless是一个非常优秀的事件记录服务,目前我们的自部署的Exceptionless已经稳定运行了近一年的时间,收集了千万条事件信息。但Exceptionless官方自宿主部署的文档不是非常详细(不知道是不是为了保证云订阅)。今天就来详细介绍下用于生成环境的Exceptionless部署事项。

Exceptionless简介

Exceptionless从翻译来看是无异常的意思,其实它收集了很多异常信息。

大家可以把他看做事一个非常好用的日志收集服务。

还提供了,多组织、多项目。

它是一个开源项目,作者也非常的热心,项目地址

https://github.com/exceptionless/Exceptionless

UI截图

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

这也是一个开源项目,项目地址为:

https://github.com/RabbitTeam/exceptionless-webhooks

支持的技术

  1. .NET/.NET Core
  2. JavaScript
  3. NodeJs

部署要求

  • .NET4.7
  • IIS 7.5+
  • ElasticSearch 5.6
  • Redis

关于这些要求大家自行搜索部署,本文不做介绍。

Exceptionless结构

  1. WebUI
  2. WebAPI
  3. BackgroundTask

Exceptionless 由3个部分组成,分别是:可视化的UI视图,WebAPI(主要用于程序发送日志和提供WebUI所需接口),后台任务(发送日志到es,跑webhook等)

本文会将这三个东西部署在一起。(机器有限,还有我们认为日志不是那么的重要,一般也很少宕机)

部署步骤

下载程序包

https://github.com/exceptionless/Exceptionless/releases

包内的wwwroot就是程序文件了

按需配置

配置文件

  1. Web.config
  2. 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资源。

这边推荐一个国内的前端静态资源库

https://cdn.baomitu.com/

大家把这些资源在上面的网站上搜索,进行替换就好了。

注意还有 google fonts。

部署wwwroot

将wwwroot拷贝到服务器上,在IIS上创建一个web即可(相关文件权限记得开)

写在最后

这样一个可以用于生产的exceptionless就搭建完成了。

其中有几个步骤官方文档描述的不详细,这边在强调下

ElasticSearchConnectionString(多个es服务器以 ‘,’ 分隔)

EnableArchive(如果以默认值true,过段时间你会发现服务器的硬盘增长的非常快,exceptionless不会自动删除)

加速静态资源(如果不做这步你会发现打开exceptionless的ui非常的慢)
.NET技术栈QQ群:384413261(点击加入 .NET Group

部署用于生产的Exceptionlees(一个强大易用的日志收集服务)的更多相关文章

  1. SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能

    SpringMVC整合Shiro,Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能. 第一步:配置web.xml <!-- 配置Shiro过滤器,先让Shiro ...

  2. Linux下rsyslog日志收集服务环境部署记录【转】

    rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...

  3. Linux下rsyslog日志收集服务环境部署记录

    rsyslog 可以理解为多线程增强版的syslog. 在syslog的基础上扩展了很多其他功能,如数据库支持(MySQL.PostgreSQL.Oracle等).日志内容筛选.定义日志格式模板等.目 ...

  4. 一个简单易上手的短信服务Spring Boot Starter

    前言 短信服务在用户注册.登录.找回密码等相关操作中,可以让用户使用更加便捷,越来越多的公司都采用短信验证的方式让用户进行操作,从而提高用户的实用性. Spring Boot Starter 由于 S ...

  5. 将 Django 应用程序部署到生产服务器

    原文出自: http://www.ibm.com/developerworks/cn/opensource/os-django/ 比较有启发性质的一篇文章,会避免很多弯路 Django 是一个基于 P ...

  6. linux下syslog-ng日志集中管理服务部署记录

    syslog是Linux系统默认的日志守护进程,默认的syslog配置文件是/etc/syslog.conf文件.syslog守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放地点 ...

  7. 通过Dapr实现一个简单的基于.net的微服务电商系统(十三)——istio+dapr构建多运行时服务网格之生产环境部署

    之前所有的演示都是在docker for windows上进行部署的,没有真正模拟生产环境,今天我们模拟真实环境在公有云上用linux操作如何实现istio+dapr+电商demo的部署. 目录:一. ...

  8. (转) 将ASP.NET Core应用程序部署至生产环境中(CentOS7)

    原文链接: http://www.cnblogs.com/ants/p/5732337.html 阅读目录 环境说明 准备你的ASP.NET Core应用程序 安装CentOS7 安装.NET Cor ...

  9. CSharpGL(0)一个易学易用的C#版OpenGL

    +BIT祝威+悄悄在此留下版了个权的信说: CSharpGL(0)一个易学易用的C#版OpenGL CSharpGL是我受到SharpGL的启发,在整理了SharpGL,GLM,SharpFont等开 ...

随机推荐

  1. wordpress安装五步法

    原文链接: 下载并解压缩WordPress程序安装包 在你的网页服务器上为WordPress创建一个数据库, 并且创建一个MySQL 拥有所有权限可以进入和修改的用户 重命名 wp-config-sa ...

  2. 我不知道的行高——line-height

    概述 对于块级元素,CSS属性line-height指定了元素内部line-boxes的最小高度. 对于非替代行内元素,line-height用于计算line box的高度. 对于替代行内元素,如bu ...

  3. c中有序表的简单定义

    #include <iostream> using namespace std; #define MaxSize 50 typedef int ElemType; //定义变量int的别名 ...

  4. C语言队列(数组内核)

    #include <stdio.h>#include <stdbool.h>#include <stdlib.h>struct Queue{ int *pBase; ...

  5. UVa 11988破损的键盘

    这题是很好的学习用数组实现链表的例子. 原题链接 UVa11988 题意 输入一段文本,字符'['表示Home键,']'表示End键.输出屏幕上面的结果. 思路 难点在于在字符串的头和尾插入字符,如果 ...

  6. php基本函数的学习(2)

    chgrp chgrp — 改变文件所属的组 说明: bool chgrp ( string $filename , mixed $group ) 尝试将文件 filename 所属的组改成 grou ...

  7. [HNOI2014]道路堵塞

    题目描述 A国有N座城市,依次标为1到N.同时,在这N座城市间有M条单向道路,每条道路的长度是一个正整数.现在,A国交通部指定了一条从城市1到城市N的路径,并且保证这条路径的长度是所有从城市1到城市N ...

  8. openstack-ocata-仪表盘服务6

    Dashboard(horizon)是一个web接口,使得云平台管理员以及用户可以管理不同的Openstack资源以及服务.这个部署示例使用的是 Apache Web 服务器.一. 安装和配置 接下来 ...

  9. 在Keil uv5里面添加STC元器件库,不影响其他元件

    先到网上下载stc.CBD(http://download.csdn.net/detail/mao0514/9699117) 还有STC新系列单片机的头文件,宏晶的网站就有 1.在Keil/C51/I ...

  10. python︱Anaconda安装、简介(安装报错问题解决、Jupyter Notebook)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 安装完anaconda,就相当于安装了Pyth ...