kubernetes下用logstash代替efk中的fluentd

【EFK】基于K8S构建EFK+logstash+kafka日志平台 Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件; 阅读详情

前言

目前我们的系统架构,从阿里云的docker compose(swarm)迁移到了自建的kubernetes,而我们的日志系统也几经周折。从最开始的阿里云docker compose(swarm)环境下的elk + kafka,使用了一段时间后由于老板觉得阿里云的kafka收费价格不怎么划算,并且线上服务器的资源吃紧,然后切换到了阿里云的日志服务。线上切换到kubernetes以后,又使用efk搜集了一段时间日志,后来发现fluentd搜集的日志存在一些延迟问题和准确性问题,并且变更配置搜集特定的日志时较为繁琐,于是准备把fluentd换为logstash + rabbit,期间对比了下redis,rabbit和kafka,最终选择了在用的自建的rabbit集群,由于近期事情较多,精力有限,此文只会阐述关于logstash和rabbit相关使用的过程,关于rabbit自建集群,以及k8s的efk,以及elk搭建,后面会逐一补充。

简要步骤
  1. 编写logstash的配置文件logstash.conf 建议先在本地使用docker部署logstash,然后在本地进行测试,成功后再部署到kubernetes环境
input {
    rabbitmq {
      type => "app-log"
      host => "your rabbitmq host"
      user => "your user"
      password => "your password"
      port => 5672
      exchange => "exchange_logs"
      exchange_type => "direct"
      queue => "queue_logs"
      ack => false
      durable => true
    }
   }

   output {
    elasticsearch {
      hosts => ["elasticsearch.kube-ops:9200"]
      index => "logstash-%{type}-%{+YYYY.MM.dd}"
      document_type => "%{type}"
      flush_size => 20000
      idle_flush_time => 10
      template_overwrite => true
    }
    stdout {
        codec => rubydebug
    }
   }

output同时输出到es和控制台,便于调试
2. 编写logstash的k8s configMap:

kind: ConfigMap
apiVersion: v1
metadata:
  name: logstash-conf
  namespace: kube-ops
data:
  logstash.conf: |
   input {
    rabbitmq {
      type => "app-log"
      host => "rabbitmq...."
      user => "..."
      password => "..."
      port => 5672
      exchange => "exchange_logs"
      exchange_type => "direct"
      queue => "queue_logs"
      ack => false
      durable => true
    }
   }

   output {
    elasticsearch {
      hosts => ["elasticsearch.kube-ops:9200"]
      index => "logstash-%{type}-%{+YYYY.MM.dd}"
      document_type => "%{type}"
      flush_size => 20000
      idle_flush_time => 10
      template_overwrite => true
    }
    stdout {
        codec => rubydebug
    }
   }

执行

kubectl create -f logstash-configMap.yaml
  1. 建议在本地先使用docker进行调试,如果没有问题,则可以进行下一步,部署到k8s中
docker run -d  -v ~/a/docker/efk-deploy/1.7/bac/es2/qatrans/logstash/logstash.conf:/etc/logstash/logstash.conf  logstash:5.6.4 logstash -f /e
tc/logstash/logstash.conf
  1. 部署到k8s
    logstash.yaml如下:
apiVersion: v1
kind: Service
metadata:
  name: logstash
  namespace: kube-ops
spec:
  ports:
  - port: 5044
    targetPort: beats
  selector:
    type: logstash
  clusterIP: None
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: logstash
  namespace: kube-ops
spec:
  template:
    metadata:
      labels:
        type: logstash
    spec:
      containers:
      - image: anteoy/logstash:5.6.4
        name: logstash
        ports:
        - containerPort: 5044
          name: beats
        command:
        - logstash
        - '-f'
        - '/etc/logstash_c/logstash.conf'
        volumeMounts:
        - name: config-volume
          mountPath: /etc/logstash_c/
        resources:
          limits:
            cpu: 1000m
            memory: 2048Mi
          # requests:
          #   cpu: 512m
          #   memory: 512Mi
      volumes:
      - name: config-volume
        configMap:
          name: logstash-conf
          items:
          - key: logstash.conf
            path: logstash.conf

执行:

$ kubectl create -f logstash.yaml

参考

https://www.elastic.co/guide/en/logstash/current/plugins-inputs-rabbitmq.html
https://gist.github.com/dblessing/a9d5a68da56eb451553a

