事件记录

要求

Azure Queue(云)

Bitwarden 的云实例使用 Azure 队列和表存储来处理事件。以下是它的工作原理:

  1. 由用户执行需要被记录的动作

  2. 如果事件发生在客户端(例如查看了密码),客户端会将事件的详细信息发送到事件服务器项目,然后事件服务器项目调用 EventService。如果事件发生在服务器端,则相关项目调用 EventService 本身。

  3. 事件暂时存储在 Azure Queue Storage(专为处理大量消息而设计)中

  4. EventsProcessor 服务器项目运行常规批处理作业以从队列存储中检索事件并将它们保存到表存储中

  5. 从表存储中检索事件以供查看

要在本地模拟:

  1. 确保您已安装并设置 Azurite,如服务器设置指南中所述

  2. 确保未设置 globalSettings:events:connectionString 用户机密,或具有默认值 UseDevelopmentStorage=true

  3. 使用 dotnet run 或您的 IDE 启动 Events 和 EventsProcessor 项目。(还要确保您的 Api、Identity 和你的 Web Vault 处于运行状态。)

您现在应该可以观察到您的企业组织正在记录事件(例如,当创建项目或邀请用户时)。这些出现在组织密码库的事件日志部分。

Azure Storage Exporer 允许您检查本地队列和表存储的内容,对调试非常有用。

数据库存储(自托管)

Bitwarden 的自托管实例使用替代的 EventService 实现将事件日志直接写入其数据库中的 Event 表。

要为事件使用数据库存储:

  1. 自托管配置中运行您的本地开发服务器(Api、Identity 和 Web 密码库)

  2. 使用 dotnet run 或您的 IDE 启动 Events 项目(注意:自托管不需要 EventsProcessor)

最后更新于