分布式、微服务必须配个日志管理系统才优秀,Exceptionless走起~~~

前言

在真实的项目中,不管是功能日志、错误日志还是异常日志,已经是项目的重要组成部分。在原始的单体架构,通常看日志的方式简单粗暴,直接登录到服务器,把日志文件拷贝下来进行分析;而如今分布式、微服务架构盛行,如果每个节点服务器都去拷贝一次,估计还没等你拷贝完,Boss就要炸锅了;特别是遇到线上问题,肯定需要快速响应,所以好的日志管理工具真的不能少,这里就来说说Excetpionless日志框架。

正文

1. Exceptionless简介

Exceptionless是开源的,可以为 ASP.NET、Web API、WebForms、WPF、控制台项目收集对应的异常、事件和日志信息,并将收集到的信息进行分组归类,有利于问题排查及相关数据统计。使用简单也便捷,主要功能如下:

  • 针对关注信息可进行通知提醒;

  • 收集信息根据种类进行分组管理;

  • 记录详细的错误或异常信息,排查错误更轻松;

  • 可以管理用户查看信息;

  • 图表形式显示数据更加直观;

  • 相关配置轻松设置;

  • 收集日志、错误信息等很方便;

通俗一点来说就是把异常、日志等信息收集在一起,统一的入口查看;针对相关信息进行分组,并以图表的形式进行查看,还可以对用户关心的信息进行通知提醒等扩展功能;

bca800131231f6edd3745eed2d2b6ad0.png

