首页 > 系统相关 >Exceptionless系列:简介和部署(Windows、Linux、Docker)

Exceptionless系列:简介和部署(Windows、Linux、Docker)

时间:2023-08-24 23:44:59浏览次数:47  
标签:Exceptionless false Windows elasticsearch https Linux http true

目录

一、简介

Exceptionless为您提供了跟踪错误、日志和事件的工具,同时指导您找到可行的解决方案。首先,您需要决定是自托管Exceptionless还是使用我们的托管版本。如果您选择使用我们的托管版本,您可以免费开始使用。

官网地址:https://exceptionless.com/

Github地址:https://github.com/exceptionless

Exceptionless 项目:https://github.com/exceptionless/Exceptionless (内置UI)

image

Exceptionless.UI项目(已过期):

Warning 存储库已存档,不再进行维护。所有源代码和问题都已移动到https://github.com/exceptionless/Exceptionless.请使用新的存储库进行任何未来的查询或贡献

二、版本

采用官网最新的版本

Exceptionless:v8.0.4

Exceptionless.UI:v3.1.12(已过期)

Elasticsearch:v8.8.1

三、运行说明

1、Exceptionless

这是一个API项目,包含所有的API,环境采用.NET 7.0,服务器必须安装.NET 7.0运行环境

2、Elasticsearch

存储相关数据,内置jdk,推荐按照DockerCompose指定的版本,

3、Exceptionless.UI

查看异常、设置新异常邮件通知等操作的后台,采用angular写的,v3.1.12必须采用的 Node 10.24.*,以及安装Python环境,如果采用内置的ClientApp则采用Node 18+,无需Python环境

四、打包Exceptionless.UI

