搬瓦工部署 GlitchTip 错误监控平台教程
GlitchTip 是一款轻量级的开源错误追踪平台,可以视为 Sentry 的简化替代品。它兼容 Sentry 的 SDK 协议,这意味着你可以直接使用 Sentry 的各语言 SDK 将错误数据发送到 GlitchTip。相比自托管 Sentry 需要 4GB+ 内存,GlitchTip 仅需 512MB 即可运行,非常适合在资源有限的 VPS 上部署。本文将介绍如何在搬瓦工 VPS 上部署 GlitchTip。部署前请确保已安装 Docker 和 Docker Compose。
一、GlitchTip 与 Sentry 的对比
- 资源需求:GlitchTip 约 512MB 内存,Sentry 需要 4GB+。
- SDK 兼容:GlitchTip 兼容 Sentry SDK,无需专用客户端。
- 功能范围:GlitchTip 聚焦错误追踪和运行时监控,Sentry 功能更全面。
- 部署复杂度:GlitchTip 仅需 3-4 个容器,Sentry 需要 20+ 个。
- 许可协议:GlitchTip 使用 MIT 协议,Sentry 使用 BSL 协议。
二、系统要求
- 操作系统:Ubuntu 20.04+ 或 Debian 11+。
- 内存:至少 512MB,推荐 1GB。
- 磁盘:至少 5GB 可用空间。
- Docker:已安装 Docker 和 Docker Compose。
搬瓦工入门方案即可运行 GlitchTip。购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买入口:bwh81.net。
三、创建项目目录
mkdir -p /opt/glitchtip && cd /opt/glitchtip
四、创建环境变量文件
cat > /opt/glitchtip/.env <<'EOF'
DATABASE_URL=postgresql://glitchtip:your_db_password@glitchtip-db:5432/glitchtip
SECRET_KEY=your_secret_key_here
PORT=8000
EMAIL_URL=smtp://user:password@smtp.example.com:587
DEFAULT_FROM_EMAIL=glitchtip@example.com
GLITCHTIP_DOMAIN=https://your_domain.com
ENABLE_OPEN_USER_REGISTRATION=true
CELERY_WORKER_AUTOSCALE=1,3
EOF
生成 SECRET_KEY:
openssl rand -hex 32
五、编写 Docker Compose 配置
cat > /opt/glitchtip/docker-compose.yml <<'EOF'
version: '3.8'
x-glitchtip-defaults: &glitchtip-defaults
image: glitchtip/glitchtip:latest
env_file: .env
restart: always
depends_on:
- glitchtip-db
- glitchtip-redis
services:
glitchtip-db:
image: postgres:15
restart: always
environment:
POSTGRES_DB: glitchtip
POSTGRES_USER: glitchtip
POSTGRES_PASSWORD: your_db_password
volumes:
- glitchtip_db_data:/var/lib/postgresql/data
glitchtip-redis:
image: redis:7-alpine
restart: always
glitchtip-web:
<<: *glitchtip-defaults
ports:
- "8000:8000"
glitchtip-worker:
<<: *glitchtip-defaults
command: ./bin/run-celery-with-beat.sh
glitchtip-migrate:
<<: *glitchtip-defaults
command: ./manage.py migrate
restart: "no"
volumes:
glitchtip_db_data:
EOF
六、启动服务
cd /opt/glitchtip
# 先执行数据库迁移
docker compose run --rm glitchtip-migrate
# 启动所有服务
docker compose up -d
访问 http://your_server_ip:8000,注册管理员账户。
七、创建项目并接入 SDK
登录 GlitchTip 后,创建组织和项目。系统会生成一个 DSN,格式如下:
http://your_key@your_domain.com/1
由于 GlitchTip 兼容 Sentry SDK,直接使用 Sentry SDK 即可:
# Python
import sentry_sdk
sentry_sdk.init(dsn="http://your_key@your_domain.com/1")
# JavaScript
import * as Sentry from "@sentry/browser";
Sentry.init({ dsn: "http://your_key@your_domain.com/1" });
八、配置反向代理
cat > /etc/nginx/sites-available/glitchtip <<'EOF'
server {
listen 80;
server_name 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;
}
}
EOF
ln -s /etc/nginx/sites-available/glitchtip /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d your_domain.com
九、运行时监控
GlitchTip 除了错误追踪,还支持基本的运行时监控(Uptime Monitoring)。在项目设置中可以添加 HTTP 端点监控,GlitchTip 会定期检测目标 URL 的可用性并在故障时发送告警。
十、常见问题
注册页面显示错误
确保环境变量中 ENABLE_OPEN_USER_REGISTRATION 设置为 true。首位注册用户自动成为管理员。
邮件通知不工作
检查 EMAIL_URL 配置是否正确,可以在 Django admin 页面测试邮件发送功能。
总结
GlitchTip 是 Sentry 的最佳轻量替代品,资源消耗仅为 Sentry 的十分之一,且完全兼容 Sentry SDK。对于个人开发者和小团队来说,GlitchTip 是在 VPS 上自托管错误监控的理想选择。如果需要更全面的功能,参考 Sentry 自托管。选购搬瓦工 VPS 使用优惠码 NODESEEK2026 可享 6.77% 折扣。