GlitchTip:开源错误追踪平台完全指南:Sentry替代方案的完整教程

GlitchTip:开源错误追踪平台完全指南:Sentry替代方案的完整教程

背景

在应用开发和运维过程中,错误追踪是保障服务质量的关键环节。Sentry 作为业界领先的错误追踪服务,提供了强大的错误收集和分析能力,但其云服务版本存在数据隐私顾虑,且企业版定价较高。

GlitchTip 正是为解决这一需求而生的开源错误追踪平台。作为 Sentry 的开源替代方案,GlitchTip 提供了与 Sentry 兼容的 API,可以直接替换 Sentry 客户端 SDK,同时支持完全私有化部署。

本文将提供一份保姆级教程,详细讲解 GlitchTip 的部署和配置,帮助开发团队快速搭建私有化的应用监控平台。

一、项目概述

1.1 GlitchTip 简介

GlitchTip 是一款开源的错误追踪平台,GitHub Star 数超过 6K。它提供了与 Sentry 兼容的 API,支持直接使用 Sentry 客户端 SDK。

GlitchTip 的核心特点:

  • Sentry 兼容:兼容 Sentry 协议,无缝迁移
  • 开源自由:基于 MIT 协议,完全开源
  • 私有化部署:数据完全自主掌控
  • 多语言支持:Python、JavaScript、Ruby 等
  • 团队协作:支持团队和项目管理
  • 邮件通知:支持错误告警邮件

1.2 核心功能

1.2.1 错误收集

GlitchTip 提供了全面的错误收集能力:

  • 异常追踪:捕获未处理的异常
  • 消息记录:记录日志和调试信息
  • 性能监控:追踪请求性能(可选)
  • 用户反馈:收集用户端的错误报告
1.2.2 问题管理
  • 问题聚合:自动聚合相似错误
  • 问题分配:分配给团队成员处理
  • 状态管理:标记已解决或忽略
  • 版本追踪:关联代码版本
1.2.3 告警通知
  • 邮件通知:第一时间告警相关人员
  • 自定义规则:灵活的告警规则配置
  • 速率限制:避免告警风暴

二、Docker Compose 部署

2.1 环境准备

确保服务器已安装:

  • Docker 20.10+
  • Docker Compose 2.0+
  • 内存:最低 1GB,推荐 2GB+
  • 磁盘:至少 5GB

2.2 创建部署目录

bash 复制代码
mkdir -p /opt/glitchtip
cd /opt/glitchtip

2.3 创建 docker-compose.yml

bash 复制代码
cat > docker-compose.yml << 'EOF'
version: '3.8'

services:
  glitchtip:
    image: glitchtip/glitchtip
    container_name: glitchtip
    ports:
      - "8000:8000"
    environment:
      - DATABASE_URL=postgres://glitchtip:password@db:5432/glitchtip
      - REDIS_URL=redis://redis:6379/0
      - SECRET_KEY=your-secret-key-change-in-production
      - EMAIL_URL=smtp://user:pass@smtp.example.com:587/
      - SITE_URL=http://your-domain.com
    depends_on:
      - db
      - redis

  db:
    image: postgres:15-alpine
    container_name: glitchtip-db
    environment:
      - POSTGRES_USER=glitchtip
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=glitchtip
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: unless-stopped

  redis:
    image: redis:7-alpine
    container_name: glitchtip-redis
    volumes:
      - redis_data:/data
    restart: unless-stopped

  celery:
    image: glitchtip/glitchtip
    container_name: glitchtip-celery
    command: celery -A glitchtip worker -l info
    environment:
      - DATABASE_URL=postgres://glitchtip:password@db:5432/glitchtip
      - REDIS_URL=redis://redis:6379/0
    depends_on:
      - db
      - redis

volumes:
  postgres_data:
  redis_data:
EOF

2.4 创建 .env 文件

bash 复制代码
cat > .env << 'EOF'
SECRET_KEY=your-super-secret-key-change-in-production
DATABASE_URL=postgres://glitchtip:password@db:5432/glitchtip
REDIS_URL=redis://redis:6379/0
EOF

2.5 启动服务

bash 复制代码
# 启动服务
docker compose up -d

# 查看服务状态
docker compose ps

# 初始化数据库
docker compose exec glitchtip python manage.py migrate

2.6 创建管理员账户

bash 复制代码
docker compose exec glitchtip python manage.py createsuperuser

2.7 Nginx 反向代理

bash 复制代码
apt-get install -y nginx

