部署用于生产的Exceptionlees(一个强大易用的日志收集服务)

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)

相关文章:

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

  • 使用 Exceptionless 作为 Log Server 搭配 NLog 记录系统日志

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

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

  • Exceptionless 本地部署

  • ExceptionLess新玩法 — 记日志

  • .NET Exceptionless 日志收集框架本地环境搭建

原文地址:https://www.cnblogs.com/ants/p/8580890.html 


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/321917.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

K8S Learning(5)——Pod

一、Pod简介 Pod是kubernetes集群进行管理的最小单元,程序要运行必须部署在容器中,而容器必须存在于Pod中。Pod可以认为是容器的封装,一个Pod中可以存在一个或者多个容器。 kubernetes在集群启动之后,集群中的各个组件也都是以Po…

P4880-抓住czx【最短路】

正题 题目大意:https://www.luogu.org/problem/P4880 题目大意 一个无向图,从bbb点出发,目标在eee点,TTT次移动在第aia_iai​时移动到点xix_ixi​。求最早多少能到。 解题思路 若一个点我们到不了我们就不用管它了,所以我们只要…

ASP.NET Core Web API下事件驱动型架构的实现(四):CQRS架构中聚合与聚合根的实现

在前面两篇文章中,我详细介绍了基本事件系统的实现,包括事件派发和订阅、通过事件处理器执行上下文来解决对象生命周期问题,以及一个基于RabbitMQ的事件总线的实现。接下来对于事件驱动型架构的讨论,就需要结合一个实际的架构案例…

K8S Learning(6)——Label

一、Label简介 Label是kubernetes系统中的一个重要概念。它的作用就是在资源上添加标识,用来对它们进行区分和选择。 Label的特点: 一个Label会以key/value键值对的形式附加到各种对象上,如Node、Pod、Service等等 一个资源对象可以定义任…

P3531-[POI2012]LIT-Letters【逆序对,树状数组】

正题 题目大意:https://www.luogu.org/problem/P3531 题目大意 两个由相同字符组成的字符串,每次可以交换相邻的两个字符,求最少交换次数使这两个字符串相同。 解题思路 我们拿第二个字符在第一个字符串对应的位置作为值求逆序对数量即可。 注意的是…

水题 矩阵快速幂

