ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

Krawl数据备份、保留策略与Standalone到Scalable迁移:一份完整运维手册

Krawl数据备份、保留策略与Standalone到Scalable迁移:一份完整运维手册 【免费下载链接】KrawlKrawl is a customizable, lightweight, cloud-native web deception server and anti-crawler that creates fake web applications with low-hanging vulnerabilities using realistic, randomly generated decoy data and AI-generated HTML templates.项目地址https://gitcode.com/gh_mirrors/kr/Krawl点击查看免费下载Krawl 是一款轻量级、云原生的 Web 欺骗服务器Honeypot与反爬虫工具。本文将从零讲清三件运维必会的事Krawl 数据备份怎么开、数据保留策略如何工作以及如何在需要扩容时把StandaloneSQLite模式平滑迁移到 ScalablePostgreSQL模式全程附带配置项说明与操作步骤适合新手直接照做。为什么蜜罐数据值得认真对待Krawl 的核心价值在于持续捕获攻击者的访问日志、凭据窃取尝试和攻击指纹。一旦数据库丢失已积累的IP 信誉与攻击者画像全部清零封禁列表banlist导出的依据消失防火墙联动失效历史攻击回溯与取证能力归零。因此备份 保留策略是 Krawl 生产部署的两个保底机制而 Standalone → Scalable 迁移则是流量增长后的升级路径。 官方文档入口docs/backups.md、docs/deployment-modes.md一键开启 Krawl 数据库自动备份Krawl 内置了定时备份任务dump-krawl-data默认是关闭的需要在配置中手动打开。备份配置方法config.yaml编辑项目根目录的 config.yaml修改backups段backups: path: backups # 备份文件保存目录 cron: */30 * * * * # 备份频率默认每 30 分钟一次 enabled: true # 必须改为 true 才启用对应的环境变量为KRAWL_BACKUPS_PATH、KRAWL_BACKUPS_CRON、KRAWL_BACKUPS_ENABLED适合 Docker / K8s 部署时注入。两种模式下的备份原理备份方式随部署模式自动切换无需手动区分源码src/tasks/db_dump.py模式工具产出文件特点StandaloneSQLitePythonsqlite3.backup()APIbackups/krawl_backup.db原子一致快照先写临时文件再原子重命名坏备份永远不会覆盖好备份ScalablePostgreSQLpg_dumpbackups/db_dump.sql标准 SQL 转储带--no-owner --no-privileges300 秒超时防挂起恢复方法也很简单# Standalone先停 Krawl再覆盖数据库文件 cp backups/krawl_backup.db data/krawl.db # Scalable导入 SQL 转储 psql -h localhost -U krawl -d krawl backups/db_dump.sql如何验证备份任务真的在跑ls -la backups/ # 文件存在且时间戳是最新的 docker logs krawl-server | grep dump-krawl-data # 查看任务日志K8s 用 kubectl logsKrawl 配套的 Grafana 监控面板可用于观察备份任务与整体运行状态⚠️ 注意备份文件每次运行都会覆盖上一次建议定期把backups/目录同步到对象存储或异地才能抵御硬件级故障。数据保留策略Krawl 保留什么、删除什么备份解决意外丢失保留策略data retention解决数据库无限膨胀。Krawl 每天自动清理过期数据由database.retention_days控制默认30 天# config.yaml database: path: data/krawl.db retention_days: 30永远保留的数据不受保留期影响✅所有凭据捕获记录credential capture attempts✅ 所有可疑访问日志与蜜罐触发记录✅ 有可疑历史记录的IP 及其分类历史自动清理的数据️ 超过保留期的非可疑访问日志️ 无攻击历史的过期 IP 条目️ 孤儿攻击检测记录与孤儿载荷/聚类有统计无成员的幽灵数据清理任务 src/tasks/db_retention.py 按1 万行/批分批删除避免长时间锁表和 WAL 暴涨删除完成后还会自动修正累计计数器并刷新表统计信息保证仪表盘数字不失真。每日清理的时间线时间任务作用每天 08:30pre-retention-cleanup重新复查旧日志的可疑标记不再命中规则的取消标记交给保留任务清理每天 09:00db-retention真正执行过期数据删除与孤儿数据清扫在 Scalable 多副本模式下这两个任务都标记了single_pod: True由 Redis 租约保证同一时刻只在一个 Pod 上执行避免重复删除。Krawl 仪表盘的数据总览表保留策略正是围绕这些攻击数据表做精细化清理Standalone vs Scalable一张表看懂两种模式迁移前先确认你是否真的需要扩容。两种模式差异如下详见 docs/deployment-modes.mdStandaloneScalable数据库SQLiteWAL 模式PostgreSQL缓存进程内存字典Redis30s 热路径 / 2min 表格 / 10min 预热三级 TTL副本数仅 11可水平扩展外部依赖无PostgreSQL Redis适用场景开发、单机、低流量生产、高可用、高流量Krawl 攻击者排行榜数据在迁移后应完整保留这是迁移成功的关键验证点Standalone 到 Scalable 迁移分步教程迁移脚本 scripts/migrate_sqlite_to_postgres.py 会读取 SQLite 全部表 → 在 PostgreSQL 建表 → 分批默认 1000 行/批失败自动退化为逐行插入→ 最后打印源/目标行数比对摘要。迁移前置检查清单重要先备份cp data/krawl.db data/krawl.db.backup彻底停止 Krawl迁移期间绝不能有实例连着 SQLite否则会出现写锁与数据不一致PostgreSQL 已启动且可访问目标数据库已存在PostgreSQL 主机有足够磁盘空间Docker Compose 环境的迁移步骤# 1. 停掉 Standalone 栈 docker compose down # 2. 只启动 Scalable 栈中的 PostgreSQL 和 Redis docker compose -f docker/docker-compose.scalable.yaml up -d postgres redis # 3. 等待 PostgreSQL 就绪 docker compose -f docker/docker-compose.scalable.yaml exec postgres pg_isready -U krawl -d krawl # 4. 执行迁移核对输出的行数比对是否一致 python scripts/migrate_sqlite_to_postgres.py \ --sqlite-path data/krawl.db \ --postgres-host localhost \ --postgres-user krawl \ --postgres-password krawl \ --postgres-database krawl # 5. 启动完整 Scalable 栈 docker compose -f docker/docker-compose.scalable.yaml up -d常用参数还有--batch-size批大小、--drop-existing迁移前清空目标表。也可以借助 docker/docker-compose.scalable.yaml 挂载./data卷在容器内执行迁移。KubernetesHelm环境的迁移K8s 场景下 SQLite 数据放在 PVC 里Helm chart 自带一次性迁移 Job模板见 helm/templates/migration-job.yaml先把 Krawl 缩容到 0 副本--set replicaCount0释放 PVC 文件锁同时开启--set migration.enabledtrue并启用 PostgreSQL/Redis等待 Job 完成kubectl wait --forconditioncomplete job/release-krawl-migrate --timeout600skubectl logs job/release-krawl-migrate核对行数比对再执行helm upgrade切换--set modescalable、--set migration.enabledfalse、--set replicaCount2。迁移后必做三件事登录仪表盘核对 IP、攻击日志、统计图表与迁移前一致SQLite 备份至少保留几天确认无误再删清理旧资源K8s 中旧 PVC不会随模式切换自动删除确认后可手动回收Docker 环境则删除data/krawl.db释放空间。 迁移失败怎么办把krawl.db.backup恢复回data/krawl.db以 Standalone 模式重新拉起即可回滚。新手常见坑位速查坑说明备份默认关闭backups.enabled默认为false不开就从来没有备份文件备份互相覆盖每次运行覆盖上一次务必异地留存边跑边迁移迁移时 Krawl 必须完全停止K8s 要缩容到 0 副本只迁移不核对脚本结尾的行数比对摘要一定要看一眼删掉旧备份太早建议至少观察几天再回收旧 SQLite 数据相关文档与源码路径备份文档docs/backups.md部署模式与迁移完整指南docs/deployment-modes.md备份任务源码src/tasks/db_dump.py保留策略任务src/tasks/db_retention.py、src/tasks/pre_retention_cleanup.py迁移脚本scripts/migrate_sqlite_to_postgres.pyScalable 部署清单docker/docker-compose.scalable.yaml配置文件示例config.yaml赞分享【免费下载链接】KrawlKrawl is a customizable, lightweight, cloud-native web deception server and anti-crawler that creates fake web applications with low-hanging vulnerabilities using realistic, randomly generated decoy data and AI-generated HTML templates.项目地址https://gitcode.com/gh_mirrors/kr/Krawl点击查看免费下载相关推荐打造你的专属桌面伙伴DyberPet开源框架终极指南打造你的专属桌面伙伴DyberPet开源框架终极指南 你是否曾梦想过让喜欢的角色真正住进你的电脑桌面不只是简单的动画展示而是能与你互动、成长、甚至帮助桌面应用AI 应用HoloISO备份与恢复完整系统迁移与数据保护策略HoloISO备份与恢复完整系统迁移与数据保护策略 HoloISO是SteamOS 3 Holo 的Arch Linux发行版实现为PC用户提供完整的Ste操作系统6步一键生成OpenCore EFI新手黑苹果配置工具实战教程6步一键生成OpenCore EFI新手黑苹果配置工具实战教程 OpCore Simplify 是一款实现 OpenCore EFI自动配置 的黑苹果配置工具开发工具CLI上一篇React Native Skia 渲染模式指南Retained Mode 与 Immediate Mode 的对比、选型与组合实践下一篇placeholderkv 内存分配器性能调优实战基于 jemalloc 5.3.0 TUNING.md 的配置指南与源码级原理剖析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表