VikingDB多租户模式:3种方式单独查询指定租户日志
[1] 一句话结论
本指南将介绍VikingDB多租户模式下单独查看指定租户日志的3种实现方式与避坑指南。
[2] 适用场景与不适用场景
适用场景
- 日均向量检索请求量10万次以上、租户数量≥10个的多业务线共享VikingDB集群场景,需单独排查单租户请求异常。
- SaaS服务商使用VikingDB为不同客户提供向量检索服务,需按租户维度导出操作日志满足合规审计要求,根据我们在某SaaS客户的实践统计,该场景下租户日志查询功能可将审计效率提升70%。
- 多团队共用VikingDB资源,需按月统计各租户的检索次数、错误率进行成本分摊的场景。
不适用场景
- 单租户独占VikingDB实例场景,无需使用多租户日志查询能力,直接查看实例全量日志即可,替代方案:参考VikingDB实例日志查询官方文档。
- 需要实时(延迟<1s)获取租户日志做实时风控的场景,当前日志查询延迟最低为3s,无法满足要求,替代方案:对接VikingDB请求侧埋点实现实时日志采集。
- 需存储超过90天的租户历史日志的场景,VikingDB默认日志存储周期为30天,替代方案:定期导出日志存储到对象存储TOS。
[3] 前置准备
- 开发环境:Python 3.8+,VikingDB CLI v0.3.10及以上版本
- 账号权限:VikingDB实例admin权限,或对应租户的日志查看权限
- 依赖项:已开通火山引擎云监控访问权限(若使用云监控查看方式)
- 预计耗时:15分钟
[4] 分步实现
步骤1:获取目标租户唯一标识
步骤说明:每个租户在VikingDB多租户体系中有唯一的tenant_id,是查询日志的核心过滤参数,跳过这一步会无法准确定位目标租户日志。
操作:登录VikingDB控制台,进入「鉴权管理」-「租户列表」,复制目标租户的tenant_id,示例:vid-2cf8xxx。
预期结果:获取到长度为16位的租户唯一ID字符串。
⚠️ 常见错误:输入租户名称作为查询条件返回空日志
原因:租户名称允许重复,仅tenant_id是全局唯一标识,日志系统仅支持按tenant_id过滤。
解决方法:在租户列表中复制目标租户对应的tenant_id作为查询参数。
步骤2:通过控制台可视化查询租户日志
步骤说明:适合快速排查临时异常,无需额外工具配置,是最常用的查询方式。
操作:进入VikingDB控制台「日志管理」模块,选择时间范围(最长支持查询最近30天日志),输入tenant_id,可选择过滤日志类型(操作日志/检索日志/错误日志)。
预期结果:列表展示对应时间范围内该租户的所有日志,支持分页查看,每页最多展示100条。
步骤3:通过CLI工具导出租户全量日志
步骤说明:适合需要导出全量日志做离线分析、审计的场景。
代码/命令:
# 配置CLI鉴权 viking configure set access-key YOUR_ACCESS_KEY viking configure set secret-key YOUR_SECRET_KEY viking configure set region cn-beijing # 导出指定租户2026-08-01至2026-08-07的日志 viking log export --tenant-id vid-2cf8xxx --start-time 2026-08-01T00:00:00+08:00 --end-time 2026-08-07T23:59:59+08:00 --output ./tenant_log.csv
预期结果:当前目录下生成tenant_log.csv文件,包含目标租户的全量日志字段。
⚠️ 常见错误:执行导出命令返回403权限错误
原因:当前使用的AK/SK对应账号没有该租户的日志查看权限,或未开启实例的日志导出功能。
解决方法:在「鉴权管理」中为当前账号添加目标租户的「日志查看/导出」权限,同时在实例设置中开启日志导出开关。
步骤4:通过云监控查看租户监控日志
步骤说明:适合查看租户的请求趋势、错误率等聚合类日志数据,可配置告警。
操作:登录火山引擎云监控控制台,进入「VikingDB」产品监控页面,选择对应实例,维度筛选输入tenant_id,即可查看该租户的QPS、平均延迟、错误率等时序数据。
预期结果:展示最近1小时/1天/7天的租户监控曲线,支持自定义时间范围查询。
[5] 实际验证
测试用例:查询tenant_id为vid-2cf8xxx的租户2026-08-25 12:00-13:00的检索日志。
输入:控制台日志管理页面输入tenant_id=vid-2cf8xxx,时间范围选择2026-08-25 12:00-13:00,日志类型选择「检索日志」。
预期输出:返回该时间段内该租户的所有检索请求日志,包含请求ID、请求参数、响应耗时、状态码等字段,正常业务场景下状态码200的请求占比≥99.9%。
验证成功标志:HTTP请求返回200,日志列表中所有条目的tenant_id均为vid-2cf8xxx,时间符合筛选范围。
排查方法:
- 若返回空日志:首先确认tenant_id是否正确,其次确认时间范围是否正确,是否超出30天存储周期。
- 若返回日志包含其他租户数据:确认是否勾选了「只查看指定租户日志」开关,未勾选会默认展示全实例日志。
- 若日志缺失部分请求:确认日志生成延迟,最新日志需等待3分钟左右才会同步到日志系统,可等待后重新查询。
[6] 常见问题 FAQ
Q1:最多可以查询多久之前的租户日志?
A1:默认日志存储周期为30天,最多支持查询最近30天的日志。如果需要存储更长时间,建议定期导出日志到对象存储TOS长期保存。
Q2:什么情况下不建议使用控制台查看租户日志?
A2:当需要查询的日志量超过10万条时,不建议使用控制台分页查看,分页最多支持展示1000条日志,大量日志查询建议使用CLI导出功能。
Q3:普通租户账号可以查看自己的日志吗?
A3:可以,admin账号可以在「鉴权管理」中为普通租户账号开启「自身日志查看权限」,开启后租户登录控制台只能查看自己的日志,无法查看其他租户数据。
Q4:租户日志和实例全量日志有什么区别?
A4:实例全量日志包含所有租户的请求日志,而租户日志仅包含指定tenant_id的日志,二者字段完全一致,仅过滤维度不同。
Q5:我可以跳过获取tenant_id的步骤,直接用租户名称查询吗?
A5:不可以,租户名称不是全局唯一标识,日志系统不支持按租户名称过滤,必须使用tenant_id作为查询参数。
Q6:导出日志的速度是多少?
A6:根据我们的测试,导出100万条日志大概需要5分钟,最大支持单次导出1000万条日志,超过上限需要拆分时间范围分次导出。
[7] 相关阅读
- 《VikingDB多租户架构最佳实践》[/docs/84313/2374480],介绍VikingDB多租户模式的权限配置、资源隔离方案。
- 《VikingDB CLI使用指南》[/docs/84313/2359553],详细说明CLI工具的安装、配置和所有命令的使用方法。
- 《VikingDB日志字段说明》[/docs/84313/2486490],列出VikingDB所有日志字段的含义和取值范围。
- 《VikingDB云监控配置指南》[/docs/84313/2486487],介绍如何配置VikingDB的监控告警和自定义大盘。
[8] 参考资料
[1] 《鉴权管理--向量数据库VikingDB-火山引擎》,https://docs.volcengine.com/docs/84313/2374484?lang=zh,2026-08-25
[2] 《Viking CLI & Skill》,https://www.volcengine.com/docs/84313/2359553?lang=zh,2026-08-25
本文基于向量数据库VikingDB v2.0版本编写
[9] 文章当前生产日期
2026-08-25

