https://github.com/exceptionless/Exceptionless

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

项目拉下来,nuget还原下,这里我是一直还原不上的,后面强了就对了(最近github一直比较慢,nuget也是慢死了)

先是用了它的docker-compose 里面东西太多了,job总是有问题,后面用源码自己建立一个dockerfile 来打包

打包UI 需要用

npx grunt build

需要安装 grunt 这里就不介绍了

通过之前的 用nginx来打包ui 就行了

通过命令推送到 Harbor

当然也需要安装elasticsearch 5.X ,容器很方便的,后面用容器即可创建es了

一起看起来都很容易

但后面总是出现  403 Error: Forbidden

后面检查了源码发现 模式非Localhost环境下是需要用 https的

 services.AddMvc(o => {
o.Filters.Add(new CorsAuthorizationFilterFactory("AllowAny"));
o.Filters.Add<RequireHttpsExceptLocalAttribute>();
o.Filters.Add<ApiExceptionFilter>();
o.ModelBinderProviders.Insert(, new CustomAttributesModelBinderProvider());
o.InputFormatters.Insert(, new RawRequestBodyFormatter());
})
public sealed class RequireHttpsExceptLocalAttribute : RequireHttpsAttribute {
public RequireHttpsExceptLocalAttribute() {
IgnoreLocalRequests = true;
}
}
[ApiController]
[RequireHttpsExceptLocal]
public abstract class ExceptionlessApiController : Controller {
}

使用的时候需要注释一下

分别运行容器 ,这里需要注意的是es容器和exceptionless 要做对于的资料卷挂载 ,后面我统一整理到 docker-compose中

发现都是OK的。

为了实现一键搞定,整理了一个docker-compose 如下

version: "3.3"

volumes:
#el
exceptionless_data:
driver: local
#es
elasticsearch_data:
driver: local
# el使用的es
elasticsearch_el_data:
driver: local services: # redis 服务
redis:
image: redis:5.0.3-alpine3.8
container_name: stu-exam_redis
# deploy:
# mode: replicated
# replicas: 1
# resources:
# limits:
# cpus: '0.50'
# memory: 256M
# reservations:
# cpus: '0.10'
# memory: 50M
# restart_policy:
# condition: on-failure
# delay: 5s
# max_attempts: 3
command: redis-server /usr/local/etc/redis/redis.conf
expose:
- '6379'
ports:
- 6379:6379
volumes:
- ./redis/data:/data
- ./redis/redis.conf:/usr/local/etc/redis/redis.conf #ES 5.X master
elasticsearch_master:
image: elasticsearch:5.6.16
container_name: stu-exam_es_master
environment:
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
- ES_CLUSTERNAME=elasticsearch
command: elasticsearch
volumes:
- elasticsearch_data:/usr/share/elasticsearch/data
- ./elasticsearch/node/master/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ports:
- 9200:9200
- 9300:9300
# ES node01
# elasticsearch_node01:
# image: elasticsearch:5.6.16
# container_name: stu-exam_es_node01
# environment:
# - bootstrap.memory_lock=true
# - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
# - ES_CLUSTERNAME=elasticsearch
# command: elasticsearch
# volumes:
# - elasticsearch_data/node/node01/data:/usr/share/elasticsearch/data
# - ./elasticsearch/node/node01/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
# ports:
# - 9200:9200
# - 9300:9300
# links:
# - elasticsearch_master #el_api
exceptionless_api:
image: xxxx/tools/exceptionless_api:pro-1.0
container_name: stu-exam_exceptionless_api
# environment:
# AppMode: Production
# EX_ConnectionStrings__Cache: provider=redis
# EX_ConnectionStrings__Elasticsearch: server=http://192.168.0.240:9200
# EX_ConnectionStrings__MessageBus: provider=redis
# EX_ConnectionStrings__Queue: provider=redis
# #EX_ConnectionStrings__Metrics: provider=statsd;server=statsd;
# EX_ConnectionStrings__Queue: provider=redis
# EX_ConnectionStrings__Redis: server=redis,abortConnect=false
# EX_ConnectionStrings__Storage: provider=folder;path=/app/storage
# EX_RunJobsInProcess: 'false'
links:
- elasticsearch_master:es-master
- redis
expose:
- '80'
ports:
- 65000:80
volumes:
- exceptionless_data:/appexceptionless/storage
- ./exceptionless/appsettings.Production.yml:/appexceptionless/appsettings.Production.yml
depends_on:
- elasticsearch_master
# el_ui
exceptionless_ui:
image: xxx/tools/exceptionless_ui:pro-1.0
environment:
AppMode: Development
# EL-API 配置外部URL
BaseUrl: http://192.168.0.240:65000
ports:
- 5100:80
volumes:
- ./exceptionless/conf.js:/usr/share/nginx/html/app.config.11aa095b02872a76.js
depends_on:
- exceptionless_api