cat > /etc/nginx/sites-available/glitchtip << 'EOF'
server {
    listen 80;
    server_name glitchtip.your-domain.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location /ws/ {
        proxy_pass http://127.0.0.1:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
EOF

ln -s /etc/nginx/sites-available/glitchtip /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

# 启用 HTTPS
apt-get install -y certbot python3-certbot-nginx
certbot --nginx -d glitchtip.your-domain.com

三、快速入门

3.1 访问 GlitchTip

服务启动后,访问 http://your-server-ip:8000 或配置的域名。

使用管理员账户登录。

3.2 创建组织

首次登录,创建组织:

  1. 点击"Create Organization"
  2. 输入组织名称
  3. 设置组织 URL

3.3 创建项目

为应用创建监控项目:

  1. 进入组织设置
  2. 点击"Projects" → "New Project"
  3. 选择平台(Python、JavaScript 等)
  4. 输入项目名称
  5. 获取 DSN 地址

四、SDK 集成

4.1 Python 应用

4.1.1 安装 SDK
bash 复制代码
pip install sentry-sdk
4.1.2 配置 SDK
python 复制代码
import sentry_sdk

sentry_sdk.init(
    dsn="http://your-dsn-key@your-server/1",
   TracesSampleRate=1.0
)

try:
    # 应用代码
    result = 1 / 0
except Exception:
    sentry_sdk.capture_exception()

4.2 JavaScript 应用

4.2.1 安装 SDK
bash 复制代码
npm install @sentry/browser
4.2.2 配置 SDK
javascript 复制代码
import * as Sentry from '@sentry/browser';

Sentry.init({
    dsn: 'http://your-dsn-key@your-server/1',
    integrations: [...],
    tracesSampleRate: 1.0,
});

try {
    // 应用代码
    throw new Error('Test error');
} catch (e) {
    Sentry.captureException(e);
}

4.3 Django 应用

在 Django 的 settings.py 中配置:

python 复制代码
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

sentry_sdk.init(
    dsn="http://your-dsn-key@your-server/1",
    integrations=[DjangoIntegration()],
    traces_sample_rate=1.0,
    send_default_pii=True
)

4.4 其他语言

GlitchTip 兼容 Sentry SDK,支持:

  • Node.js
  • Ruby
  • Java
  • Go
  • PHP
  • .NET

配置时只需将 DSN 指向你的 GlitchTip 服务器即可。

五、高级功能

5.1 告警规则

5.1.1 创建告警
  1. 进入项目设置 → "Alert Rules"
  2. 点击"Create Alert Rule"
  3. 配置触发条件
5.1.2 触发条件
条件 说明
事件数量 错误数量超过阈值
频率 错误发生频率
新问题 出现新的错误
回归 之前已解决的问题再次出现

5.2 用户反馈

收集用户端的错误报告:

javascript 复制代码
// JavaScript 示例
import * as Sentry from '@sentry/browser';

const form = document.getElementById('feedback-form');
form.addEventListener('submit', (e) => {
    e.preventDefault();
    const message = form.elements.message.value;
    Sentry.captureUserFeedback({
        event_id: Sentry.getLastEventId(),
        comments: message,
        email: 'user@example.com',
        name: 'User Name'
    });
});

5.3 发布追踪

关联代码版本进行追踪:

python 复制代码
sentry_sdk.init(
    dsn="http://your-dsn-key@your-server/1",
    release="myapp@1.0.0",
    environment="production"
)

六、团队管理

6.1 邀请成员

  1. 进入组织设置 → "Members"
  2. 点击"Invite Member"
  3. 输入邮箱地址
  4. 选择角色权限

6.2 角色权限

角色 说明
Owner 组织所有者,全部权限
Admin 管理员,管理项目和成员
Member 成员,使用项目功能
Billing 账单管理

6.3 问题分配

将问题分配给团队成员:

  1. 打开问题详情
  2. 点击"Assignee"
  3. 选择团队成员

七、数据管理

7.1 数据导出

导出错误数据:

  1. 进入项目设置
  2. 选择"Data Export"
  3. 选择时间范围
  4. 下载导出文件

7.2 数据清理

设置数据保留策略:

bash 复制代码
# 使用 Django 命令
docker compose exec glitchtip python manage.py cleanup old-data --days 30

八、常见问题

8.1 部署问题

Q:服务启动失败

A:检查日志:

bash 复制代码
docker compose logs glitchtip
docker compose logs db

Q:数据库连接失败

A:确认数据库配置和环境变量正确。

8.2 使用问题

Q:SDK 发送的数据未显示

A:检查:

  1. DSN 配置是否正确
  2. 网络连接是否正常
  3. 项目是否已创建

Q:告警未触发

A:检查告警规则配置,确认触发条件设置正确。

九、总结

GlitchTip 作为 Sentry 的开源替代方案,以其 Sentry 兼容性和私有化部署能力,为开发团队提供了一个经济高效的错误追踪解决方案。

通过本文的保姆级教程,读者应该已经掌握了:

  1. Docker 部署:使用 Docker Compose 快速部署
  2. 项目配置:创建组织和项目
  3. SDK 集成:在各种语言中集成错误追踪
  4. 告警管理:配置告警规则
  5. 团队协作:管理团队成员

对于需要私有化错误追踪平台的开发团队,GlitchTip 是一个值得考虑的开源选择。


本文由无边界科技技术团队分享,专注软件开发与技术解决方案。

官网:wubianj.com

© 版权归无边界科技所有,版权所有。

相关推荐
ApacheSeaTunnel19 小时前
实战演示 | 基于 Apache SeaTunnel 与 Apache DolphinScheduler 实现 MySQL 到 Doris 离线定时增量同步
大数据·mysql·开源·doris·数据集成·seatunnel·数据同步
国产化创客19 小时前
ESP32 CameraWebServer 原生摄像头项目全解析
物联网·开源·嵌入式·实时音视频·智能硬件
ofoxcoding1 天前
GLM 5.2 使用教程:API 接入配置、价格说明及 MIT 开源权重发布计划
ai·开源
X54先生(人文科技)1 天前
《元创力》纪实录·卷宗2.2 会议室的裂缝:当“真实高于完美”第一次被写在会议纪要里
人工智能·开源·ai写作·零知识证明
IvorySQL1 天前
PostgreSQL 技术日报 (6月15日)|PG19 性能优化推进,POSETTE 大会倒计时 2 天
数据库·人工智能·postgresql·开源
幽络源小助理1 天前
2026最新写真图片视频打赏系统源码_全开源无加密_幽络源源码
开源·源码·php源码
OpenIM1 天前
增量版本同步能力介绍 | OpenIM
开源·github·信息与通信
屈服强度拉满1 天前
SolidWorks工程图标注时提示两种类型字体缺失
开源
写代码的学渣1 天前
docker部署开源实时观测系统hertzbeat
docker·容器·开源