首页 >> 大全

分布式日志框架Exceptionless之生产环境部署步骤

2023-09-12 大全 25 作者:考证青年

是一个开源的实时的日志收集框架,它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置。本篇基于我的上一篇《基于实现分布式日志》,最近在公司内部搭建日志平台,且部署到了基于阿里云的生产环境,因此做个记录,也希望能帮助到希望基于来做日志平台的朋友们。

一、本地部署前置条件

这里主要参考的Self- Wiki文档,下面是官方推荐的生产环境的前提条件:

相信你会有两个疑问:

(1)为何要用.NET 4.7和IIS?

因为的Web 是基于ASP.NET(基于.NET )实现的,因此需要.NET 4.7(当然4.6.1也是支持的)和IIS(.NET 还没有实现跨平台),因此最好是部署在 上面。因为我要部署的阿里云服务器刚好是一台 2016,因此也很方便地安装了.NET 4.7和IIS 10。而则是用来跑一个启动相关服务( + Kibna)的下的脚本的,因此可以做到开机启动。

(2)部署在哪里?

官方推荐至少三个节点,且至少两个节点部署在Linux系统上。对于数据量不大的内部业务微服务系统,可以直接在 中部署,当然官方声明在Linux中的性能表现更好。而是基于Java编写的,因此也就需要安装JDK(JRE)来作为运行时,当然你要先安装一下JDK,并将其配置到环境变量中。

因此,基于业务量不大(目前只有一个内部业务系统和一个官方网站在用),我暂且将Web 和都部署在 服务器中。

二、开始本地部署 2.1 下载本地部署包

虽然是一款开源日志平台框架,但是其也有收费版,且收费版支持多语言(包括中文),但是其开源本地部署版还是2017年9月的版本。我们要做的第一件事就是去下载包:v4.1.0

日志框架设计__android日志框架

解压这个zip包后的文件如下:

日志框架设计_android日志框架_

其中,Start.bat是一个快速安装和启动的批处理文件,它会帮我们调用两个脚本(Start-及Start-),可以帮助我们安装 + Kibna以及帮我们启动一个IIS 并部署好Web 项目。

2.2 安装

这里我将Start.bat修改为以下一句话,意为只安装,不让其帮我启动IIS 来部署Web 项目。

>> .\Start-.ps1

然后编辑Start-.ps1这个脚本,将其Param部分修改为如下:

Param([string]$Version = "5.5.2",[int]$NodeCount = 2,[bool]$StartKibana = $false,[int]$StartPort = 9200,[bool]$OpenKibana = $true,[bool]$ResetData = $false
)

这里我选择不启动,以及将默认的节点数从一个节点改为了两个节点。

为了能够正常执行脚本,先以管理员权限执行一下下面这行命令:

>>-

点击Start.bat,开始调用Start-进行的安装和启动,等待一会儿,下载后的文件夹如下图所示:

_android日志框架_日志框架设计

这时已经在运行,并监听了9200端口,请不要关闭命令行窗口,因为这时不是在后台运行的。

2.3 部署Web控制台项目

android日志框架_日志框架设计_

由于我的环境是 2016,因此启动IIS,按照老习惯创建一个.NET应用程序池(v4.0)来附加文件夹作为Web控制台,端口号默认设为50000。

日志框架设计_android日志框架_

现在开始进行配置文件的设置:

(1)app..xxxx.js

这里主要修改为你的服务器访问IP地址:

(function () {'use strict';angular.module('app.config', []).constant('BASE_URL', 'http://192.168.16.150:50000').constant('EXCEPTIONLESS_API_KEY').constant('FACEBOOK_APPID').constant('GITHUB_APPID').constant('GOOGLE_APPID').constant('INTERCOM_APPID').constant('LIVE_APPID').constant('SLACK_APPID').constant('STRIPE_PUBLISHABLE_KEY').constant('SYSTEM_NOTIFICATION_MESSAGE').constant('USE_HTML5_MODE', false).constant('USE_SSL', false);
}());

(2)Web.

在Web.中,需要配置如下的一些内容:


当然,如果你已经在Linux中安装了ES,那么直接修改Web.的的连接字符串即可。

其次,是中的一些基本信息:

  ......

这里主要是修改(你要公布的Web端的访问地址)和(这里选择,此模式下默认允许出站邮件发送)。

最后,是关于邮件的基本配置,以便能够正常的发送邮件:

    

*.这里记得一定要加上,而且需与保持一致。

其他几个需要了解的设置,这里我使用默认配置,不更改其Value:

     

三、将设置为开机启动项

由于依赖于,因此需要将ES设为开机启动或服务。可以使用NSSM或直接将Start.bat加入计划任务,不再赘述。

日志框架设计_android日志框架_

四、配置ASP.NET Core客户端

安装的ASP.NET Core客户端:

NuGet>>- .

*.目前最新版本为1.0.2

在启动类中,分别注入封装的和使用中间件

    public static class ExceptionlessBuilderExtensions{public static IApplicationBuilder UseExceptionless(this IApplicationBuilder app, IConfiguration configuration){var isEnableLogger = Convert.ToBoolean(configuration["Exceptionless:Enabled"] ?? "false");if (isEnableLogger){// 封装使用Exceptionless分布式日志组件ExceptionlessClient.Default.Configuration.ApiKey = configuration["Exceptionless:ApiKey"];ExceptionlessClient.Default.Configuration.ServerUrl = configuration["Exceptionless:ServerUrl"];ExceptionlessClient.Default.SubmittingEvent += OnSubmittingEvent;app.UseExceptionless();}return app;}private static void OnSubmittingEvent(object sender, EventSubmittingEventArgs e){// 只处理未处理的异常//if (!e.IsUnhandledError)//{//    return;//}// 忽略404错误if (e.Event.IsNotFound()){e.Cancel = true;return;}// 忽略没有错误体的错误var error = e.Event.GetError();if (error == null){return;}// 忽略 401 (Unauthorized) 和 请求验证的错误.if (error.Code == "401" || error.Type == "System.Web.HttpRequestValidationException"){e.Cancel = true;return;}// Ignore any exceptions that were not thrown by our code.//var handledNamespaces = new List { "Exceptionless" };//if (!error.StackTrace.Select(s => s.DeclaringNamespace).Distinct().Any(ns => handledNamespaces.Any(ns.Contains)))//{//    e.Cancel = true;//    return;//}// 添加附加信息.//e.Event.Tags.Add("EDC.Core");//e.Event.MarkAsCritical();}}

其他配置和用法,请参考我的这一篇《基于实现分布式日志》来使用。

下面是配置好后的Web控制台:

_android日志框架_日志框架设计

如果需要获得邮件通知及发送邮件到注册用户进行验证:

_日志框架设计_android日志框架

如果要获得每日的项目报告,请记得将Web.中设为true。个人觉得邮件通知 的功能很实用,再多的就是骚扰了。因此,我只勾选了一个 。此外,要启用邮件通知,请先通过注册发送给你的email进行账户验证(如下图所示),否则无法启用邮件通知。

_日志框架设计_android日志框架

Then, enjoy your bug :

android日志框架_日志框架设计_

五、一些其他注意事项

这里可以参考园友 花儿笑弯了腰 的这篇《Self Host 使用 实时监控程序运行日志服务》,他讲述了一些QA,也许会有你也遇到的坑:

android日志框架__日志框架设计

参考资料

-Host

,《本地部署》

,《邮箱配置》

akaxb,《本地部署小结》

依乐祝,《安装配置及简单实用》

花儿笑弯了腰,《Self Host 使用 实时监控程序运行日志服务》

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了