Sentry:实时错误日志收集平台

January 27, 2016

Tags:linux

ochao

目录

概述

Sentry是一个用Python django编写的开源实时错误日志收集平台。

特性

  • WEB界面展示支持
  • 对多语言多框架的支持
  • 集成方式简单
  • 可按照团队和项目规划监控区域
  • 包含邮件、Web hook等通知方式
  • 开源,提供付费托管服务,自托管则免费使用 ## WEB界面展示

多种语言和开发框架支持

安装方法

笔者以CentOS 7为例,简单介绍一下安装方式(ps:由于文档不足所以安装过程比较耗费精力):
部分系统可能需要安装python-pip,具体方法请自行网上搜索。

$ sudo yum install postgresql-devel libffi-devel libxslt-devel libxml2-devel redis-server postgresql-server # 安装Sentry依赖以及Redis和Postgresql服务
$ sudo postgresql-setup initdb # 初始化postgresql数据库 在CentOS 6.5中,命令为:sudo service postgresql initdb
$ sudo vi /var/lib/pgsql/data/pg_hba.conf # 修改客户端认证配置文件,将METHOD由默认的ident改为trust,以便使用postgres用户操作数据库权限
$ sudo service postgresql restart
$ sudo psql -U postgres # 进入后使用SQL语句更改用户密码:ALTER USER postgres WITH PASSWORD 'the_password';也可以用:\password postgres 命令,然后根据提示输入想要设置的密码即可
$ sudo vi /var/lib/pgsql/data/pg_hba.conf # 修改客户端认证配置文件,将METHOD由默认的trust改为md5,即使用密码登陆
$ sudo service postgresql restart
$ sudo pip install Sentry
$ sentry init
$ vi ~/.sentry/sentry.conf.py # 修改DATABASES中数据库访问权限
$ createdb -U postgres -W -E utf-8 sentry # 初始化sentry的数据库表结构
$ sentry upgrade # 创建sentry数据库中的表(会提示创建登陆用的管理员账号)
$ sentry celery worker -B & # 在启动sentry之前,应该启动celery;在CentOS 7.x下,会提示需要设置C_FORCE_ROOT, 执行export C_FORCE_ROOT="true"即可
$ sentry start

测试

sentry start命令执行后,可以看到类似信息:

Running service: 'http'
[2016-01-27 14:48:41 +0000] [8937] [INFO] Starting gunicorn 19.4.5
[2016-01-27 14:48:41 +0000] [8937] [INFO] Listening at: http://0.0.0.0:9000 (8937)
[2016-01-27 14:48:41 +0000] [8937] [INFO] Using worker: sync
[2016-01-27 14:48:41 +0000] [8946] [INFO] Booting worker with pid: 8946
[2016-01-27 14:48:41 +0000] [8947] [INFO] Booting worker with pid: 8947
[2016-01-27 14:48:41 +0000] [8948] [INFO] Booting worker with pid: 8948

可以看出,默认端口为9000。通过浏览器访问,正常是可以看到登陆界面的,如下图:


使用管理员账号登陆即可,然后点击右上角的按钮,分别创建团队和项目:


以笔者创建的Python test项目为例,创建后可以看到如下状态:


然后,我们便可以使用http://yourdomain:9000/sentry/test/settings/install/python/页上提示的示例整合相关模块、代码到自己项目中即可。

结尾

还有其他功能,在使用中慢慢摸索吧,限于篇幅不一一陈述了,遇到问题,可以去官方项目主页提issue或者在这篇文章下面评论吧!

· EOF ·