我们应该登录同一个数据库还是单独的数据库

should we Log in same Database or separate database

到目前为止,我一直在使用文件系统进行日志记录,现在正计划迁移到数据库系统。

我计划为日志使用相同的数据库和不同的集合(NoSQL 术语)/table。对记录器使用相同的数据库还是更好地使用不同的数据库是否安全?

是否需要索引,用户可以查询获取从今天到今天的所有日志,并且在当前屏幕中将只显示 X 条日志,点击下一步按钮将获取另一条 X 条日志。 加载一天范围内用户要求的所有数据并保存在内存中是否很好,以便下次和返回调用前端可以询问相应的数据?

如果你们中的任何人已经有记录器的数据库连接,请提出最佳实践和最失败的场景。

我见过很多针对 ElasticSearch(实际上是整个 ELK 堆栈)的记录器 运行。如果您要实施新的解决方案,需要考虑以下事项:

  1. 记录器必须要快。它可能不会减慢应用程序的速度。如果是自己实现,循环缓冲区和多线程处理是一个好的开始。
  2. 会有很多数据。单独的数据库是必须的。通过这种方式,您可以稍后将其移动到具有更便宜存储空间的服务器或根据您的需要扩展它。
  3. 日志数据是基于时间的。设计存储时,您可能希望进行 hourly/daily 分区以便于操作。
  4. 读书也是一样。您会希望数据按时间排序,最新的数据是最需要的。您的索引应该适应这一点。
  5. 分页和缓存等技术问题取决于数据库供应商。我对MongoDB不太了解,但我想分页应该到位。因此,单击“下一步”,您应该只从之前的查询中请求一些额外的行。

还有一点:就个人而言,我不会花时间实现新的东西。我会安装一个 ELK 实例,配置 Log4J(或任何您的应用程序记录器)并花额外的时间教服务台人员使用新环境。