概述
Sentry 是一款可用于Production环境的错误跟踪工具,可实时通知Production环境中用户由于一些不可预料行为(或者程序写的有问题)导致程序Crash或Exception,Sentry可以通过Integration如HipChat来发送通知,并且可以通过JIRA Integration来快速创建Issue,然后开发者可以根据这个Issue快速修复程序,并把这个已修复的Hotfix快速部署到生产环境,这样就快速开发快速修补。
Sentry 提供了两种使用方式:
- 厂商的服务,提供14天无限制免费服务,点击查看 官网价格服务 或 使用简介。
- 源码 自行搭建,包括
Docker
和Python
两种方式,Python
安装方式Here,Docker
安装方式Here。
安装依赖软件
安装Sentry需要以下满足以下条件:
- 基于UNIX的操作系统
- PostgreSQL:版本
9.5
以上,推荐最新版本9.6
- Redis:最低版本
2.8.9
, 推荐2.8.18
,3.0
- Python 2.7 :点击查看安装方式
- Pip 8.1+
- 安装下列软件:python-setuptools, python-dev, libxslt1-dev, gcc, libffi-dev, libjpeg-dev, libxml2-dev, libxslt-dev, libyaml-dev, libpq-dev,推荐
yum
安装。
实际安装过程中,最好预留1G的内存,我安装时因为预留内存不够折腾了好久,最后翻 github 的 issue 才意识到是内存的问题。
安装PostgreSQL
安装新版的yum源
我使用的是官方当前最新版本
9.6
,其他版本详见官方文档,根据自己要安装的版本及操作系统选择下载rpm
文件即可。
1 | cd ~ |
移除之前的版本
1 | rpm -qa | grep postgre |
查看安装新版 yum
源后可以安装的版本
1 | yum list postgres* | grep 96 |
从结果可以看出新版 yum
源可以安装很多依赖,但实际上我们只需要安装 postgresql96
、postgresql96-devel
、postgresql96-libs
、postgresql96-server
四项即可。
1 | yum install postgresql96 postgresql96-devel postgresql96-libs postgresql96-server |
至此,新版 PostgreSQL
就安装好了,接下来是做些连接配置:
1 | vim /var/lib/pgsql/9.6/data/pg_hba.conf |
将相关连接的 Method
改为 trust
:
1 | TYPE DATABASE USER ADDRESS METHOD |
安装Redis
安装redis相对简单,使用 yum
安装即可
1 | yum install redis |
安装Sentry
安装软件
1 | # 安装环境 |
相关配置
初始化配置,如果不设置路径的话,默认会生成在 ~/.sentry
目录中,推荐使用默认路径。初始化配置包含两个文件,分别是 config.yml
和 sentry.conf.py
。
1 | sentry init |
邮件配置项保存在 config.yml
文件中,Sentry 收到异常时会给自己的邮箱发送邮件通知,所以需要配置下邮件,当然也可以不启用,但不建议这样做。
1 | 如果不想启用邮件通知,可以将 mail.backend 设置为 dummy |
数据库配置项保存在 sentry.conf.py
文件中,使用默认即可,只需要修改 HOST
和 PORT
项。
1 | ~/.sentry/sentry.conf.py |
Redis 项使用默认即可,另外一个需要注意的是 Web
使用的端口配置项 SENTRY_WEB_PORT
,默认为 9000
,实际安装时可以检测下端口是否已被占用,我安装时发现被占用,所以改用了 9999
。
使用数据迁移初始化数据
创建数据库
1 | createdb -U postgres -E utf-8 sentry |
执行数据更新,数据填充完成后会提示是否创建用户,可以选择不创建后续再创建,另外,这一步比较 耗内存
,我就是在执行这一步的时候出了很多意外,比如进程被 killed,报很多异常等等。
1 | sentry upgrade |
创建用户,需要填写邮箱和密码,创建好后会提示是否作为超级用户,根据自己情况选择即可。
1 | sentry createuser |
开启服务
开启 web
服务,开启后可以访问 http://[IP或域名]:[前面配置的端口]
进行访问。
1 | sentry run web |
开启后台 worker
服务
1 | sentry run worker |
开启 cron
进程
1 | sentry run cron |
Laravel集成扩展包
Sentry官方针对各种语言的不同框架都提供了相应的扩展包,当然也包括 laravel
。
配置好后就可以在自己的项目中愉快的使用了,悟禅小书童 已经使用上了,参考图如下:
本文作者:Jormin
本文地址: https://blog.lerzen.com/centos6基于python安装sentry/
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!