使用 Sentry 监控业务日志

Sentry 是一个错误日志收集和聚合的平台,我们可以在程序中捕获异常,并发送到 Sentry 服务端进行聚合统计、展示和报警。

相关文档参考:http://sentry.readthedocs.org/en/latest/

准备工作

安装 Docker:

$ yum install -y docker

启动 Docker:

$ service docker start

安装 redis Docker 镜像:

$ docker run -d \
--name sentry-redis \
redis

安装 PostgreSQL Docker 镜像:

$ docker run -d \
--name sentry-postgres \
-e POSTGRES_PASSWORD=sentry \
-e POSTGRES_USER=sentry \
postgres

生成 secret token(sentry会返回类似于 “9qa)zi)wrz5e9vrln=%fv3wlkyen5#nf-f10q#4h%1ygn!q8ha”的字符串,下文用 <token>代替):

$ docker run --rm sentry config generate-secret-key

初始化 PostgreSQL,过程中会提示创建用户:

$ docker run -it --rm \
-e SENTRY_SECRET_KEY='<token>' \
--link sentry-postgres:postgres \
--link sentry-redis:redis \
sentry upgrade

启动 Sentry:

$ docker run -d \
--name sentry-web \
-e SENTRY_SECRET_KEY='<token>' \
--link sentry-redis:redis \
--link sentry-postgres:postgres \
-p 127.0.0.1:12000:9000 \
sentry

$ docker run -d \
--name sentry-cron \
-e SENTRY_SECRET_KEY='<token>' \
--link sentry-postgres:postgres \
--link sentry-redis:redis \
sentry run cron

$ docker run -d \
--name sentry-worker \
-e SENTRY_SECRET_KEY='<token>' \
--link sentry-postgres:postgres \
--link sentry-redis:redis \
sentry run worker

现在从浏览器访问 http://127.0.0.1:12000/,就可以看到 Sentry 的主界面了:

当然,只有界面是不够的,下面会说明如何完成一个上报异常的 demo

选择 “管理” => “项目” 左侧的某一个项目,点击进入设置选项卡,选择 “Client Keys”,右侧会展示 SDK 需要的 API Key:

记下 Sentry 提供的 Key,我们的 demo 中会用到:

#!/usr/bin/python
from raven import Client
client = Client(‘http://ad1433f508b54294baf481e0610f4976:154dd1bdab09437b93ebc2cf8ddf91ef@192.168.216.130:9090/1')
client.captureMessage('my first exception')

try:
    1 / 0
except ZeroDivisionError:
    client.captureException()

运行1次,dashboard 中就会出现对应的记录了:

 

5 response to "使用 Sentry 监控业务日志"

  1. By: Rosy Posted: 2015/07/02

    啊!好高端!您就是传说中的!

    • By: 刘超 Posted: 2015/07/02

      码农,谢谢~

  2. By: Dan Posted: 2015/10/08

    请问怎么修改sentry的默认时区啊?

Leave a Reply

Your email address will not be published. Required fields are marked *

*