Exceptionless有两种方式可以进行日志管理:

  • 托管方式

    这种方式只需要在Exceptionless官网(https://exceptionless.com/)注册一个账号即可,存储那些都不用管,比较省心,简单三步走就能完成日志收集,如下:

    0aeb47557ae20edbb6060ebe7de454d1.png

    这种方式是把采集到的信息存储到官方的服务器上了,感觉不太好,一是日志信息其实对于一些项目来说很重要,二是要收费啊,免费版其实就是试用版,高级功能用不了,还要限制人数和项目数。

    eb053741ccd9a27fd069c314670338e6.png
  • 自己搭建环境

    自己搭建环境,服务器都是自己,私有化,爽歪歪;但这种方式,不好的点就是需要花钱买服务器;

下面以WebAPI项目的方式进行演示,版本用.NET5。

2. 托管方式实现

2.1 注册账号并创建组织和项目

直接进入官网(https://exceptionless.com/)注册一个账号即可,注册账号绝对免费滴;

5d3476e79af8941734fb11b93de22490.png
image-20210925110911088

创建组织和项目,如下:

先创建组织

40ae26bf298a544c009bcf0d90daa173.png

再创建项目

2c0e11ea2429031b75dea42c5d643486.png
2.2 引入NuGet包并在Startup.cs注入和使用

这里创建了一个WebAPI项目,引入Exceptionless.AspNetCore 即可;

cf54cba7c15029f958a7bbc4a68057f5.png

在Startup.cs文件中进行注入相关服务并注册到管道中,如下:

df8a7b2cc8a841074e1d900767cceb94.png
2.3 记录日志看效果

这里在API中进行日志记录和异常信息上报,如下:

1949e519794d8ceb13295e0fc6695307.png

看效果,登录进官网(https://exceptionless.com/),就会看到对应的异常信息了,如下:

a913d6a0aa9326c69a385292a254f0d9.png

3. 自己搭建环境

2.1 安装环境

Exceptionless提供Docker安装版,这里先以Dockerfile形式演示,Docker Compose就一样的道理,只是分开容器部署更方便了。现在先直接下载(https://github.com/exceptionless/Exceptionless/releases),推荐7.1.0版本,7.1.1的折腾了我好久,要么脚本执行不成功,要么缺少文件;然后拷贝到对应的Docker主机上解压,如下:

# 如果unzip命令找不到,就需要安装yum install -y unzip zip# 然后解压unzip Exceptionless-7.1.0.zip

解压后的信息如下

1f5d8be8d8050501d5b813190bc85172.png

Dockerfile 把对应的Exceptionless UI、Elasticsearch等都安装在内部了由于我的云服务内存比较小(内存大的可以不改),Dockerfile文件中默认指定了Elasticsearch最小使用内存为1G,如果内存不够,就会报错空间不足,所以稍微改动一下Dockerfile,如下:

d070af8907a5ce97e01202a747938e3a.png

改好之后就直接构建为镜像,执行如下命令:

docker build -t test333 .

构建成功之后,直接通过镜像启动容器即可,如下命令

docker run -it --name tt3 -p 5000:80 -p 9200:9200 test333

可能由于服务器配置比较低的原因,启动稍微需要点时间。

注:如果对docker还不太熟的,参考docker系列文章

Excpetionless API和Exceptionless UI 站点部署为一个站点了,如果能如下访问页面并能注册成功,环境就搭建完成。

48c5262e782d8c5a585df34412052fb3.png
2.2 实操演练

登录Exceptionless UI系统(http://IP:5000/)进去之后就创建组织和项目,和托管的步骤差不多:

d230fbd355e1281a8fa3468869ebc326.png

下一步就是针对选择自己的项目类型,集成就行了(这步托管的也有,只是没截图),如下:

e8d3ec03c79d9e70d8b2c125be97dd73.png

稍微改改Startup.cs文件,其他不用动,如下:

80ac08bd1cecdd10ac43a6d66be482cf.png

好了,这样就改完了,其他代码不动,运行访问一下API ,看日志效果:

e1bb1e3c8e470aac6ab2c4833745397c.png

2.3 Exceptionless 还提供接口调用

不管是托管还是自己搭建环境,都有提供对应的API进行调用,所以可以通过API的形式自己搞一个个性化的UI出来,也可以在其他系统中集成显示日志,反正接口在手,爱咋玩就咋玩;实在不行就改源代码,嘿嘿嘿~~~。

138f10cded966eed1a66a7bd458b8ada.png

Exceptionless的使用还是很简单的,只是搭建的时候的花点心思。

代码地址:https://gitee.com/CodeZoe/microservies-demo/tree/main/ExceptionlessDemo

Exceptionless官网:https://exceptionless.com

Exceptionless源代码:https://github.com/exceptionless/Exceptionless/releases

总结

关于上面只是演示Exceptionless的使用,包含托管和自己搭建环境,基本上小伙伴都会选择自己搭建;搭建过程需要花点心思,比如ES要不要集群,要不要支持APM,邮件通知配置等等,不过现在可以通过Docker-compose一键安装,最多就是需要等待一会。还有如果想搞点个性化的,也可以在Exceptionless的源代码上做操作;后续细节再单独汇总吧;

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

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

相关文章

Hotspot hotswap, who and who are best freinds

Hotspot&hotswap,whoandwhoarebestfreinds(点击这里查看ppt)java动态替换的ppt。hotspot&hotswapwhoandwhoarebestfriendsxuanxitaobao.comwhyweneedhotswap?主管:你在偷懒?汇编开发人员:我在编译。C开发人员:我在编译打包部署。java…

《TCP/IP详解卷1:协议》第6章 ICMP:Internet控制报文协议-读书笔记

章节回顾: 《TCP/IP详解卷1:协议》第1章 概述-读书笔记 《TCP/IP详解卷1:协议》第2章 链路层-读书笔记 《TCP/IP详解卷1:协议》第3章 IP:网际协议(1)-读书笔记 《TCP/IP详解卷1:协议…

10以内的分解与组成怎么教_狗狗酷炫的飞盘游戏怎么玩?分解步骤教你快速学会...

现在的铲屎官都喜欢训练自己的狗狗,训练狗狗不仅可以增加狗狗与主人的感情,还能增强狗狗的协调性,开发狗狗的智力,可谓一举两得。其中飞盘是大家都比较爱的活动,经常看看狗狗以华丽的身姿一跃接起主人扔的飞盘&#xf…

计算机组成与系统 报告,计算机组成与系统结构实验报告2

计算机组成与系统结构实验报告,西北工业大学评语: 课中检查完成的题号及题数: 成绩:自评成绩:95课后完成的题号与题数:实验报告实验名称: 班级:1.4 CPU 与简单模型机设计实验 日期: 2015.11.16 杨添文10011303 学号&am…

c++ 异步下获取线程执行结果_前端异步编程的那些事

啊一、异步编程的运行机制我们学习Javascript语言的时候就知道它的执行环境是”单线程“的。所谓”单线程“,就是指一次只能处理一个任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务。常见的浏览器无响应(假…

自动驾驶规划算法

本文将讲解BFS,Dijstra,A*,动态规划的算法原理,不正之处望读者指正,希望有兴趣的读者能在评论区提出一些这些算法的面试考点,共同学习,一起进步 0 图论基础 图有三种:无向图、有向…

印度网民集体删除中国APP,网友评论亮了

全世界只有3.14 % 的人关注了爆炸吧知识最近,国外有一款Remove China Apps火了。这款APP只有一个功能:可以一键扫描用户手机里的应用,识别出自中国公司的应用,并进行一键删除的骚操作。应用的主图标、界面,甚至特意使用…

SQL Server 负载均衡集群(转)

SQL Server 负载均衡集群一个应用系统随着业务量的提高,以及访问量和数据流量的快速增长,各个核 心部分的处理性能和计算强度也相应增大,使得单一设备根本无法承担。在此情况下,如果扔掉现有设备去做大量的硬件升级,必将造成现有资…

大前端快闪二:react开发模式 一键启动多个服务

最近全权负责了一个前后端分离的web项目,前端使用create-react-app[1], 后端使用golang做的api服务。npx create-react-app my-app cd my-app npm start歘歘歘,就搭建了一个react前端项目。前端老鸟都知道npm start或yarn start以开发模式启动react App&…

数据库比较工具SQL Delta

SQL Delta 版本4只支持SQL Server数据库 版本5支持Oracle 但是数据库中不可以有英文 否则连接时会报 ORA-12737: Instant Client Light: unsupported server character set ZHS16GBK的错误 配置如下所示: 转载于:https://blog.51cto.com/shuimomo/461266

爬虫侵入计算机系统,【探讨】利用“爬虫技术”获取数据行为的刑事考量 ——以一起非法获取计算机信息系统数据案为例...

在本案中最为主要的争议焦点是“公开的信息”是否属于非法获取计算机信息系统数据中的犯罪对象。非法获取计算机信息系统数据罪的保护法益是计算机信息系统安全和数据安全。那么信息是否等同于数据?公开信息是否等同于公开数据?这实质上涉及信息与数据含…

单词计数WordCountApp.class

public class WordCountApp {// 可以指定目录,目录下如果有二级目录的话,是不会执行的,只会执行一级目录.private static final String INPUT_PATH "hdfs://hadoop1:9000/abd";// 输入路径private static final String OUT_PATH "hdfs://hadoop1:9000/out&quo…

女朋友在家是怎么利用我的模型的​

1 趁着奶猫还没长大,赶紧摸2 说有谁不喜欢玩具呢3 爸爸再也不用费心编辫子了4 谁知道这是什么5 还挺会利用的啊6 学霸上厕所的时候7 逻辑推理你点的每个赞,我都认真当成了喜欢

abap al设置单元格可编辑 oo_润乾报表美化设置 -- 样式

在制作报表时,报表设计人员经常遇到下面这些美化报表的问题:为什么我做出的报表领导总觉得不好看不满意 美化一张报表要设置太多的格式和属性,那么多报表都得重复设置,真繁琐 系统中不同人做出的报表展现格式各不相同,…

分区表说明

用分区表,以下是说明和方法!SQL code高性能网站建设之 MS Sql Server数据库分区 什么是数据库分区? 数据库分区是一种对表的横向分割,Sql server 2005企业版和之后的Sql server版本才提供这种技术,这种对表的横向分割不…

GRPC在网页前端的使用

一直以来都是一个桌面端程序狗,某天突发奇想,想用网页实现一个客户端,于是开始了electronvueasp.netcore的探寻之路,这条道路很坎坷主要是css让我头疼不已(当然我们并没有放弃使用wpf,我是一个wpf老手&…

【转帖】配置管理计划(CM Plan)

作者:scmroad出自:配置管理之路 http://bbs.scmroad.com/ 版权所有,转载请注明原作者和出处,谢谢合作。目的:这篇文章主要想和大家交流下,我们在写配置管理计划的时候都应该写些什么。写配置管理计划对于一个CM来说是一…

vue 带全选和多选的表格怎么写_EXCEL五分钟,批量制作带照片的工地出入证

作者:祝洪忠 转自:Excel之家ExcelHome小伙伴们好啊,今天和大家分享一个邮件合并的技巧——批量制作带照片的工地出入证。先看效果图:要准备的材料包括:一、Excel资料表资料表中包括姓名、工号和用姓名命名的带格式后缀…

计算机统计字符数,怎么看word版本-Word文档中的字数和字符数是怎样统计的?

简介:大家知道,Word中具有字数、字符数自动统计功能,那Word文档中的字数和字符数是怎样统计的?下面给大家简单的介绍一下工具:Word2013方法一、1.点击【审阅】选项卡2.点击【字数统计】图1统计结果如图所示&#xff1a…

从小一看到数字,脑子里就开始搞颜色......

1 脑子里的数字有颜色估计都是它的锅▼2 不愧是你▼3 文科生考场惯用伎俩填满了就是胜利▼4 每年向社会输送大量精英人才▼5 ???▼6 高考最后一晚逆袭的答案在一本叫《刑法》的书里▼7 中国外卖VS俄罗斯外卖毛子送外卖坐公交你敢信&am…