TOP

DRF 商城项目 - 日志处理

logging  模块

logging 模块是最基本的日志处理模块

缺陷

但是拥有一些很致命的缺陷

  • 要求用户主动查询,
  • 需要登录到服务器才可以查看日志文件
  • 自带的报错外部通知也没办法判断同类取舍,
  • 短时间内的高并发报错会导致大量邮件的发出
  • 不具备集中 bug 管理,以及 bug 处理分配等

因此不推荐使用 logging 模块进行日志管理

常言道,别人的轮子又大又圆

sentry 安装

sentry 提供了完整的商业日志解决方案

日志涉及到敏感信息操作不推荐使用官方的解决方案最好自行搭建

小型项目则无所谓了.直接可以套用官方提供的服务

docker 方式

docker 方式要求拥有一定程度的 docker经验

卸载旧版本

docker 在 2017年进行过一次更新,如果有存在旧版则需要卸载重装

yum remove docker  docker-common  docker-selinux  docker-engine

 

 

安装依赖包

sudo yum insatll -y yum-utils device-mapper-persistent-data lvm2

 

添加稳定的源

 

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

 

 

 

 

更新 yum 包

 

sudo yum makecache fast

 

 

 

安装 docker

yum -y install docker-ce

 

启动 docker

systemctl start docker

 

测试 docker

docker run hello-world

 

docker --version

 

安装依赖

需要用到git,docker-compose,pip等组件

yum install epel-release
yum  install -y python-pip
pip  install docker-compose
yum install git

 

安装 sentry

通过镜像安装

 

git clone https://github.com/getsentry/onpremise.git

点击  这里

创建卷

 

docker volume create --name=sentry-data && docker volume create --name=sentry-postgres

 

创建环境配置文件

cd onpremise
cp -n .env.example .env

 

构建docker服务并打上tag

docker-compose build

生成密钥

docker-compose run --rm web config generate-secret-key

修改.env文件

将刚刚生成的秘钥复制到这里

# Run `docker-compose run web config generate-secret-key`
# to get the SENTRY_SECRET_KEY value.
SENTRY_SECRET_KEY='qxc0zw(tgu_e-0s8fnopv++u@7u6vk4xortt(k20r2)i6*h36%'

 

创建数据库和账号

docker-compose run --rm web upgrade

 

启动并设置后台运行

docker-compose up -d

 

验证运行

docker ps

 

访问  localhost:9000

 

sentry 使用

登录

安装好后通过访问 localhost:9000 可以进入 web 界面进行相关的操作, 点击红圈会允许所有的用户进行注册

创建项目

进入创建界面

通过之前创建的用户登录后进入初始界面后点击新项目

 创建 DSN

 

简单使用

官方文档

 选择 Python 方式, 打开相关的操作说明, 根据指引安装 raven 模块,然后做一个简单的测试脚本 dsn 替换为创建项目的 dsn即可进行测试

脚本代码

dsn = ""

from raven import Client

client = Client(dsn)

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

测试现象

运行测试脚本

可见报错信息为sentry提供的相关的指引

确实捕获到了错误日志, 以及相关的错误栈

重复报错测试

 多次刷新脚本操作来模拟重复报错,只会引起数量变化而不会重复报错

 

bug管理测试

以及一些的bug相关的操作管理,分配负责人, bug状态修改删除等操作

忽略bug测试

排序, 筛选测试

筛选可以基于 tag, 分配人, 以及状态等进行分类

项目设置

 

team 

项目的人员分组,  django 的权限管理的部分就有 组 的概念. 并将映射在这里可供选择

电子邮件

配置系列的邮件名以及定制邮件发送前缀等

客户端安全性

配置允许发送的域名

警报

在警报中可以设置bug通知的发送邮件规则等

功能集成

bug通知不仅仅可以是发送邮件, 还可以集成到其他支持的服务比如 gitgub,gitlab 中等

 

posted @ 2019-04-29 22:00  羊驼之歌  阅读(746)  评论(0编辑  收藏  举报