本帖最后由 Gerald.Zhang 于 2024-3-5 18:32 编辑
在了解了日志模块中的强大功能后,我们来看一下,这些功能背后,所有的日志数据是如何存储的。
日志数据库
日志本身是通过文件的方式进行存储的。但是日志文件本身很难进行解析。因此,诞生了专门用于存储、查询和分析日志数据的数据库。
不同于咱们经常接触到的结构化数据,日志数据通常是由各种系统、应用程序、网络设备等生成的时间序列数据,它们记录了各种事件的发生情况,比如用户操作、系统错误、网络请求等等。因此,对于日志数据库来说,其最大的能力体现就是对于时间序列数据的检索与分析。
活字格提供了两种日志数据库,并允许用户进行切换。
InfluxDB
InfluxDB 是一个用 Rust 编写的时间序列数据库,以其易用性和轻量级性而闻名,适合大多数用户在中小型规模下的日志存储需求。默认情况下,活字格提供 InfluxDB 作为日志数据库。InfluxDB 作为活字格的底层依赖之一,会随着活字格服务器程序安装而默认安装。
ElasticSearch
当每天的日志数量达到一定数量后,InfluxDB 可能会面临性能瓶颈。因此,如果您的系统流量较大,请考虑选择使用 Elasticsearch 作为替代解决方案。Elasticsearch 是一个开源的、高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据。扩展性很好,可以轻松缩放规模,后文都会用 ES 来表示。
当您拥有了自己的 ES 服务后,可以在日志数据库页中进行切换。
如果您的 ES 集群关闭了 x-pack-security 功能,即使不使用身份校验也可以正常连接使用。不过从安全性出发,建议您的集群开启身份校验。
注意:本篇揭秘使用的测试环境并没有开启客户端到 ES 的加密,即仅通过 http 即可访问。如果您的 ES 为生产环境,强烈建议使用 https 的方式进行通信(这也是ES安装时默认的安全策略)。
配置ES后,可以单击“检查配置”按钮来测试与目标 ES 服务器的连接。
配置成功后,点击「保存设置」,服务器会进行重启。需要留意:
- 数据库类型的切换不仅仅是存储库的变化,许多底层依赖都会进行切换,所以服务重启会多花费一些时间。
- 监控模块所调用的服务会进行切换;
- 原本日志直接写入influxDB的方式会变化成通过 Filebeat 进行日志的搜集,然后推送至ES中。 - 切换到ES作为数据库后,日志数据中将出现一些延迟(大约以秒为单位),因为Filebeat的日志收集过程引入了一定数量的延迟。
- 为了保证兼容性,切换日志数据库并不会影响V10版本以前的应用,老版本的应用仍然会记录在文件日志中。
连接成功后,访问活字格的日志模块,如果正常显示日志记录,表示数据库切换成功。访问 ES的监控界面,也可以检索到活字格相关的index。
也可以在 Kibana(ES的可视化软件) 中对活字格的日志进行检索与分析。
|