找回密码
 立即注册

QQ登录

只需一步,快速开始

Gerald.Zhang
超级版主   /  发表于:2024-3-1 17:37  /   查看:587  /  回复:0
本帖最后由 Gerald.Zhang 于 2024-3-5 18:32 编辑

在了解了日志模块中的强大功能后,我们来看一下,这些功能背后,所有的日志数据是如何存储的。

日志数据库

日志本身是通过文件的方式进行存储的。但是日志文件本身很难进行解析。因此,诞生了专门用于存储、查询和分析日志数据的数据库。

不同于咱们经常接触到的结构化数据,日志数据通常是由各种系统、应用程序、网络设备等生成的时间序列数据,它们记录了各种事件的发生情况,比如用户操作、系统错误、网络请求等等。因此,对于日志数据库来说,其最大的能力体现就是对于时间序列数据的检索与分析。

活字格提供了两种日志数据库,并允许用户进行切换。
  • InfluxDB
  • ElasticSearch


InfluxDB

InfluxDB 是一个用 Rust 编写的时间序列数据库,以其易用性和轻量级性而闻名,适合大多数用户在中小型规模下的日志存储需求。默认情况下,活字格提供 InfluxDB 作为日志数据库。InfluxDB 作为活字格的底层依赖之一,会随着活字格服务器程序安装而默认安装。

ElasticSearch

当每天的日志数量达到一定数量后,InfluxDB 可能会面临性能瓶颈。因此,如果您的系统流量较大,请考虑选择使用 Elasticsearch 作为替代解决方案。Elasticsearch 是一个开源的、高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据。扩展性很好,可以轻松缩放规模,后文都会用 ES 来表示。
如果您希望构建自己专属的es集群,可以参考es官方文档:https://www.elastic.co/guide/en/ ... -elastic-stack.html

当您拥有了自己的 ES 服务后,可以在日志数据库页中进行切换。

数据库类型.png

如果您的 ES 集群关闭了 x-pack-security 功能,即使不使用身份校验也可以正常连接使用。不过从安全性出发,建议您的集群开启身份校验。

注意:本篇揭秘使用的测试环境并没有开启客户端到 ES 的加密,即仅通过 http 即可访问。如果您的 ES 为生产环境,强烈建议使用 https 的方式进行通信(这也是ES安装时默认的安全策略)。

配置ES后,可以单击“检查配置”按钮来测试与目标 ES 服务器的连接。
connect.png

配置成功后,点击「保存设置」,服务器会进行重启。需要留意:

  • 数据库类型的切换不仅仅是存储库的变化,许多底层依赖都会进行切换,所以服务重启会多花费一些时间。
    - 监控模块所调用的服务会进行切换;
    - 原本日志直接写入influxDB的方式会变化成通过 Filebeat 进行日志的搜集,然后推送至ES中。
  • 切换到ES作为数据库后,日志数据中将出现一些延迟(大约以秒为单位),因为Filebeat的日志收集过程引入了一定数量的延迟。
  • 为了保证兼容性,切换日志数据库并不会影响V10版本以前的应用,老版本的应用仍然会记录在文件日志中。

连接成功后,访问活字格的日志模块,如果正常显示日志记录,表示数据库切换成功。访问 ES的监控界面,也可以检索到活字格相关的index。
index.png

也可以在 Kibana(ES的可视化软件) 中对活字格的日志进行检索与分析。

log.png





0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部