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. Visual Studio 语法高亮插件推荐

    编辑器 GItHub:https://github.com/Art-Stea1th/Enhanced-Syntax-Highlighting Visual Studio Marketplace:htt ...

  2. Redis set集合

    Set操作.Set集合就是不允许重复的列表 (无序集合) sadd(name,values) # name对应的集合中添加元素 scard(name) # 获取name对应的集合中元素个数 sdiff ...

  3. MySQL for OPS 05:日志管理

    写在前面的话 日志是作为用户排查服务问题的重要依据,在 MySQL 中日志可以分为几类,各自产生着不同的作用.如 error log / bin log / slow log 等.很多时候优化数据库的 ...

  4. C# WebAPI 文件在线预览

    最近在写一个移动端API接口,其中有一个需求:接口返回附件url地址让手机端调用实现文件在线预览.大体实现思路:把doc.xls等文本格式文件转换为pdf,转换后的pdf文件存放在服务器上面,方便第二 ...

  5. Navicat for Mysql安装及破解教程

    一.Navicat for Mysql安装 下载链接:https://navicatformysql.en.softonic.com/ 点击download下载. 下载完成后双击安装 二.破解 破解工 ...

  6. mssql附加的数据库查询的时候没有搜索权限

    1.选中数据安全性-登录名-选择某个账户-右键-属性 2.服务器角色-选择public和systemadmin 3.用户映射-选中库-下面选中public 和owner

  7. 消息服务dubbo接口性能压测性能优化案例

    最近项目中的消息服务做了运营商的改动,导致这个服务做了重新开发 压测脚本如下: 开启200线程压测: tps只有200-300之间,平均耗时在700ms左右 开启500线程压测 500并发压测,发现平 ...

  8. RV32I基础整数指令集

    RV32I是32位基础整数指令集,它支持32位寻址空间,支持字节地址访问,仅支持小端格式(little-endian,高地址高位,低地址地位),寄存器也是32位整数寄存器.RV32I指令集的目的是尽量 ...

  9. JDK1.8 —— 接口定义增强

    使用default和static定义接口方法 JDK1.8(jre8)以后,接口中不在仅仅只允许定义抽象方法,开始允许定义普通方法了:而普通方法需要用default声明. interface IMes ...

  10. Android 自定义水平进度条的圆角进度

    有时项目中需要实现水平圆角进度,如下两种,其实很简单     下面开始看代码,先从主界面布局开始看起: <?xml version="1.0" encoding=" ...