【免费下载链接】portabase
Portabase - Database backup & restore tool for PostgreSQL, MySQL, MsSQL, MariaDB, Firebird SQL, SQLite, MongoDB, Redis and Docker Volume
Portabase 是一款开源的数据库备份与恢复工具,支持 PostgreSQL、MySQL、MsSQL、MariaDB、Firebird SQL、SQLite、MongoDB、Redis 和 Docker Volume 等多种数据库实例。本教程面向新手,带你快速配置 Portabase 告警策略:通过 9 类告警事件 + 12 种通知渠道的组合,让数据库备份失败、恢复异常、文件丢失等故障第一时间推送到你的手机或聊天工具,永不错过任何一次备份故障。
什么是 Portabase 告警策略?
在 Portabase 中,告警策略(Alert Policy)是一条绑定关系:
某个通知渠道+一组告警事件+一个作用域+启用开关
当数据库中你勾选的事件发生时,Portabase 就会通过绑定的通知渠道(Slack、邮件、Telegram 等)推送一条告警消息。
它的核心定义在数据表结构中可以看到,一条策略由通知渠道、事件类型数组、启用状态,以及"二选一"的数据库或项目作用域组成:
- 事件枚举定义:src/db/schema/10_alert-policy.ts
- 策略表结构(含作用域互斥约束):src/db/schema/10_alert-policy.ts
9 类告警事件全解析
Portabase 内置了 9 类告警事件(event_kind枚举),覆盖备份、恢复、健康检查和备份文件完整性四大场景:
| # | 事件类型 | 触发时机 | 严重程度 | 建议开启 |
|---|---|---|---|---|
| 1 | error_backup备份失败 | 定时或手动备份任务执行出错 | 🔴 严重 | ✅ 必开 |
| 2 | success_backup备份成功 | 备份任务顺利完成 | 🟢 信息 | ⭕ 可选 |
| 3 | error_restore恢复失败 | 数据恢复过程出错 | 🔴 严重 | ✅ 推荐 |
| 4 | success_restore恢复成功 | 数据恢复顺利完成 | 🟢 信息 | ⭕ 可选 |
| 5 | error_health_agent代理失联 | 备份代理超过 10 分钟无心跳 | 🔴 严重 | ✅ 推荐 |
| 6 | error_health_database数据库健康检查失败 | 数据库连通性探测失败(Health Ping) | 🔴 严重 | ✅ 推荐 |
| 7 | error_backup_missing备份文件丢失 | 定期巡检发现远端备份文件消失 | 🔴 严重 | ✅ 必开 |
| 8 | success_backup_recovered备份文件恢复 | 丢失的备份文件重新出现 | 🟢 信息 | ⭕ 可选 |
| 9 | weekly_report周报 | 每周定时生成运行报告 | 🟢 信息 | ⭕ 可选 |
事件选项与中文标签的完整定义见:src/features/database/schemas/channels-policy.schema.ts
几个容易忽略的细节:
- 代理失联有防抖机制:代理超过 10 分钟未心跳才会判定失联,且连续最多发送 3 次告警,避免刷屏。逻辑见 src/db/services/healthcheck.ts
- 备份文件丢失检测是后台巡检:Portabase 会定期到远端存储核对备份文件是否还在,文件消失触发"丢失"告警,重新出现则触发"恢复"告警。逻辑见 src/db/services/backup-presence.ts
- 告警消息分级:失败类事件标记为
critical(严重),成功类标记为info(信息),推送内容中会附带出错提示(如"检查数据库连接或代理")。消息构造逻辑见 src/features/notifications/utils/notifications.helpers.ts
告警策略配置四步走
第一步:在组织设置中创建通知渠道
告警策略必须绑定一个通知渠道才能生效。进入组织设置 → 通知页面,添加你要使用的渠道并启用它(未启用的渠道无法被策略选择)。
Portabase 支持 12 种通知渠道,定义见 src/db/schema/09_notification-channel.ts:
| 渠道类型 | 适用场景 |
|---|---|
smtp邮件 | 传统企业邮箱 |
slack/discord/teams/nextcloud | 团队即时聊天 |
telegram/gotify/pushover/ntfy | 手机推送,随时随地 |
webhook/apprise | 对接自建系统,Apprise 一次接上百种服务 |
healthchecks | 心跳监控集成 |
第二步:打开告警策略配置入口
在项目的数据库详情或项目设置页面,点击通知策略按钮即可打开策略弹窗(右上角角标显示当前生效策略数量)。如果组织内还没有配置任何通知渠道,弹窗会提示你先去设置页创建。界面实现见 src/features/database/components/channels-policy-modal.tsx
第三步:选择渠道 + 勾选事件 + 设置开关
在表单中为每条策略配置三项内容:
- 渠道下拉框:选择已启用的通知渠道
- 事件多选框:从 9 类事件中勾选你关心的(如"备份失败 + 备份文件丢失")
- 启用开关:临时停用某条策略时不用删除,关掉开关即可
表单组件见 src/features/database/components/channels-policy-form.tsx
第四步:保存并验证
点击保存后 Portabase 会自动计算"新增 / 修改 / 删除"三类变更并批量提交,成功后提示 "Policies saved successfully"。建议接着手动触发一次备份验证全链路:备份故意失败(如改错端口),确认告警消息真的推到了你的手机上。
理解策略匹配优先级:为什么我的配置没生效?
Portabase 的告警策略支持两级作用域,解析遵循"就近优先"原则(见 src/features/database/utils/policy-resolution.ts):
数据库级策略(最优先) ↓ 没有 项目级策略 ↓ 没有 系统默认策略(仅覆盖 备份失败 / 恢复失败)常见"不生效"原因排查清单:
- ❌ 数据库级已配置策略 → 项目级策略被整体覆盖,需在数据库级重新勾选
- ❌ 通知渠道未启用 → 策略存在但渠道
enabled = false,弹窗中根本选不到它 - ❌ 期望收到"周报"或"备份成功"通知 → 这两类事件不在系统默认策略内,必须显式勾选
- ❌ 代理失联告警不走策略勾选 → 它固定使用系统默认通知渠道发送
不同场景的推荐告警配置
新手起步(3 条策略搞定 80% 需求)
| 渠道 | 勾选事件 | 说明 |
|---|---|---|
| Telegram / 邮件 | 备份失败、备份文件丢失 | 最核心的两类,静默无打扰,出事必提醒 |
| 邮件 | 数据库健康检查失败 | 连接问题往往先于备份失败出现 |
生产环境(全量监控)
- 严重事件(备份失败 / 恢复失败 / 代理失联 / 健康检查失败 / 文件丢失)→ 推送到手机即时渠道,确保 7×24 有人响应
- 信息事件(备份成功 / 恢复成功 / 周报)→ 推送到团队聊天频道,作为运行台账
- 为每个关键数据库单独配数据库级策略,为一般数据库依赖项目级兜底策略
小结
Portabase 的告警策略 =9 类事件 × 12 种渠道 × 两级作用域:
- 先在组织设置里创建并启用通知渠道
- 在数据库或项目维度打开策略弹窗,勾选事件、绑定渠道、保存
- 记住"数据库级 > 项目级 > 系统默认"的匹配优先级
- 用一次人为失败验证告警全链路
配置完成后,无论是备份任务报错、恢复中途失败,还是远端备份文件离奇消失,Portabase 都会在你喝咖啡的时候把告警推到手机上——数据库备份故障,从此永不错过。
相关源码速查
- 9 类事件定义:src/db/schema/10_alert-policy.ts
- 事件选项与标签:src/features/database/schemas/channels-policy.schema.ts
- 策略解析优先级:src/features/database/utils/policy-resolution.ts
- 告警发送与消息构造:src/features/notifications/utils/notifications.helpers.ts
- 备份文件丢失巡检:src/db/services/backup-presence.ts
- 代理健康检查:src/db/services/healthcheck.ts
【免费下载链接】portabase
Portabase - Database backup & restore tool for PostgreSQL, MySQL, MsSQL, MariaDB, Firebird SQL, SQLite, MongoDB, Redis and Docker Volume
相关推荐
Portabase通知通道配置实战:让备份告警通过Telegram、Slack推送到你的手机
Portabase通知通道配置实战:让备份告警通过Telegram、Slack推送到你的手机 Portabase 是一个开源的数据库备份与恢复工具,支持 Pos
Excalidraw for Visual Studio Code:将手绘风格绘图工具无缝集成到你的编辑器
Excalidraw for Visual Studio Code:将手绘风格绘图工具无缝集成到你的编辑器 Excalidraw for Visual Stud
开发工具ACI.dev告警策略:智能告警规则配置
ACI.dev告警策略:智能告警规则配置 在现代应用开发中,告警系统扮演着至关重要的角色,它能够及时通知开发和运维人员系统中出现的问题,帮助团队快速响应并解决潜
后端前端MCP 服务工具调用AI 应用API网关人工智能
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考