Description 函数 f:Z→Zf:Z→Z。已知 f(1),f(2)f(1),f(2) 的值,且对于任意 x>1x>1,有 f(x1)f(x)f(x−1)sin(πx2)f(x1)f(x)f(x−1)sin⁡(πx2)。 求 f(n)f(n) 的值。 Input 多组数据。(数据组数 T≤100T≤100&a…

如何看待微软新开源的Service Fabric?

本人曾在Service Fabric (SF)项目中做了几年,这次很兴奋能看到它的开源。短短两天已经有1300多个关注了。我看了一下开源的代码,真是满满的干货,200多万行C代码,所有最核心的协议算法都在里面。但是,不得不承认&#x…

K8S Learning(7)—— Deployment

一、Deployment简介 在kubernetes中,Pod是最小的控制单元,但是kubernetes很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器用于pod的管理,确保pod资源符合预期的状态,当pod的资源出现故障时,会尝…

P1477-[NOI2008]假面舞会【构图,dfs,gcd】

正题 题目链接:https://www.luogu.org/problem/P1477 题目大意 一张有向图,分为zzz类点,对于每条边要么是iii类连向i1i1i1类,要么是kkk类连向111类(k≥3k\geq 3k≥3),求zzz的最小值和最大值(不给出kkk) 解题思路 首先不考虑环&…

公共子串 字符串哈希

You are given two long strings AA and BB. They are comprised of lowercase letters. You should compute how many suffixes of AA are the prefixes of BB. Input In the first line is a number TT (0<T≤1000<T≤100) , indicating the cases following.In the ne…

RabbitMQ教程C#版 “Hello World”

先决条件 本教程假定RabbitMQ已经安装&#xff0c;并运行在localhost标准端口&#xff08;5672&#xff09;。如果你使用不同的主机、端口或证书&#xff0c;则需要调整连接设置。从哪里获得帮助 如果您在阅读本教程时遇到困难&#xff0c;可以通过邮件列表联系我们。1.介绍Rab…

K8S Learning(8)—— Service

一、Service简介 利用Deployment来创建一组Pod来提供具有高可用性的服务&#xff0c;每个Pod都会分配一个单独的Pod IP&#xff0c;却存在以下两个问题&#xff1a; Pod IP 会随着Pod的重建产生变化 Pod IP 仅仅是集群内可见的虚拟IP&#xff0c;外部无法访问 对于访问这个服…

牛客小白月赛18-记录

正题 比赛链接:https://ac.nowcoder.com/acm/contest/1221 成绩 总结 好难&#xff0c;就拿了一些水题分 T1:Forsaken喜欢数论\texttt{T1:Forsaken喜欢数论}T1:Forsaken喜欢数论 题目大意 f(i)f(i)f(i)表示iii的最小质因子&#xff0c;求∑i2nf(i)\sum_{i2}^nf(i)∑i2n​f(i…

.NET Core开源API网关 – Ocelot中文文档

Ocelot是一个用.NET Core实现并且开源的API网关&#xff0c;它功能强大&#xff0c;包括了&#xff1a;路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成&#xff0c;下面我…

数学题 贪心+二分答案

Description 现在有两个数组 AA 和 BB&#xff0c; 分别包含 xx 与 yy 个元素。 定义一个新的数组 CC&#xff0c; CC 中包含 xyxy 个元素&#xff0c;为 AA 中所有元素除以 BB 中所有元素。 即 新集合为 &#xff5b;c∣cab&#xff0c;a∈A&#xff0c;b∈B&#xff5d;&…

K8S Learning(9)——Pod介绍

一、 Pod结构 每个Pod中都可以包含一个或者多个容器&#xff0c;这些容器分为两类&#xff1a; 用户程序所在的容器&#xff0c;数量没有限制 Pause容器&#xff0c;这是每个Pod都会有的一个根容器&#xff0c;它的作用有两个&#xff1a; 可以以它为依据&#xff0c;评估整个…

NOI.AC-序列【堆】

正题 题目链接:http://noi.ac/contest/266/problem/793 题目大意 给定mmm个函数fz(x)∑i0kaz,i∗xif_z(x)\sum_{i0}^ka_{z,i}*x^ifz​(x)∑i0k​az,i​∗xi&#xff0c;然后求这些函数的并集中第nnn大的数。 解题思路 我们显然可以得出fz(i)<fz(i1)f_z(i)<f_z(i1)fz​…

ABP前端使用阿里云angular2 UI框架NG-ZORRO分享

一、前言前段时间写博客分享和介绍了阿里云的UI框架NG-ZORRO&#xff08;博客请查看&#xff1a;http://www.cnblogs.com/donaldtdz/p/7892960.html&#xff09;&#xff0c;结合近段时间对.Net开源框架ABP的学习。完成将ABP前端框架替换成阿里云的NG-ZORRO。二、替换说明ABP版…

Prufer序列 生成树定理

Description 在图论中&#xff0c;树的定义是连通且无环的无向图。对于一棵有 nn 个节点且节点从 11 到 nn 编号的树&#xff0c;它的 Prufer 序列是一个唯一的长为 n−2n−2 的标号序列。 Prufer 序列的构造方法&#xff1a;每次删除树中标号最小的叶子节点&#xff08;即度为…

K8S Learning(10)——Pod配置

pod.spec.containers属性是pod配置中最为关键的一项配置。 kubectl explain pod.spec.containersKIND: Pod VERSION: v1 RESOURCE: containers <[]Object> # 数组&#xff0c;代表可以有多个容器 FIELDS:name <string> # 容器名称image <string>…