通过 docker-compose  up 启动全部就搞定了 当然也可以通过 docker-compose 指定的服务名称来启动(exceptionless_ui) ,服务会根据depends_on依赖关系来确定启动的先后顺序。

但是后面使用客户端添加日志,发现日志并没有记录在里面,出现了错误

解决办法:

原来是因为我们使用容器安装的包或者自己下载的es包中缺少插件,这里这个错误就需要安装  mapper-size 这个插件,安装好了,客户端就添加进去了,怎么安装就不介绍了,我们在容器内部安装好相关插件后自己在打包一个自己的es镜像就可以了

最后还有一个问题就是 当我们要从新运行 elasticsearch容器的时候,记得也要重新运行 exceptionless_api,不然当elasticsearch rm掉之后,exceptionless_api访问会出现问题 mapper相关的问题,可能是因为 exceptionless_api 再次访问会从新创建 es 分片的原因

docker run -d --name=elasticsearch_node1 \
-v /root/customdata/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /root/customdata/es/data:/usr/share/elasticsearch/data \
-v /root/customdata/es/plugins/:/usr/share/elasticsearch/plugins/ \
-p : -p : elasticsearch:5.6. ui:
docker run -d --name=exceptionlessui_node1 -v /root/customdata/exceptionless_ui/app.config.js:/usr/share/nginx/html/app.config.11aa095b02872a76.js -p : xxxx/tools/exceptionless_ui:pro-1.0 exceptionlessapi:
docker run -d --name=exceptionlessapi_node1 -v /root/customdata/exceptionless_api/appsettings.Production.yml:/appexceptionless/appsettings.Production.yml \
-v /root/customdata/exceptionless_api/storage/:/appexceptionless/storage \
-p : xxxx/tools/exceptionless_api:pro-1.0

												

Exceptionless in Docker on Linux 搭建及部署疑难杂症的更多相关文章

  1. Docker —— 用于统一开发和部署的轻量级 Linux 容器【转】

    转自:http://www.oschina.net/translate/docker-lightweight-linux-containers-consistent-development-and-d ...

  2. 从零实现Linux一键自动化部署.netCore+Vue+Nginx项目到Docker中

    环境搭建 1.安装Linux,这里我用的阿里云服务器,CentOS7版本 2.进入Linux,安装Docker,执行以下命令 sudo yum update #更新一下yum包 sudo yum in ...

  3. Linux Ubuntu从零开始部署web环境及项目-----搭建ssh环境(一)

    linux搭建ssh环境 1,用户登录 成功输入用户名和密码后 进入Ubuntu界面  2,配置网络 参考:http://blog.csdn.net/liu782726344/article/deta ...

  4. docker快速入门+搭建javaweb环境

    一.windows安装 不要安装旧的 boot2docker包,直接安装 DockerToolbox. 一路next,安装完成以后 试用 1.以管理员身份运行 docker quickstart te ...

  5. 超快速使用docker在本地搭建hadoop分布式集群

    超快速使用docker在本地搭建hadoop分布式集群 超快速使用docker在本地搭建hadoop分布式集群 学习hadoop集群环境搭建是hadoop入门的必经之路.搭建分布式集群通常有两个办法: ...

  6. Docker Kubernetes 环境搭建

    Docker Kubernetes 环境搭建 节点规划 版本 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 etcd存储版本:etcd-3. ...

  7. 使用 Docker 在 Linux 上托管 ASP.NET Core 应用程序

    说在前面 在阅读本文之前,您必须对 Docker 的中涉及的基本概念以及常见命令有一定了解,本文侧重实战,不会对相关概念详述. 同时请确保您本地开发机器已完成如下安装: Docker 18.06 或更 ...

  8. Ubunut18 安装docker环境&&AWD攻防平台部署

    docker:有两个版本:docker-ce(社区版)和docker-ee(企业版). 参考官网地址:https://docs.docker.com/engine/installation/linux ...

  9. Docker学习-Kubernetes - 集群部署

    Docker学习 Docker学习-VMware Workstation 本地多台虚拟机互通,主机网络互通搭建 Docker学习-Docker搭建Consul集群 Docker学习-简单的私有Dock ...

