当前位置: 首页 > web >正文

日志ELK、ELFK、EFK

一.ELK架构

Elasticsearch + Logstash + Kibana
数据库+日志处理+日志显示

1.logstash的使用

(1)input:输入

(2)filter:处理

(3)output:输出

2.ELFK架构

Filebeat-->Elasticsearch-->Logstash-->Kibana

Filebeat 部署在节点上轻量采集日志,Logstash 集中处理。

ELK 的弊端:

  • NFS数据共享会成为流量瓶颈,不适合大规模集群

  • 是否可以在每台 Web 服务器上安装 Logstash

    • Logstash占用资源多,在节点部署会争抢应用的资源

ELFK 优势:

  • Filebeat占用资源非常小,可以在所有节点部署

  • 在每台Web服务器上安装客户端,通过网络发送日志,没有单点故障,没有流量瓶颈

filebeat的配置文件

test可以设置为业务名

filebeat直接区分不同服务的日志

示例filebeat:

filebeat.inputs:- type: filestreamid: oss-logspaths:- /var/oss/*.logfields:log_source: "oss"fields_under_root: true- type: filestreamid: dps-logspaths:- /var/dps/*.logfields:log_source: "dps"fields_under_root: trueoutput.logstash: # 输出到 Logstashhosts: ["your-logstash-host:5044"] # 替换为 Logstash 地址

示例logstash:

# 例如在 /etc/logstash/conf.d/ 下创建 log_processing.conf
input {beats {port => 5044}
}filter {# 此处可添加任意过滤解析规则,如Grok解析消息体:cite[10]# 所有日志都会经过这里
}output {# 根据 log_source 字段值判断输出到哪个索引if [log_source] == "oss" {elasticsearch {hosts => ["http://your-es-host:9200"] #Elasticsearchindex => "oss-logs-%{+YYYY.MM.dd}" # 定义OSS索引格式}} else if [log_source] == "dps" {elasticsearch {hosts => ["http://your-es-host:9200"]index => "dps-logs-%{+YYYY.MM.dd}" # 定义DPS索引格式}}# 可选: stdout { codec => rubydebug } # 调试时可在终端输出结果
}

kibana查看索引日志


(1)查看filebeat采集过来的日志

可以查看到索引日志说明成功采集过来了

(2)创建数据视图,查看日志

(3)选择创建了哪些数据视图(不同业务日志)

(4)日志检索

3.EFK架构


FluentdFluent-bit 替代 Logstash,资源占用极低(<10MB),支持插件扩展。

Fluent-bit 更适合容器环境,如 Kubernetes 中的 DaemonSet 部署

ELFK 的弊端:

  • ELFK 组件较多,需要配置 Logstash 处理数据

  • Logstash 体积大,占用资源多,不适用放在容器内运行

EFK 优势:

  • Fluent 整合了 Filebeat 和 Logstash 的功能

  • Fluent 组件更少,占用资源更小,非常适合容器部署

  • 容器部署的优选方案

http://www.xdnf.cn/news/19403.html

相关文章:

  • 快速学习和掌握Jackson 、Gson、Fastjson
  • AI + 行业渗透率报告:医疗诊断、工业质检领域已进入规模化落地阶段
  • GD32入门到实战20--定时器
  • 【LeetCode】大厂面试算法真题回忆(122) —— 篮球比赛
  • react性能优化有哪些
  • SSR降级CSR:高可用容灾方案详解
  • Android中handler机制
  • 【Android】JSONObject和Gson的使用
  • HTTP的概念、原理、工作机制、数据格式和REST
  • 《C++——makefile》
  • 三重积分的性质
  • 【MATLAB绘图进阶教程】(2-6)动态绘图制作详解与例程,包括drawnow、pause、getframe、video write等命令
  • 机器学习时间序列算法进行随机划分数据是不合适的!
  • Dify1.8.0最新版本安装教程:Ubuntu25.04系统本地化安装部署Dify详细教程
  • 移动零,leetCode热题100,C++实现
  • IP-Guard支持修改安全区域密级文字和密级级数
  • 嵌入式学习日记(38)HTTP
  • Java学习笔记-多线程基础
  • Kafka 4.0 生产者配置全解析与实战调优
  • Go语言流式输出实战:构建高性能实时应用
  • 数据结构(力扣刷题)
  • 蜂窝通信模组OpenCPU的介绍
  • REST-assured获取响应数据详解
  • 手写链路追踪优化-自动全局追踪代替局部手动追踪
  • 做一个实用的节假日工具
  • Java面试-spring boot框架
  • 98、23种设计模式之代理模式(7/23)
  • 【SpringMVC】SSM框架【二】——SpringMVC超详细
  • ModuleNotFoundError: No module named ‘cairosvg‘
  • 浔川社团阅读量破历史记录