配置Sentry对接Django

上一小节我们讲到了错误日志监控的业务场景、常用方案以及问题、Sentry的基础介绍以及安装、这一小节我们来讲一讲如何对Sentry进行配置并对接Django应用到实际的项目中。Sentry服务端的配置主要是名称, 告警规则等, 至于被监控项目是前端还是后端区别不大。

1、创建项目

img

进入Sentry管理后台,点击右上角的创建项目。

img

输入项目名称和所用语言(命名规则可以采用【项目名称】【前端】/【后端】的命名方式),例如:“Sentry后端”;同时为此项目创建一个团队、后面可以把不同的开发人员添加到对应的项目团队中。

img

img

项目创建完成之后会自动跳转到应用框架配置页面, 点击可以查看各个语言或框架的接入文档。

img

2、获取DSN

依次进入“问题”、项目下拉框、选择刚才常见的项目奠基设置图标、进入“项目设置”界面。在”项目设置”页, 点击左侧列表中”客户端密钥”, 进入页面,我们就可以看到当前项目的DSN

img

img

3、对接Django

拿到DSN后。我们首先去项目的虚拟环境中安装Sentry客户端:

pip install raven

raven采用APP模块的方式集成到Django项目、所以我们要再Django项目的setting文件的app模块中添加raven模块:

INSTALLED_APPS = [
    ........................
    # Sentry错误日志监控系统
    'raven.contrib.django.raven_compat',
]

把我们刚才拿到的Sentry DSN配置到setting文件中:

# Sentry错误日志监控系统(192.168.1.1请自行替换)
RAVEN_CONFIG = {
    'dsn': 'http://b15300431f6f4716b15a39e82cdd3977@192.168.1.1:9000/3',
}

配置完成之后我们我们现在去测试一下配置是否正确,到Django项目中创建一个test文件夹并添加sentry_test.py文件,内容如下:

dsn = "http://b15300431f6f4716b15a39e82cdd3977@192.168.1.1:9000/3"

from raven import Client

Client = Client(dsn)

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

添加完成之后我们右击运行这个Python文件,运行完成之后我们可以在Sentry后台看到告警信息,点击标题栏可以进入详情页面,Sentry把故障告警的详细信息和错误代码上下文都给我们展示出来了、是不是很方便呢?如下图:

img

img

4、配置告警规格

在”项目设置”页面, 在左侧列表中点击”警报”, 进入警报配置页;点击规则标签页, 可以看到已有一个规则, 当事件首次发生时告警;根据需要修改规则。告警规则的配置相当灵活, 且可以对多个条件进行与或判断。

img

img

5、配置邮件通知

配置之前先修改/opt/onpremise/sentry/requirements.txt,并添加如下内容(这里我们同步添加钉钉告警的配置内容,钉钉测试失败、这个内容后期补上):

# Add plugins here
sentry-dingtalk-new
django-smtp-ssl~=1.0
redis-py-cluster==1.3.4

邮件配置的相关内容在文件/opt/onpremise/sentry/config.yml中,修改类容如下:

###############
# Mail Server #
###############

mail.backend: 'smtp'  # Use dummy if you want to disable email entirely
# 配置mail服务器地址(可以配置QQ邮箱、163邮箱、新浪邮箱等)
mail.host: 'smtp.163.com'
# 配置25端口之前确保25端口没有被封禁
mail.port: 25
# 配置发送邮箱
mail.username: 'z0ukun@163.com'
# 配置发送邮箱密码
mail.password: '************'
# 是否开启TLS
mail.use-tls: false
# The email address to send on behalf of
# 配置发出邮箱
mail.from: 'z0ukun@163.com'

重建,完成之后重启sentry:

docker-compose build
docker-compose up -d

重启之后我们进入Sentry后台、点击用户管理、查看Email配置情况、如下图:

img

我们可以点击“Send a test email to z0ukun@163.com”发送一个测试邮件、如下图、如果能收到邮件就代表邮件服务已经配置成功啦。

img

我们可以进入用户设置 -> 邮件 验证我们的邮箱账号(我这里已经验证过了),发送之后邮箱会收到一个验证邮件、点击确认按钮即可完成验证。img

img

当然Sentry很有很多好用的功能、这里就不再一一测试了、有兴趣的朋友可以自行安装使用。

推荐文章