v3.1.12(已过期

npm install 
npx bower install
npx grunt build

ClientApp在发布Exceptionless.Web的时候会执行打包

npm install   # 添加依赖
npm run build  # 打包
npm run serve

单独部署

需要指定BASE_URL,也就是API请求地址,默认是window.location.origin,也可以通过打包后去修改app.config.911ab0f5f056fec6.js文件

USE_HTML5_MODE:是否采用H5模式,也就是默认Hash模式,后面有#号,而邮件发过来的url会类似 http://localhost:5100/type/error/frequent ,导致不能访问,所以constant('USE_HTML5_MODE', false) 修改该值为true

image

五、window部署

1. Elasticsearch

部署请网上自行查询,如果是开启外网访问,建议开启xpath

8.0版本以上,默认是https,需要关闭 xpack.security.enabled: false ,如果需要开启xpath验证,需要生成证书,否则无法访问

配置文件elasticsearch.yml

xpack.security.enabled: false
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
cluster.name: es-master-node
node.name: es-master-node
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["es-master-node"]

Elasticsearch默认最小内存是4G,如需修改请修改jvm.options

## -Xms4g
## -Xmx4g

安装mapper-size

https://www.elastic.co/guide/en/elasticsearch/plugins/current/mapper-size.html

elasticsearch-plugin.bat install mapper-size

查看运行信息

image

2.Exceptionless

下载.NET 7.0运行时

https://dotnet.microsoft.com/zh-cn/download/dotnet/7.0

编译项目

image

选择 Exceptionless.Web 发布

image

Exceptionless.Web.csproj 配置了发布前执行的命令,会打包前端项目

  <Target Name="PublishRunWebBuild" AfterTargets="ComputeFilesToPublish" Condition="'$(SkipSpaPublish)' != 'true'">
    <!-- As part of publishing, ensure the JS resources are freshly built in production mode -->
    <Exec WorkingDirectory="$(SpaRoot)" Command="npm ci" />
    <Exec WorkingDirectory="$(SpaRoot)" Command="npm run build" />

    <!-- Include the newly-built files in the publish output -->
    <ItemGroup>
      <DistFiles Include="$(SpaRoot)dist\**" />
      <ResolvedFileToPublish Include="@(DistFiles->'%(FullPath)')" Exclude="@(ResolvedFileToPublish)">
        <RelativePath>wwwroot\%(RecursiveDir)%(FileName)%(Extension)</RelativePath>
        <CopyToPublishDirectory>Always</CopyToPublishDirectory>
        <ExcludeFromSingleFile>true</ExcludeFromSingleFile>
      </ResolvedFileToPublish>
    </ItemGroup>
  </Target>

会将 ClientApp 打包到wwwroot的目录下

image

运行

dotnet Exceptionless.Web.dll --urls=http://localhost:9000

配置文件

---
ConnectionStrings:
#  Redis: server="localhost,abortConnect=false"
  Elasticsearch: server=http://localhost:9200
#  Cache: provider=redis;
#  MessageBus: provider=redis;
#  Queue: provider=redis;
  Storage: provider=folder;path=.\storage
#  LDAP: ''
#  Email: smtp://localhost:1025

# Base url for the ui used to build links in emails and other places.
BaseURL: 'http://localhost:9001/#!'

# Wether or not to run the jobs in process. Requires Redis to be configured when running jobs out of process.
RunJobsInProcess: true
#AppScope: dev
#EnableAccountCreation: false
#DisableIndexConfiguration: false
#AllowedOutboundAddresses: "exceptionless"

Serilog:
  MinimumLevel:
    Default: Debug

Apm:
  #Endpoint: http://localhost:4317
  Insecure: true
  #SslThumbprint: CB16E1B3DFE42DF751F93A8575942DA89E10BC98
  EnableLogs: false
  EnableTracing: false
  EnableMetrics: true
  FullDetails: true
  Debug: false
  Console: false

每一个配置项具体可查看AppOptions类

首Exceptionless.Web项目加载配置文件,是根据系统环境变量来加载不同的配置文件的(如果不知道是什么搜一下windows系统环境变量,其他系统自行百度)
如果系统环境变量中存在 EX_AppMode 的话,比如 EX_AppMode=Staging则加载 appsettings.Staging.yml 文件。(EX_AppMode如果不存在则为 Production)

    public static IHostBuilder CreateHostBuilder(string[] args)
    {
        string environment = Environment.GetEnvironmentVariable("EX_AppMode");
        if (String.IsNullOrWhiteSpace(environment))
            environment = "Production";

        var config = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddYamlFile("appsettings.yml", optional: true, reloadOnChange: true)
            .AddYamlFile($"appsettings.{environment}.yml", optional: true, reloadOnChange: true)
            .AddEnvironmentVariables("EX_")
            .AddEnvironmentVariables("ASPNETCORE_")
            .AddCommandLine(args)
            .Build();
    }

效果图

image

六、Docker部署

我们可以看到它在docker-compose里面的服务

version: "2.2"

services:
  elasticsearch:
    image: exceptionless/elasticsearch:8.9.0
    environment:
      node.name: elasticsearch
      cluster.name: exceptionless
      discovery.type: single-node
      xpack.security.enabled: "false"
      action.destructive_requires_name: false
      ES_JAVA_OPTS: -Xms1g -Xmx1g
    ports:
      - 9200:9200
    volumes:
      - esdata:/usr/share/elasticsearch/data

  kibana:
    depends_on:
      - elasticsearch
    image: docker.elastic.co/kibana/kibana:8.9.0
    environment:
      xpack.security.enabled: "false"
    ports:
      - 5601:5601

  redis:
    image: redis:6-alpine
    ports:
      - 6379:6379

  mail:
    image: mailhog/mailhog:latest
    ports:
      - 8025:8025
      - 1025:1025

volumes:
  esdata:
    driver: local

标签:Exceptionless,false,Windows,elasticsearch,https,Linux,http,true
From: https://www.cnblogs.com/vic-tory/p/17655471.html

相关文章

  • Linux安装anaconda3并配置环境变量
    1、下载Anaconda32、上传到Linux服务器,本篇文章用的是Centos7.6链接工具推荐使用finalshell,Windows版下载地址:http://www.hostbuf.com/downloads/finalshell_install.exe#输入rz上传文件,会弹窗选择前面下载好的安装包rz#没有rz命令则先安装yum-yinstalllrszsbasha......
  • windows远程桌面到ubuntu16.04
    环境ubuntu:16.04windows:windows10目标让windows可以使用RemoteDesktop客记端远程到ubuntu16.04安装事宜windowns无需安装ubuntu16.04需要安装xrdp和xfce4安装sudoaptinstallxrdpxfce4查看安装版本,发现默认安装的是xrdp0.6.1修改配置sudoechoxfce4-sessi......
  • 小小讲一下Linux基本命令
    Linux是一套类Unix的操作系统,这套系统最大的优点就是安全便捷,快速高效。这就为它赢得了广大的市场空间。但是呢,Linux系统虽然广为流行,它也不是那么容易就可以学会的。比如说,如果我们不懂得Linux系统的基本操作命令和按键的话,那我们也是不能进行下去的。因此,我觉得有比较进行Linux......
  • Linux系统自带的基本命令
    简介 linux中的命令也就是一个个可执行程序。 这些命令能直接执行:这些命令的路径都加入到了PATH环境变量中。 用户下载的环境,比如nginx,如果也加入到了PATH环境变量中,也能在任何文件夹下执行,说明这个也是命令。目录简介cd命令cp命令mv命令其他基础命令cd命令#进入对应......
  • Linux下添加磁盘创建lvm分区
    shell>fdisk/dev/xvdb####选择磁盘Command(mforhelp):m####帮助Commandactionatoggleabootableflagbeditbsddisklabelctogglethedoscompatibilityflagddeletea......
  • docker想保留ip和端口其他的不要,想把这个变成linux的命令怎么做?
    docker想保留ip和端口其他的不要,想把这个变成linux的命令怎么做?dockerps只会显示这样一坨东西,看ip和端口又不好看456746ec7581moxi/mogu_blog_nacos"/usr/sbin/init"12hoursagoUp12hours0.0.0.0:465->465/tcp,:::465->465/tcp,0.0.0.0:3306->3306/tcp,:......
  • 手把手教你Linux CentOS 8 安装MySQL 8
     安装步骤我所使用的Linux版本是CentOS8,在CentOS8上安装MySQL的步骤:启用MySQL8.0存储库首先,您需要启用MySQL8.0存储库。为此,请下载和安装MySQL的存储库包:sudodnfinstallhttps://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm安装MyS......
  • 利用systemd设置springboot微服务服务在linux重启后自启动
    要使SpringBoot服务的JAR包在Linux重启后自启动,您可以使用systemd。以下是步骤:1.创建一个systemd服务单元文件在/etc/systemd/system/目录下,创建一个新的服务单元文件,例如my-springboot-app.service。使用sudo打开一个文本编辑器来创建和编辑文件:sudonano/e......
  • Windows Server2008R2 服务器Paged Pool占用过高的问题
    这台服务器一直运行的好好的,但最近发现经常内存占用了99%,重启后过几天内存又涨到99%。运行的应用软件占的内存并不高,任务管理器所有进程占用内存加起来也远远不到99%。下载了RamMap,发现是PagedPool占用了绝大多数的内存; 下载poolmon.exe,终端中运行poolmon.exe-p-b,再按下......
  • Linux之Shell脚本与Nginx
    1.入门Shell脚本1.1HelloWord打开我们的finalshell软件连接虚拟机在/usr/local/下创建一个点后缀为test的文件且编辑文件文件头部固定语句必须输入#!/bin/bash随后在下面我们直接输出一句Helloword按下ESC键且输入:wq保存退出后,这时不能直接执行,因为这个时候的文件你......