你们项目日志是如何处理的???

ELK日志采集系统

1.什么是ELK

ELK 是一套流行的数据搜索、分析和可视化解决方案,由三个开源项目组成,每个项目的首字母合起来形成了"ELK"这一术语:

  1. Elasticsearch (ES):

    1. Elasticsearch 是一个基于 Apache Lucene 构建的分布式、实时搜索与分析引擎。它能够索引、搜索和分析大量数据,并且提供了水平扩展能力,允许处理 PB 级别的数据。Elasticsearch 适合用于全文搜索、日志分析、监控指标聚合等多种场景,其 RESTful API 让数据的索引和查询变得非常便捷。
  2. Logstash (LS):

    1. Logstash 是一个动态数据收集管道,用于从各种数据源接收、解析、转换并将数据发送到"stash"(例如 Elasticsearch)。它可以收集来自服务器日志、数据库、应用程序、网络设备等各种源头的日志数据,并对这些数据进行清洗、标准化和丰富,以便于后续分析。
  3. Kibana (KB):

    1. Kibana 是一个开源的数据可视化工具,专为 Elasticsearch 设计,提供了一个用户友好的 Web 界面,使得用户可以轻松地搜索、查看和分析 Elasticsearch 中存储的数据。借助 Kibana,用户可以创建仪表板、图表和其他可视元素,对数据进行深度探索,同时支持实时数据分析和交互式操作。

结合起来,ELK Stack(现在通常称为 Elastic Stack,随着 Beats 等其他组件的加入)为用户提供了一站式的日志管理和分析平台,适用于 IT 监控、安全分析、业务智能等多个领域,能够高效地收集、索引、搜索和展现大规模的日志及监控数据。

2.EFK

在 ELK(Elasticsearch、Logstash、Kibana)堆栈中,Filebeat 通常被用来替代 Logstash 作为日志收集代理,这是因为 Filebeat 相对于 Logstash 来说更为轻量级,资源消耗较小,尤其适合于边缘节点或者资源有限的服务器上收集日志数据。

Filebeat 主要功能如下:

  • 轻量化:Filebeat 专注于日志文件的读取与传输,相对于 Logstash 具有更多的模块化设计和较低的CPU和内存开销。

  • 模块化:Filebeat 提供了预定义的模块来简化日志收集过程,这些模块针对特定类型的应用程序日志进行了优化配置,简化了日志格式解析的过程。

  • 传输:Filebeat 可以直接将收集到的日志数据发送到 Elasticsearch 或者先发送到中间传输层,如 Redis 或 Kafka,然后再由 Logstash 或者其他组件进行进一步处理和索引。

我们采用的是EFK,我们将应用通过docker部署,通过应用的配置文件以及EFK的配置文件(配置单个日志文件的大小通常是100MB,日志留存时间,日志文件的个数等等),指定日志挂载的位置,然后通过FileBeat读取指定目录下的日志文件并将其存到ES中,最后可以通过Kibina绑定ES的索引进行可视化的数据显示。

相关推荐
小蜗牛慢慢爬行38 分钟前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
hanbarger42 分钟前
nosql,Redis,minio,elasticsearch
数据库·redis·nosql
微服务 spring cloud1 小时前
配置PostgreSQL用于集成测试的步骤
数据库·postgresql·集成测试
先睡1 小时前
MySQL的架构设计和设计模式
数据库·mysql·设计模式
弗罗里达老大爷1 小时前
Redis
数据库·redis·缓存
孤水寒月1 小时前
Git忽略文件.gitignore
git·elasticsearch
仰望大佬0072 小时前
Avalonia实例实战五:Carousel自动轮播图
数据库·microsoft·c#
学不透java不改名2 小时前
sqlalchemy连接dm8 get_columns BIGINT VARCHAR字段不显示
数据库
一只路过的猫咪2 小时前
thinkphp6使用MongoDB多个数据,聚合查询的坑
数据库·mongodb