GlitchTip 6.2.6 配置参数详解

GlitchTip 6.2.6 配置参数体系全解:加载机制、必配项、基础设施、安全访问、功能开关、数据保留、邮件与 SSO、对象存储与调优项,官方默认值与实测生效值对照(2026-10-27 实测)。

GlitchTipGlitchTip错误追踪可观测性监控2026/10/27

GlitchTip 6.2.6 配置参数详解

目标:系统梳理 GlitchTip 6.2.6 的全部配置参数体系:配置加载机制、必配项、基础设施、安全访问、功能开关、数据保留、邮件、SSO、对象存储与调优项,每类参数给出官方口径默认值与实测生效值对照。所有「实测生效值」来自 2026-10-27 部署实例(详见《GlitchTip 6.2.6 Docker Compose 部署实战》)中 manage.py shell 对 Django settings 的真实导出。

一、环境信息

本篇参数验证基于以下实测环境(参数实测均在部署实例上执行):

  • 操作系统:Ubuntu 22.04 LTS(x86_64)
  • GlitchTip:6.2.6(SERVER_ROLE=all_in_one,docker exec 进入服务执行 Django 管理命令验证)
  • PostgreSQL:18(DATABASE_URL 接入);Valkey:9(VALKEY_URL 接入)
  • 验证方法:./manage.py shell -c "from django.conf import settings; ..." 导出生效配置值
  • 编排注入:Docker Compose environment 段(x-environment 锚点合并注入)
  • 查询日期:2026-10-27(官方口径值取自官方安装文档同日版本)

二、配置体系总览

GlitchTip 没有配置文件——全部配置通过环境变量注入,由 Django 启动时读取(django-environ 机制)转为内部 settings 属性。这决定了它的三条配置铁律:

  1. 改配置 = 改环境变量 + 重启服务:Compose 场景改 environment 后 docker compose up -d(重建实例使新变量生效);没有 reload 类热加载;
  2. 环境变量名 ≠ settings 属性名:两者大致对应但存在映射关系,例如环境变量 GLITCHTIP_DOMAIN 对应的生效属性是 GLITCHTIP_URL(一个 URL 解析对象)。验证生效值时应查 settings 属性而非环境变量本身;
  3. 少数配置在数据库不在环境:组织级设置(告警规则、成员角色)、社会化登录应用(Social Applications)的密钥等存于数据库,经 Web 界面或 API 管理,环境变量只负责实例级默认与开关。

配置项按功能域分为七族,本篇结构与其对应:

配置族代表变量本章
核心必配SECRET_KEY、DATABASE_URL、GLITCHTIP_DOMAIN三
基础设施SERVER_ROLE、VALKEY_URL、PORT、SKIP_INIT四
安全访问ALLOWED_HOSTS、CSRF_TRUSTED_ORIGINS、注册与管理开关五
功能开关GLITCHTIP_ENABLE_LOGS / _UPTIME / _MCP / _DUCKDB六
数据保留GLITCHTIP_RETENTION_DAYS 及分域保留组七
邮件与身份源EMAIL_URL、EMAIL_*、Social Auth八
存储与调优AWS_*、payload 限制、性能项九

三、核心必配参数

1. SECRET_KEY — Django 会话与签名密钥。

  • 官方默认:无(不设置无法启动);
  • 生成方式:openssl rand -hex 32(官方建议);
  • 实测:编排注入 64 位十六进制串,settings 导出 SECRET_KEY = <64 chars>,实例正常运行。另有配套 SECRET_KEY_FALLBACKS(轮换期间的旧密钥列表,默认空)。

2. DATABASE_URL — PostgreSQL 连接串。

  • 格式:postgres://用户:密码@主机:5432/库名(官方要求 PostgreSQL 14+,实测 18);
  • 实测生效:DATABASES['default'] 引擎为 Django PostgreSQL 后端、主机 postgres(服务网络别名解析);
  • 分区表特殊要求:数据库侧需 max_locks_per_transaction=512(官方编排通过启动参数提供;使用外部数据库时必须自行调整,这是官方文档唯一指名的数据库调优点);
  • Helm/K8s 场景另有 MAINTENANCE_DATABASE_URL、READ_ONLY_DATABASE_URL(分离权限的迁移/只读连接串,官方 chart 支持项)。

