【转】Sentry 入门实战
Sentry 是一个开源的实时错误追踪系统,可以帮助开发者实时监控并修复异常问题。它主要专注于持续集成、提高效率并且提升用户体验。Sentry 分为服务端和客户端 SDK,前者可以直接使用它家提供的在线服务,也可以本地自行搭建;后者提供了对多种主流语言和框架的支持,包括 React、Angular、Node、Django、RoR、PHP、Laravel、Android、.NET、JAVA 等。同时它可提供了和其他流行服务集成的方案,例如 GitHub、GitLab、bitbuck、heroku、slack、Trello 等。目前公司的项目也都在逐步应用上 Sentry 进行错误日志管理。
使用 docker-compose 搭建
Sentry 本身是基于 Django 开发的,而且也依赖到其他的如 Postgresql、 Redis 等组件,所以一般有两种途径进行安装:通过 Docker 或用 Python 搭建。官网下分别有以下的两个介绍:
如果你选择了通过 Docker 进行安装,其实还有更加便捷的方式 —— docker-compose 。在 github 上有一个开源项目用于部署 Sentry ,我们可以直接使用该项目进行部署,首先是克隆该项目:
1 |
git clone https://github.com/getsentry/onpremise.git |
注意,通过 Docker 本地搭建 Sentry 的时候,需要 docker 版本为 1.10.0 以上,docker-compose 版本为 1.17.0 以上,同时要求最低有 3GB 的可用内存。
如果并没有特殊要求或者额外的组件配置的话(比如说使用已有的 Postgresql 和 redis),可以直接运行 ./install.sh
将 Sentry 及其依赖都通过 docker 安装。
如果不使用 install.sh 进行部署的话,可以采用如下步骤(注意以下操作都在项目目录下进行):
- 根据 .env.example 自定义环境变量文件 .env (一开始只要
cp
一份重命名为 .env 即可) - 根据需要修改 docker-compose.yml (比方说 Sentry 的 Web 默认使用 9000 端口,而我这边这个端口分配给了 portainer,所以需要修改 web 的 port
'9000:9000'
为'9001:9000'
) 使用 docker-compose 构建镜像
1
docker-compose build --pull
生成 Sentry 密钥,并将这个值填到 .env 的
SENTRY_SECRET_KEY
配置上1
docker-compose run --rm web config generate-secret-key
进行 Web 服务迁移
1
docker-compose run --rm web upgrade
注意在这个过程中 *nix 系统会通过交互式窗口询问你是否创建超级用户,如果确定,则输入邮箱和密码。但在 Windows 上没有这个步骤,因此如果在没有创建用户的情况下运行 Sentry 会一直报 500 错误,因此在此命令执行完之后要先创建超级用户,具体的 issue 和步骤可以查看 这里。
运行 sentry
1
docker-compose up -d
之后可以访问你的 Sentry 了(注意对 Mac 或使用 ToolBox 的 docker 用户来说,应该是其 VirtualBox 虚拟机的网络地址),如下图所示,使用你创建的超级用户即可登陆
登陆界面
若是首次登陆,之后会需要你配置具体的域名信息和邮箱信息,邮箱信息这一块下一节会具体详述,现在可以先随便填。配置完之后就会看到 dashboard 界面。
仪表盘界面
Sentry 的邮件配置
Sentry 支持邮件发送的功能非常重要,当 Sentry 捕获事件之后,可以将此捕获的事件发送到你的个人邮箱(针对 Sentry 管理员账号)。要修改目前的邮件配置是不能在界面上操作的,需要进行以下步骤:
- 修改 .env 文件,补充以下环境变量
SENTRY_SERVER_EMAIL
邮件的发送地址SENTRY_EMAIL_HOST
smtp 服务器主机地址SENTRY_EMAIL_USER
smtp 服务器用户SENTRY_EMAIL_PASSWORD
smtp 服务器密码SENTRY_EMAIL_PORT
smtp 服务器端口SENTRY_EMAIL_USE_TLS
是否使用 TLS,默认为 false
- 修改 docker-compose.yml ,注释掉
SENTRY_EMAIL_HOST
配置,因为这个配置默认为smtp
,会导致 .env 文件中的相同配置失效。 配置修改后 update 一下 Sentry 并重启
1
2
3docker-compose build
docker-compose run --rm web upgrade
docker-compose up -d
然后可以测试一下邮件发送。登陆超级用户下点击左上角头像选择 Admin 进入到管理员界面,选择 mail(邮箱)菜单,看到更新后的邮箱设置:
邮箱配置
点击最下方的 发送测试邮件 到当前用户的邮箱上,即可测试邮件发送功能是否配置成功。
Sentry 使用演示
这里简单演示一下 Sentry 的使用流程。
首先创建一个新的项目:
添加项目
这里我们选择创建一个 Rust 项目 example:
创建项目
然后得到一些关于 SDK 的使用说明:
SDK 说明
接下来我们创建一个简单的 Rust 项目使用 SDK 测试一下:
1 |
extern crate sentry; fn main() { |
实时在 Sentry 的 dashboard 的 Project 页面上看到提交过来的异常信息:
异常界面一
异常界面二
转自http://sinhub.cn/2019/07/getting-started-guide-of-sentry/
【转】Sentry 入门实战的更多相关文章
- Spark入门实战系列--10.分布式内存文件系统Tachyon介绍及安装部署
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Tachyon介绍 1.1 Tachyon简介 随着实时计算的需求日益增多,分布式内存计算 ...
- 003-Tuple、Array、Map与文件操作入门实战
003-Tuple.Array.Map与文件操作入门实战 Tuple 各个元素可以类型不同 注意索引的方式 下标从1开始 灵活 Array 注意for循环的until用法 数组的索引方式 上面的for ...
- Scala深入浅出实战经典-----002Scala函数定义、流程控制、异常处理入门实战
002-Scala函数定义.流程控制.异常处理入门实战 Scala函数定义 语句结束无分号 定义无参函数 def 函数名称(参数名称:参数类型)[:Unit=]{ 函数体 } 老师的代码 我的实际代码 ...
- Spark入门实战系列--1.Spark及其生态圈简介
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .简介 1.1 Spark简介 年6月进入Apache成为孵化项目,8个月后成为Apache ...
- Spark入门实战系列--2.Spark编译与部署(上)--基础环境搭建
[注] 1.该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取: 2.Spark编译与部署将以CentOS 64位操作系统为基础,主要是考虑到实际应用 ...
- Spark入门实战系列--2.Spark编译与部署(中)--Hadoop编译安装
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .编译Hadooop 1.1 搭建环境 1.1.1 安装并设置maven 1. 下载mave ...
- Spark入门实战系列--2.Spark编译与部署(下)--Spark编译安装
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .编译Spark .时间不一样,SBT是白天编译,Maven是深夜进行的,获取依赖包速度不同 ...
- Spark入门实战系列--3.Spark编程模型(上)--编程模型及SparkShell实战
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .Spark编程模型 1.1 术语定义 l应用程序(Application): 基于Spar ...
- Spark入门实战系列--3.Spark编程模型(下)--IDEA搭建及实战
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 . 安装IntelliJ IDEA IDEA 全称 IntelliJ IDEA,是java语 ...
随机推荐
- linux测试umask
客户需求,由于ftp服务器权限管理需要,测试能否通过修改oracle umask值,达到expdp导出文件权限,导出即是想要的权限. Session [oracle@adg1 ~]$ umask [o ...
- Yii2 redis 使用方法
/** * 基于 yii2.0 redis使用方法 *///项目根目录命令行执行 composer require --prefer-dist yiisoft/yii2-redis; //在配置文件中 ...
- markdown语法之列表与缩进
在markdown语法中, 用*或+或-在行首表示无序列表.在这些符号之后应该空一格然后输入内容. 例如 + 无序列表 * 无序列表 - 无序列表 会被markdown语法渲染为 无序列表 列表嵌套 ...
- 解决 VUE项目过大nodejs内存溢出问题
今天在启动vue项目的时候报了这样一个错误, 如图所示:频繁出现此种情况,项目太大,导致内存溢出,排除代码问题外,可参照以下方式解决 // 全局安装increase-memory-limit npm ...
- C++实现企业链表(单向链表的另外一种实现方式)
LinkList.h #include <windows.h> #include <stdio.h> // 链表小结点 typedef struct LINKNODE { LI ...
- java引用传递和值传递
关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习 ...
- docker 基于Dockerfile构建redis
创建Dockerfile 文件 新建目录 mkdir /var/docker/redis -pcd /var/docker/redis 新建 Dockerfile FROM centos:7.5.18 ...
- 常见User-Agent大全
window.navigator.userAgent 1) Chrome Win7: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KH ...
- 一款免费监控aix与Linux的软件--nmon
性能介绍 nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括: CPU 使用率 内存使用情况 内核统计信息和运行队列信息 磁盘 I/O 速度.传输和读/写比率 ...
- U-Net网络的Pytorch实现
1.文章原文地址 U-Net: Convolutional Networks for Biomedical Image Segmentation 2.文章摘要 普遍认为成功训练深度神经网络需要大量标注 ...