三十二、K8S容器日志收集-EFK 首先需要部署 Kafka 和 Logstash 至 Kubernetes 集群,如果企业内已经有比较成熟的技术栈,NOTES:NOTES:配置解析metadata:data:input {kafka {output {} else{需要注意文件中的一些配置:➢ input:数据来源,本次示例配置的是 Kakfa; 阅读详情

相关推荐

Kubernetes日志架构选型:为什么EFK替代ELK成为云原生标准

在云原生可观测性体系中,日志采集不是简单的工具堆叠,而是与容器生命周期深度耦合的基础设施能力。Logstash作为JVM进程,其高内存占用、慢启动和静态管道设计,与Kubernetes声明式、轻量化、短暂Pod生命周期的本质存在根本冲突;而Fluentd凭借低资源开销、原生K8s元数据注入(如labels/namespace自动打标)和DaemonSet弹性伸缩能力,成为事实标准的日志采集器。这种架构差异直接决定了EFK在生产环境的稳定性、可维护性与扩展性——它让日志采集从‘中间件’降维为‘平台原语’。本文

407

【Kubernetes】日志平台EFK+Logstash+Kafka【理论】

Filebeat是Beats中的一员。Beats包含六种工具:1、Packetbeat:网络数据(收集网络流量数据)2、Metricbeat:指标(收集系统、进程和文件系统级别的CPU和内存使用情况等数据)3、Filebeat:日志文件(收集文件数据)4、Winlogbeat:windows事件日志(收集Windows事件日志数据)5、Auditbeat:审计数据(收集审计日志)6、Heartbeat:运行时间监控(收集系统运行时的数据)

meidongyan的博客 1205

Kubernetes生产级EFK日志系统搭建实战:Elasticsearch 8.x+Fluentd+Kibana

在云原生环境中,Kubernetes日志管理是可观测性的基石。本文围绕EFK(Elasticsearch、Fluentd、Kibana)技术栈,深入解析其在动态容器环境下的核心原理:Fluentd如何通过Kubernetes Metadata Filter自动注入Pod元数据实现精准采集;Elasticsearch 8.x默认启用的TLS双向认证与X-Pack安全机制如何影响组件间通信;以及Kibana连接延迟、索引未分配、日志丢失等高频故障背后的真实根因。内容覆盖StatefulSet与DaemonSet

weixin_34167819的博客 433

部署基于efk+logstash+kafka构建日志收集平台并对nginx日志进行分析【待执行】

Filebeat采集日志kafka topic存起来日志->logstash去kafka获取日志,进行格式转换->elasticsearch->kibana。

Lenhart001的博客 1073

【Kubernetes】日志平台EFK+Logstash+Kafka【实战】

日志平台EFK+Logstash+Kafka

meidongyan的博客 1342

避坑指南:ShardingSphere连接达梦/金仓数据库时SQL解析器的那些‘坑‘

本文深入探讨了ShardingSphere与国产数据库(如达梦、金仓)集成时遇到的SQL解析器差异问题,提供了详细的解决方案和优化策略。通过分析SQL方言差异、JDBC实现差异及解析器兼容性,帮助开发者有效避坑,提升分布式数据库架构设计的效率与稳定性。

weixin_29309475的博客 392

Kubernetes环境中,使用Logstash同步Kafka消息至ES

摘要 本文主要记录内容: Logstash 安装使用(配合Kafka同步数据至ES) 使用Docker生成Logstash镜像 Kubernets 集群环境中运行 Logstash 1. Logstash 安装与使用 Logstash 版本地址:https://www.elastic.co/guide/en/logstash/7.6/releasenotes.html 截止2020-05-25,最新版本为7.6.2,这里选择安装 7.6.1 版本,版本详细内容请阅读 Release Note.

cui884658的博客 1649

用C#和MQTTnet在WinForm里做个简易物联网监控后台(附完整源码)

本文详细介绍了如何使用C#和MQTTnet库在WinForm中构建一个简易物联网监控后台。通过实战案例,包括环境配置、MQTT服务端实现、客户端监控功能及高级优化技巧,帮助开发者快速搭建高效的物联网监控系统,适用于工业自动化和智能家居场景。

weixin_29540599的博客 393

【Kubernetes 企业项目实战】04、基于 K8s 构建 EFK+logstash+kafka 日志平台(下)

基于 EFK+logstash+kafka 构建高吞吐量的日志平台

GG Bond 的博客 3726

【75】OpenCV C++实战篇——OpenCV 图像拼接、全景拼接(教程合集)

本文整理了OpenCV实现图像拼接的技术教程合集,涵盖C++和Python两种语言实现方案。图像拼接技术旨在将多张重叠图像融合为无缝全景图,既扩大视角又保持高分辨率。内容包含水平矫正等关键步骤(附对比效果图),提供多个实战案例的完整代码和详细讲解,涉及单应性矩阵、图像变换等核心技术。不同案例展示了从两张到多张图像的拼接效果,适合不同层次的学习者参考实践。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 528

嵌入式开发之瑞芯微RK356x--基本环境搭建

嵌入式环境搭建

NexyHO的博客 618

K8s搭建EFK 日志系统

前面大家介绍了 Kubernetes 集群中的几种日志收集方案,Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。Elasticsearch 通常与Kibana。

weixin_48386060的博客 833

18、Excel VBA编程:自定义函数创建与代码调试全攻略

本文详细介绍了Excel VBA中自定义函数的创建方法,以获取单元格注释为例演示了完整开发流程,并深入讲解了代码调试的重要性与核心工具。内容涵盖三种主要错误类型及其应对策略,系统介绍了调试工具栏、断点、逐行执行、Locals窗口、Immediate窗口等实用功能。通过综合案例展示了如何运用调试技术解决实际问题,并总结了提前规划、逐步测试、日志记录等最佳实践,帮助读者提升VBA编程效率与代码质量。

life6的博客 101

基于kubernetes-1.23.1搭建EFK

在k8s里搭建EFK日志收集组件

大风车儿的博客 21万+

LLM的MCP协议:初识MCP,搭建第一个MCP Server

MCP(Model Context Protocol),是一个开发的协议,标准化了应用程序如何为大模型提供上下文。MCP提供了一个标准的为LLM提供数据、工具的方式,使用MCP会更容易的构建Agent或者是基于LLM的复杂工作流。

Criss@陈磊 2万+

【学习系列】SAP RAP 29:如何创建Application Jobs(下)

本文介绍了在SAP系统中通过API创建和使用Application Jobs的方法。主要内容包括:1) 创建RAP应用并通过Action调用API创建Jobs;2) 使用事件驱动方式异步更新Job状态;3) 通过URL跳转到标准日志页面;4) 使用Custom Entity获取Job日志;5) 演示遗留接口IF_APJ_DT_EXEC_OBJECT和IF_APJ_RT_EXEC_OBJECT的使用。文章提供了详细的代码示例,展示了如何通过CL_APJ_RT_API=>SCHEDULE_JOB调度作业,