3. GLITCHTIP_DOMAIN — 实例对外地址。

  • 格式:含协议的完整 URL(如 https://glitchtip.example.com);
  • 作用:注册/告警邮件中的链接、项目 DSN 的主机部分(实测生成的 DSN 主机即取自该值)、CSRF 域判断;
  • 实测生效:注入 GLITCHTIP_DOMAIN: http://192.168.1.62:8143 后,settings 中出现 GLITCHTIP_URL = ParseResult(scheme='http', netloc='192.168.1.62:8143', ...)——确认映射关系为 GLITCHTIP_DOMAIN(环境变量)→ GLITCHTIP_URL(生效属性)。

4. DEFAULT_FROM_EMAIL — 告警/邀请邮件的发件人地址。

  • 实测生效:DEFAULT_FROM_EMAIL = admin@example.com;
  • 与 EMAIL_URL 配合构成邮件最低可用组合;不配邮件时它仍是注册展示的默认来源,建议总是设置。

四、基础设施参数

变量默认值说明与实测
SERVER_ROLEweb服务角色:all_in_one(单服务全包)/ web(只接入)/ worker(只后台任务)。实测 all_in_one 模式下事件入库与后台分组正常
GLITCHTIP_EMBED_WORKERFalseall_in_one 的等价开关写法,两者取一即可
VALKEY_URL空队列/缓存/会话地址,redis://host:6379。实测注入 redis://valkey:6379 后 settings 导出 CACHE_IS_VALKEY = True。置空时回退 PostgreSQL 承载队列/缓存(官方低内存建议),代价是上报吞吐
SKIP_INITFalse跳过启动时的自动迁移与分区维护(K8s 由独立 Job 跑迁移时置 true,Compose 单机保持默认)
PORT8000服务监听端口;编排端口映射的目标端口需与其一致
BASE_PATH空子路径反代部署(如域名下 /glitchtip/)时设置
LOG_LEVELWARNING服务日志等级,排障时临时调 INFO/DEBUG
PROXY_ENVFalse是否信任 HTTP_PROXY/HTTPS_PROXY/NO_PROXY 环境变量(出站请求走代理场景)
UPTIME_CHECK_INTERVAL1拨测调度间隔(分钟)

五、安全与访问控制参数

网络层防护:

变量默认值说明与实测
ALLOWED_HOSTS*HTTP Host 白名单(逗号分隔)。实测未设置时导出 ALLOWED_HOSTS = ['*'],同时启动日志出现「Restrict to known hostnames via the ALLOWED_HOSTS env var」的 RuntimeWarning——生产必须收敛为具体域名
CSRF_TRUSTED_ORIGINS空CSRF 来源白名单。反代域名与 GLITCHTIP_DOMAIN 不一致时必填(实测中纯 IP 直连场景未配也能跑通 API,但上反代换域名后缺失此项会导致登录/表单 403)
SOCIAL_AUTH_BLOCK_PRIVATE_IPSFalse禁止社会化登录流程访问内网地址(SSRF 防护)
GLITCHTIP_ALLOW_PRIVATE_IPS / GLITCHTIP_UPTIME_ALLOW_PRIVATE_IPSFalse分别放开 webhook 与拨测对内网地址的限制,默认关闭防 SSRF,内网联动场景按需开启

后台与 API 开关:

变量默认值说明与实测
ENABLE_ADMINFalseDjango Admin 后台(/admin/)。实测置 True 后导出 ENABLE_ADMIN = True 且后台可登录
ENABLE_OPENAPIFalseOpenAPI 文档端点(/api/docs 与 /api/openapi.json)。实测开启后可下载 6.2.6 的全量接口规范(114 条路径)
ENABLE_USER_REGISTRATIONTrue邮箱自注册开关。实测默认 True;收敛为管理员建号模式时置 False
ENABLE_SOCIAL_APPS_USER_REGISTRATIONTrue经社会化登录的注册开关(与上项独立)
ENABLE_ORGANIZATION_CREATIONFalse普通用户自建组织开关。实测默认 False——组织由管理员创建是推荐治理姿势

认证细节(settings 实测导出):登录标识为邮箱(ACCOUNT_LOGIN_METHODS = {'email'},6.x 用户模型以 email 为唯一标识);账号邮箱验证策略 ACCOUNT_EMAIL_VERIFICATION = optional;passkey 登录默认开启(MFA_PASSKEY_LOGIN_ENABLED = True);I_PAID_FOR_GLITCHTIP = False(自托管捐助致谢标记,不解锁任何功能)。

六、功能开关参数

变量默认值说明与实测
GLITCHTIP_ENABLE_LOGSTrueOTLP 日志接入与界面。实测导出 GLITCHTIP_ENABLE_LOGS = True
GLITCHTIP_ENABLE_UPTIMETrueUptime 拨测。实测 True;禁用可省后台任务开销
GLITCHTIP_ENABLE_MCPFalse内置 MCP 服务端(供 AI 工具查询错误/监控数据)。实测 False,启用后提供 MCP 端点
GLITCHTIP_ENABLE_DUCKDBFalseDuckDB 冷存储归档。实测导出 GLITCHTIP_ENABLE_DUCKDB = None(未显式设置即关闭态),配套生效参数:DUCKDB_MEMORY_LIMIT = 256MB、DUCKDB_THREADS = 4、DUCKDB_TEMP_DIRECTORY = /tmp、DUCKDB_EXTENSION_DIRECTORY = /opt/duckdb/extensions
ENABLE_OBSERVABILITY_APIFalsePrometheus 指标端点(监控 GlitchTip 自身)
GLITCHTIP_INSTANCE_NAME空界面展示的自定义实例名(支持 Markdown),实测 None
GLITCHTIP_RUST_INGESTFalseRust 摄入路径开关(6.x 实验特性,导出值 False)
SENTRY_ENABLE_LOGSFalseSDK 兼容层的日志开关(独立于 GLITCHTIP_ENABLE_LOGS)
GLITCHTIP_CHUNK_UPLOAD_USE_RELATIVE_URLFalse分块上传使用相对 URL(特殊反代场景)

七、数据保留参数

保留体系是「总开关 + 分域覆盖」结构:GLITCHTIP_RETENTION_DAYS(默认 90)为总开关,事件/事务/日志/拨测/文件/release 各域可单独覆盖,事件在 PostgreSQL 的热存天数另由 GLITCHTIP_EVENT_HOT_DAYS 控制(到期转入冷存档)。实测生效值全景:

变量官方默认实测生效值说明
GLITCHTIP_RETENTION_DAYS9090保留总开关
GLITCHTIP_EVENT_HOT_DAYS3030事件热存(PostgreSQL)天数
GLITCHTIP_EVENT_RETENTION_DAYS=总开关90事件保留(热+冷)
GLITCHTIP_TRANSACTION_RETENTION_DAYS=总开关90事务(性能监控)保留
GLITCHTIP_LOG_RETENTION_DAYS=总开关90日志保留
GLITCHTIP_LOG_HOT_DAYS77日志热存天数(比事件更短)
GLITCHTIP_UPTIME_RETENTION_DAYS=总开关90拨测数据保留
GLITCHTIP_SPAN_RAW_RETENTION_DAYS3030原始 span 数据保留
GLITCHTIP_RELEASE_RETENTION_DAYS365365release 元数据保留
GLITCHTIP_FILE_RETENTION_DAYS9090上传文件(sourcemap 等)保留

配套清理行为:GLITCHTIP_COLD_STORAGE_CLEANUP_ENABLED = True(冷存档过期自动清理);GLITCHTIP_COLD_STORAGE_DIR / GLITCHTIP_COLD_STORAGE_BUCKET(冷存档落本地目录或 S3 兼容桶,默认 None 即未启用)。

💡 技术拓展:热/冷分层与分区表的关系——事件按时间分区写入 PostgreSQL,超过 GLITCHTIP_EVENT_HOT_DAYS 的分区数据转入冷存储后从热表清理,周分区维护任务在启动与运行期自动执行(部署篇日志可见「Maintaining weekly partitions」)。只配总开关不配分域时,各域一律 90 天;要让日志只留 14 天,仅需追加 GLITCHTIP_LOG_RETENTION_DAYS: "14" 一行。

八、邮件与身份源参数

*邮件(EMAIL_ 全组,实测生效)**:

变量默认值说明与实测
EMAIL_URL空连接串总入口。实测 consolemail:// → 导出 EMAIL_BACKEND = django.core.mail.backends.console.EmailBackend(邮件打到日志),印证映射链路
EMAIL_HOST / EMAIL_PORT / EMAIL_HOST_USER / EMAIL_HOST_PASSWORDNoneSMTP 分项写法(与 EMAIL_URL 二选一)
EMAIL_USE_TLS / EMAIL_USE_SSLFalseSMTP 加密开关(587 端口一般 TLS、465 一般 SSL)
EMAIL_TIMEOUTNoneSMTP 超时秒数
EMAIL_FILE_PATH空filemail:// 落盘模式的目标目录
EMAIL_ENABLEDTrue邮件功能总开关(导出值 True)
EMAIL_SUBJECT_PREFIX[Django]邮件主题前缀
EMAIL_INVITE_REQUIRE_VERIFICATIONFalse受邀成员需邮箱验证
EMAIL_INVITE_THROTTLE_COUNT / _INTERVAL50 / 300邀请邮件限流(次数/秒窗)

SMTP 生产配法示例(URL 中特殊字符需百分号编码):EMAIL_URL: smtp://alert%40example.com:AppPassword@smtp.example.com:587。

社会化登录与 SSO:GlitchTip 的 Social Auth 体系支持 GitHub、GitLab、Google、Azure AD、OIDC、SAML 等身份源。配置采取「后台为主、环境变量为辅」:提供方应用(client_id/client_secret)在 Django Admin 的 Social Applications 中录入(数据库存储);环境变量用于实例级引导(如 SOCIAL_AUTH_GITLAB_KEY/SOCIAL_AUTH_GITLAB_SECRET 等官方文档列出的键值写法)。实测 6.2.6 settings 导出中直接可见的仅有 SOCIAL_AUTH_BLOCK_PRIVATE_IPS,其余提供方配置经 social_django 模型机制加载——因此升级或迁移实例时,SSO 配置随数据库走,无需在环境变量中重复维护。另外注意访问内网 IdP 时需同步放开 SOCIAL_AUTH_BLOCK_PRIVATE_IPS。

九、存储与调优参数

对象存储(上传文件,S3 兼容):

变量默认值说明
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEYNoneS3 兼容存储凭据(实测导出 SECRET 为 None 即未启用,默认落本地 uploads 卷)
AWS_STORAGE_BUCKET_NAME—目标桶名
AWS_S3_ENDPOINT_URL—自建 S3(MinIO 等)的 endpoint
AWS_S3_REGION_NAME—区域(部分实现必需)

事件量大的实例建议把 sourcemap/调试符号文件外移对象存储,本地卷只留数据库。

上传与解析限额(实测导出值):

变量实测值说明
GLITCHTIP_MAX_UNZIPPED_PAYLOAD_SIZE5242880(5 MB)单事件载荷解压上限
GLITCHTIP_MAX_UNZIPPED_ARCHIVE_SIZE536870912(512 MB)压缩包(sourcemap 包)解压上限
GLITCHTIP_MAX_ARCHIVE_MEMBERS10000压缩包内文件数上限

性能与调度(实测导出值):

变量实测值说明
GLITCHTIP_MALLOC_TRIM_INTERVAL3600glibc malloc trim 周期(秒),控制长驻内存回收
GLITCHTIP_THROTTLE_CHECK_INTERVAL5000限流检查间隔(毫秒)
GLITCHTIP_TRANSACTION_FUTURE_SKEW1 小时事务时间戳的未来偏移容忍
GLITCHTIP_PII_SCRUB_DEFAULT{}默认 PII 洗刷规则(空即不洗刷)

托管版计费参数(自托管无效应,仅识别用):GLITCHTIP_FREE_TIER_EVENTS = 1000、GLITCHTIP_LICENSE_KEY = None、GLITCHTIP_OVERAGE_TIERS(超额阶梯单价)——这些是 SaaS 运营参数,自托管实例保持默认即可。

十、配置生效方式与验证

修改与生效流程(Compose 场景):

  1. 编辑 /opt/glitchtip/compose.yml 的 environment 段;
  2. docker compose up -d(配置变化会触发 web/postgres 实例重建);
  3. 验证注入:docker exec glitchtip-6.2.6-web env | grep GLITCHTIP(环境层);
  4. 验证生效:./manage.py shell 导出对应 settings 属性(应用层,注意变量名→属性名的映射,如 GLITCHTIP_DOMAIN→GLITCHTIP_URL)。

两类常见配置错误(实测来源):

  • 变量名拼错静默失效:Django 对未知环境变量不报错,settings 中查无该属性即为拼错或未生效;
  • 只改环境未重启:docker compose restart 不会应用新的 environment(restart 不重建实例定义),必须 docker compose up -d。

十一、参考链接