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. Kafka关键参数设置

    生产环境中使用Kafka,参数调优非常重要,而Kafka参数众多,我们的java的Configuration代码中,经常设置的参数如下: Properties props = new Properti ...

  2. Serverless 的喧哗与骚动(一)附Serverless行业发展回顾

    作者 | 阿里中间件高级技术专家 许晓斌 <Maven实战>作者,曾负责 AliExpress 微服务架构演进,现在负责阿里集团 Serverless 技术研发落地. 导读:从 2016 ...

  3. 【MySQL】条件查询之排序聚合分组分页查询

    排序查询 语法:order by 子句 order by 排序字段1 排序方式1 , 排序字段2 排序方式2... 排序方式: ASC:升序,默认的. DESC:降序. 注意: 如果有多个排序条件,则 ...

  4. 简单ALV得演示(用到了ALV可编辑及保存后修改数据库)

    *&---------------------------------------------------------------------* *& Report YPMRP010_ ...

  5. pytest-fixture参数化

    fixture参数化 指定params属性,实现fixture的参数化,引用该fixture的测试方法将遍历全部参数 import pytest @pytest.fixture(params=[&qu ...

  6. 腾讯WeTest加入智慧零售“倍增计划”,引领微信小程序质量优化

    WeTest 导读 在2019腾讯全球数字生态大会零售分论坛上,腾讯正式面向全行业合作伙伴发布倍增计划,通过咨询.培训.竞赛三步走,帮助零售商户解决前端触点融通的问题,推动微信生意大盘阶梯式上涨. 倍 ...

  7. Flutter 安装笔记

    一. 安装镜像(有vpn的不用理) 1  打开终端 输入 open ~  ,回车 2  双击 .bash_profile  3  添加以下代码 后保存关闭即可(代码可能会变请直接到https://fl ...

  8. Mybatis使用Mybatis-generator插件及配置(数据库逆向工程)

    Mybatis使用Mybatis-generator插件 首先在POM.xml文件添加架包,我这里用的是SpringBoot,所以用的也是SpringBoot架包,最少要mybatis,generat ...

  9. HTTPS中的加密验证部分理论

    为了加深自己对于https加密这一块的映象,决定写出来试试 就是在http层下面加了一个ssl层, 服务器将自己的公钥发送给证书机构,申请证书,证书机构首先会验证个服务器是否合法,线上或者线下,然后用 ...

  10. 2019CCPC网络赛 C - K-th occurrence HDU - 6704(后缀数组+ST表+二分+主席树)

    题意 求区间l,r的子串在原串中第k次出现的位置. 链接:https://vjudge.net/contest/322094#problem/C 思路 比赛的时候用后缀自动机写的,TLE到比赛结束. ...