系统级审计日志记录每一次 API 调用;访客统计记录每篇日记的每一次读取,包括被拒绝的尝试,让你确认除了自己没人看过你的日记。
为什么需要审计
日记是最私密的数据。自托管解决了“数据放在谁手里”的问题,但还有一个问题:我怎么知道没有人偷看? Diarum 用两套机制回答这个问题:系统审计日志和日记访客统计。
系统审计日志
Diarum 会记录每一次 API 调用:谁、在什么时间、从哪个 IP 和客户端、通过网页 / API / MCP 哪个入口、做了什么、结果如何、耗时多久。记录的操作包括:
- 登录、登录失败、注册、退出、未授权与越权访问;
- 日记的创建、修改、删除、回滚、查看与搜索;
- 图片的上传、删除、移入回收站、恢复与彻底删除;
- 数据导入导出、设置与令牌变更、管理员操作。
日记正文不会被写入审计日志,审计记录本身不会成为泄露源。
在系统后台的「审计日志」中,可以按时间范围(1 小时 / 24 小时 / 3 天 / 7 天 / 全部 / 自定义)查看,按用户、操作、路径、IP、日期搜索和筛选,并查看统计分析:请求数、用户数、IP 数、错误率、登录失败、拒绝访问、写操作、p95 延迟、请求趋势、操作分布和最活跃用户。

存储、归档与保留
- 审计日志异步写入,不影响接口性能,每天一个 JSON Lines 文件,存放在数据目录的
logs/system-audit/下; - 本地默认保留 3 天;
- 可以把已结束的日期归档到 S3(默认保留 30 天),需要分析时在后台一键拉取回来,拉取的日志在下一次每日清理时自动删除;
- 也可以直接下载任意一天的原始日志文件。

日记访客统计
由管理员在后台开启后,Diarum 会在 API 层记录每一篇日记的每一次读取——无论来自网页、API 还是 MCP,包括被拒绝和未登录的尝试。
每个用户都能在「设置 → 数据统计」中看到自己的访客统计:
- 访问次数、访客数、设备数、被拒绝的尝试、非本人的访问;
- 如果所有成功的访问都来自你本人,会显示 ✅“这段时间内所有成功的访问都来自你本人”;否则会醒目提示有多少次访问不是你发起的;
- 最常被查看的日记、谁看得最多、访问入口分布、最近被拒绝的尝试;
- 完整的详细日志,可以按 IP、客户端、访客搜索。

管理员则可以查看全站的访问概况,按用户查看日记排行、访客与完整日志,以及无法对应到具体日记的被拒绝尝试(例如使用了无效的 API 令牌)。
防刷与保留
- 去重:同一访客在同一设备上 60 秒内重复查看同一篇日记只计一次(可调整);
- 限流:每个 IP、全站和每个用户的每分钟记录量都有上限,超出部分只计数不存明细,防止恶意请求撑爆数据库;
- 独立存储:访问记录保存在独立的
visits/visits.db中,不会撑大主数据库; - 保留与归档:默认保留 3 年,超出记录上限时删除最旧的记录;已结束的日期可以归档到 S3(默认保留 10 年),随时一键拉取回来查看。