DeveloperMrMeng的博客 382

K8S日志收集EFK

基于云原生 12 要素开发的程序,一般会将日志直接输出到控制台,并非是指定一个文件存储日志,这一点和传统架构还是有区别的。但是公司内的程序并非都是基于云原生要素开发的,比如一些年代已久的程序,这类程序如果部署至 Kubernetes 集群中,就需要考虑如何将输出至本地文件的日志采集到Elasticsearch。

henanchenxuyuan的博客 1935

安装keil软件时安装不了芯片包怎么回事?芯片包安装路径放在Keill里的packs下面,弹框提示报错:Errors retumned from cpackget...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2207

k8s搭建EFK日志系统

前面大家介绍了 Kubernetes 集群中的几种日志收集方案,Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。是一个实时的、分布式的可扩展的搜索引擎,允许进行全文、结构化搜索,它通常用于索引和搜索大量日志数据,也可用于搜索许多不同类型的文档。Elasticsearch 通常与Kibana。

7B_Geek的博客 2422

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ELK 和 OpenShift 中的 EFK

但企业版的高级功能(如与 Red Hat Advanced Cluster Security 集成)可能闭源。:Fluentd 原生支持 K8s 元数据标签(如 Pod Name、Namespace)。失去 OpenShift 对 Fluentd 的默认支持(如自动标签注入)。:开源版本可用,但 OpenShift 可能集成企业版功能(如安全插件)。:Fluentd 的插件架构更灵活,适合云原生场景。:企业版可能扩展了开源 Fluentd 的功能。,但企业版可能包含增强功能(如安全审计)。

u011091936的博客 667

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ELK、EFK、Prometheus、SkyWalking、K8s的排列组合

EFK + K8s Prometheus+ K8s SkyWalking + K8s 这3个监控组合都非常不错,那在实际生产过程中,对一家中等规模的微服务业务应用,该如何选型呢? 如果企业采用spring + k8s技术栈,EFK + Prometheus + SkyWalking就是我推荐的监控三套件,这三个分别是日志、metrics和调用链监控的利器,社区生态好。 而CAT主要为物理机/虚拟机场景研发,容器环境应该也支持,但是文档资料较少。总体CAT是一个不错的产品,但是相对门槛较高,社区和文档不足.

JavaEdge全是干货的技术号 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Windows 系统优化:用 Sophia Script 三步搞定 Windows 11 LTSC 2024

**Sophia Script for Windows** 是一个用 PowerShell 做的 Windows 系统优化工具,把隐私保护、性能调优、界面定制都收进一个脚本里。适合刚装完系统想一次性整理配置的人,也适合已经用了一年、发现系统默认设置越看越烦的人。 ## 项目速览:一个开源的 Windows 微调脚本 Sophia Script for Windows 是[开源仓库](https

gitblog_00443的博客 201

k8s部署EFK实现日志管理(mac desktop)

k8s 日志管理系统

cbmljs的博客 1024

k8s Helm安装EFK

之前相信大家听过ELK工具栈,E: elasticsearch、L:logstash、K: kabana,其中logstash的缺点太重量级,Logstash性能低、资源消耗比较多、并且不支持消息队列缓存及存在数据丢失等问题,随后就有Fluentd出现,相比它更易用、资源消耗更少、性能更高,在数据处理上更高效可靠,受到企业欢迎,成为logstash的替代方案,亚马逊称其为数据收集的最佳方案EFK。2.1 helm安装elasticsearch。确认heml镜像源并更新镜像仓库。2. 快速安装EFK。...

别来沾边儿 600

EFK on Kubernetes

efk集群配置方案和建议 来解决导致集群负载过高问题。

gsdgdg00的博客 897
上一篇: 使用nginx解决k8s traefik中basic auth的跨域问题
下一篇: 使用 let's encrypt certbot部署https网站
anteoy
博客等级 码龄10年 24粉丝 83原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值