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

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

相关推荐
OpenBayes贝式计算21 小时前
教程上新丨一键部署Gemma 4 31B,最高256K上下文,能力媲美Qwen3.5 397B
google·开源·llm
ApacheSeaTunnel1 天前
Apache SeaTunnel Zeta 为什么能做到“又快又稳”?
大数据·开源·数据集成·seatunnel·技术分享·数据同步
文慧的科技江湖1 天前
OCPP 1.6 与 2.0.1 核心消息差异对照表 - 慧知开源充电桩平台
小程序·开源·ocpp协议·慧知开源充电桩平台
不做超级小白1 天前
开源项目二开为何推荐使用 `git clone --depth 1`?
git·开源
计算机魔术师1 天前
【技术硬核 | AI Agent】Hermes 与 Harness:搞懂器与道的真正边界
开源
字节跳动的猫1 天前
2026 四款 AI:开发场景适配全面解析
前端·人工智能·开源
道一云1 天前
企业微信CLI开源项目发布,支持通过CLI使用接口能力
开源·编程·企业微信·软件开发
薛定猫AI1 天前
【技术干货】Hermes Agent v0.9.0 深度解析:开源 AI Agent 的跨平台生态进化
人工智能·开源
路由侠内网穿透1 天前
本地部署开源发票管理系统 Invoice Ninja 并实现外部访问
运维·服务器·数据库·物联网·开源
CRMEB系统商城1 天前
国内开源电商系统的格局与演变——一个务实的技术视角
java·大数据·开发语言·小程序·开源·php