随机推荐

  1. Spring Cloud Feign 服务消费调用(三)

    序言 Spring Cloud Netflix的微服务都是以HTTP接口的形式暴露的,所以可以用Apache的HttpClient或Spring的RestTemplate去调用 而Feign是一个使用 ...

  2. 【UOJ#389】【UNR#3】白鸽(欧拉回路,费用流)

    [UOJ#389][UNR#3]白鸽(欧拉回路,费用流) 题面 UOJ 题解 首先第一问就是判断是否存在一条合法的欧拉回路,这个拿度数和连通性判断一下就行了. 第二问判断转的圈数,显然我们只需要考虑顺 ...

  3. C# based on PdfSharp to split pdf files and get MemoryStream C#基于PdfSharp拆分pdf,并生成MemoryStream

    install-package PdfSharp -v 1.51.5185-beta using System; using PdfSharp.Pdf; using System.IO; using ...

  4. Linux文本文件——管理文本的命令

    Linux文本文件——管理文本的命令 摘要:本文主要学习了在Linux中管理文本的命令. cat命令 cat命令用来显示文本文件的内容,也可以把几个文件内容附加到另一个文件中,即连接合并文件,是Con ...

  5. open*** 搭建

    pptp 互联网上服务商给拦截.不稳定. opevpn 1.为了保证OpenVPN的安装,需要使用easy-rsa秘钥生成工具生成证书 [root@m01 ~]# yum install easy-r ...

  6. 将多个sass文件合并到一个文件中

    将多个sass文件合并到一个文件中 应用场景:制作angular npm包的时候,定义的一些全局样式,自定义主题色这类的情况下,多个scss文件会要合并成一个文件并写到dist文件里,发布到仓库中. ...

  7. JavaScript BOM Cookie 的用法

    JavaScript Cookie Cookie是计算机上存储在小文本文件中的数据.当Web服务器将网页发送到浏览器时,连接将关闭,服务器将忘记用户的所有内容.发明Cookie是为了解决“如何记住用户 ...

  8. iframe超出外层元素显示滚动条怎么办?

    尝试把外层盒子滚动条样式隐藏,或者设为overflow:hidden等都不生效,突然发现iframe有这个属性的忘记用了!! <iframe frameborder="0" ...

  9. Unity中AndroidManifest增加权限,打开应用时不弹出权限申请

    一 屏蔽第一次打开apk时权限弹窗: 在Activity下添加<meta-data android:name="unityplayer.SkipPermissionsDialog&qu ...

  10. centos6.8下hadoop3.1.1完全分布式安装指南

    前述:这篇文档是建立在三台虚拟机相互ping通,防火墙关闭,hosts文件修改,SSH 免密码登录,主机名修改等的基础上开始的. 一.传入文件 1.创建安装目录 mkdir /usr/local/so ...