上一小节我们讲到了错误日志监控的业务场景、常用方案以及问题、Sentry的基础介绍以及安装、这一小节我们来讲一讲如何对Sentry进行配置并对接Django应用到实际的项目中。Sentry服务端的配置主要是名称, 告警规则等, 至于被监控项目是前端还是后端区别不大。
1、创建项目
进入Sentry管理后台,点击右上角的创建项目。
输入项目名称和所用语言(命名规则可以采用【项目名称】【前端】/【后端】的命名方式),例如:“Sentry后端”;同时为此项目创建一个团队、后面可以把不同的开发人员添加到对应的项目团队中。
项目创建完成之后会自动跳转到应用框架配置页面, 点击可以查看各个语言或框架的接入文档。
2、获取DSN
依次进入“问题”、项目下拉框、选择刚才常见的项目奠基设置图标、进入“项目设置”界面。在”项目设置”页, 点击左侧列表中”客户端密钥”, 进入页面,我们就可以看到当前项目的DSN
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把故障告警的详细信息和错误代码上下文都给我们展示出来了、是不是很方便呢?如下图:
4、配置告警规格
在”项目设置”页面, 在左侧列表中点击”警报”, 进入警报配置页;点击规则标签页, 可以看到已有一个规则, 当事件首次发生时告警;根据需要修改规则。告警规则的配置相当灵活, 且可以对多个条件进行与或判断。
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配置情况、如下图:
我们可以点击“Send a test email to z0ukun@163.com”发送一个测试邮件、如下图、如果能收到邮件就代表邮件服务已经配置成功啦。
我们可以进入用户设置 -> 邮件 验证我们的邮箱账号(我这里已经验证过了),发送之后邮箱会收到一个验证邮件、点击确认按钮即可完成验证。
当然Sentry很有很多好用的功能、这里就不再一一测试了、有兴趣的朋友可以自行安装使用。