Exceptionless简介
Exceptionless是一款分布式日志管理框架,它可以统一收集管理并展示出来程序的日志,这样的话减少了传统开发过程中还需要去服务器查找日志的痛苦,大大提升对程序的运维效率。 Exceptionless依赖于Redis和Elasticsearch。
官网地址:https://exceptionless.com/
官方文档地址:https://exceptionless.com/docs/
官方Github地址:https://github.com/exceptionless/Exceptionless
Docker镜像地址:https://hub.docker.com/r/exceptionless/exceptionless
目前支持JavaScript, Node, .NET Core, .NET相关应用程序的异常信息采集。为何仅支持.Net .Net Core和JS相关的?原因很简单,Exceptionless是基于.NET Core开发的。如果你有别的语言的开发需求也想使用Exceptionless,这个时候不要气馁,因为Exceptionless本质是基于http接口的形式上报数据的,这个可在官方文档上找到如何使用http上报日志信息相关
官方文档api地址:https://exceptionless.com/docs/api/api-getting-started/
api官方文档地址:https://api.exceptionless.io/
api官方swagger地址:https://api.exceptionless.io/docs/index.html
部署Exceptionless
官网提供了两种使用的方式
- 在官方网站注册账号然后获取apiKey,这样的话不用自己搭建Exceptionless,而是将日志直接收集上报到Exceptionless服务器上。但是,一般基于安全和性能考虑,这种方式并不常用。
- 自建Exceptionless服务,也是本篇我们要使用的方式。之前的低版本支持在window服务器上自建服务,但是高版本已经是基于docker的方式构建了。而使用docker的方式也是我个人日常学习中比较喜欢的方式。
基于docker-compose
部署。官方yml文件地址
https://github.com/exceptionless/Exceptionless/blob/main/docker-compose.yml
简化版docker-compose.yml
version: '3.7'
services:
app:
depends_on:
- elasticsearch
- redis
image: exceptionless/exceptionless:latest
environment:
EX_AppMode: Production
EX_ConnectionStrings__Cache: provider=redis
EX_ConnectionStrings__Elasticsearch: server=http://elasticsearch:9200
EX_ConnectionStrings__MessageBus: provider=redis
EX_ConnectionStrings__Queue: provider=redis
EX_ConnectionStrings__Redis: server=redis:6379,abortConnect=false
EX_RunJobsInProcess: 'false'
ports:
- 5000:80
volumes:
- appdata:/app/storage
jobs:
depends_on:
- app
image: exceptionless/job:latest
environment:
EX_AppMode: Production
EX_BaseURL: http://localhost:5000
EX_ConnectionStrings__Cache: provider=redis
EX_ConnectionStrings__Elasticsearch: server=http://elasticsearch:9200
EX_ConnectionStrings__MessageBus: provider=redis
EX_ConnectionStrings__Queue: provider=redis
EX_ConnectionStrings__Redis: server=redis:6379,abortConnect=false
EX_ConnectionStrings__Storage: provider=folder;path=/app/storage
volumes:
- appdata:/app/storage
elasticsearch:
image: exceptionless/elasticsearch:7.10.0
environment:
discovery.type: single-node
xpack.security.enabled: 'false'
xpack.ml.enabled: 'false'
ES_JAVA_OPTS: -Xms1g -Xmx1g
ports:
- 9200:9200
- 9300:9300
volumes:
- esdata7:/usr/share/elasticsearch/data
redis:
image: redis:6.0-alpine
ports:
- 6379:6379
volumes:
esdata7:
driver: local
appdata:
driver: local
yml
下载到服务器后直接docker-compose up -d
启动站点
如果你的服务器已经拥有了elasticsearch
和redis
服务,也就是不需要使用以上docker-compose
的方式进行构建,那么可以直接使用官方docker镜像的方式直接启动Exceptionless
容器,可以使用docker原生的方式直接运行。elasticsearch
部署参考这篇博客。Redis
部署可以百度下,资料很多。exceptionless
和Exceptionless
的主版本最好对应上。
镜像 | 版本 |
---|---|
exceptionless/exceptionless | 7.2.1 |
elasticsearch | 7.13.2 |
redis | latest |
Run容器,ES和Redis的地址修改成自己的Host地址
docker run -d -p 5000:80 --name exceptionless -e EX_AppMode=Production -e EX_ConnectionStrings__Cache="provider=redis" -e EX_ConnectionStrings__Elasticsearch="server=http://192.168.1.5:9200" -e EX_ConnectionStrings__MessageBus="provider=redis" -e EX_ConnectionStrings__Queue="provider=redis" -e EX_ConnectionStrings__Redis="server=192.168.1.5:6379,abortConnect=false" -e EX_RunJobsInProcess=false -e EX_Html5Mode=true -v /docker/exceptionless/storage:/app/storage exceptionless/exceptionless:latest
访问站点http://192.168.1.5:5000/
,首次登陆使用注册邮箱账号
注册成功后登陆就可以看到主界面了
新建一个组织
组织中新建一个项目,项目与组织绑定关系是为了后续组织邀请其他用户方便管理查看日志
原文地址:http://www.cnblogs.com/RainFate/p/16883702.html