【Vue+DRF 生鲜电商】sentry 实现错误日志监控(十二)

1. 安装 Docker

# 卸载已有的docker 
yum remove docker docker-common docker-selinux docker-engine

# 安装docker的依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

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

yum install docker-ce

# 启动docker后台服务
service docker start

# 测试运行
docker run hello-world

# 设置开机启动
sudo systemctl enable docker

参考

  • https://linoxide.com/containers/upgrade-docker-fedora-centos/
  • http://projectsedu.com/

2. Docker 配置国内节点

配置国内节点加速访问(拉去镜像)

1、新增配置文件:

vim /etc/docker/daemon.json

{
    "registry-mirrors": [
        "https://registry.docker-cn.com",
        "http://hub-mirror.c.163.com"
    ]
}

2、重启 Docker

systemctl daemon-reload
systemtctl restart docker && systemctl status docker

3、检查是否生效:docker info

3. CentOS 安装 sentry

3.1 方式一

 cd /opt
mkdir -p data/{sentry,postgres}

# 克隆该项目
git clone https://github.com/getsentry/onpremise.git

# 生成密钥
cd onpremise
cp .env.example .env
docker volume create --name=sentry-data
docker volume create --name=sentry-postgres
docker-compose run --rm web config generate-secret-key

# 输出信息
Successfully built 65266319f103
Successfully tagged sentry-onpremise-local:latest
WARNING: Image for service web was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.

# 密钥文件
(2gwakm75k4%-#79i(6o)%og4tz41r_02t=ik#uq_li15_*)(m

# 将该密钥文件写入 .env 或 docker-compose.yml 中
vim .env
SENTRY_SECRET_KEY='(2gwakm75k4%-#79i(6o)%og4tz41r_02t=ik#uq_li15_*)(m'

# 创建数据库
docker-compose run --rm web upgrade

# 在创建数据的时候会提示我们是否需要创建管理员,我们选择Y,填入对应的邮箱地址和密码,等一下登陆WEB需要,是否是超级管理员也选择Y 

# 启动所有服务
docker-compose up -d

# 验证docker启动状态
docker ps

到此 sentry 就已经部署完成了,访问我们的服务器 ip:9000 端口就可以看见 sentry 的界面

参考文章

3.2 方式二

最新的安装方式:

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

cd onpremise/

# 服务器最小安装内存为 2G,不足请修改 install.sh 中的 min_ram

# 执行脚本进行安装
./install.sh

# 看到以下信息表示已经安装完毕

# Generating Relay credentials...
# Relay credentials written to relay/credentials.json
# Relay public key written to sentry/sentry.conf.py
 
# Cleaning up...
 
# ----------------
# You're all done! Run the following command to get Sentry running:
 
#   docker-compose up -d

docker-compose run --rm web upgrade
docker-compose run --rm web createuser  # 创建登录账户
docker-compose up -d    # 后台启动
docker ps   # 查看启动的容器,检查是否启动成功

若没有出错,访问:http://ip:9000 端口查看 sentry

3.3 Django 集成 sentry

1、安装:pip install --upgrade 'sentry-sdk==0.16.1'

2、配置 settings

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

sentry_sdk.init(
    dsn="",
    integrations=[DjangoIntegration()],

    # If you wish to associate users to errors (assuming you are using
    # django.contrib.auth) you may enable sending PII data.
    send_default_pii=True
)

其中 dsnsentry 创建项目时生成的一个 key,用于标识和区分不同的项目,设置后才知道要往哪个项目发送错误,在 sentry 界面设置中能找到它。

3、配置路由 MxShop/urls.py

from django.urls import path

def trigger_error(request):
    division_by_zero = 1 / 0

urlpatterns = [
    path('sentry-debug/', trigger_error),
    # ...
]

参考文章

原文地址:https://www.cnblogs.com/midworld/p/13629770.html