k8s部署elk+filebeat+logstash+kafka集群(二)kafka-zookeeper模式集群

k8s部署elk+filebeat;springCloud集成elk+filebeat+kafka+zipkin实现多个服务日志链路追踪聚合到es 如今2023了,大多数javaweb架构都是springboot微服务,一个前端功能请求后台可能是多个不同的服务共同协做完成的。例如用户下单功能,js转发到后台,然后到,然后到,然后到,后续还有发货、客户标签等等服务。其中每个服务会启动多个实例做负载均衡,这样一来我们想看这个功能的完成流程日志,需要找到对应的服务器ip,日志文件在哪,其中又要确定具体负载转发到哪些台服务器上了。 阅读详情
zookeeper集群部署

zookeeper使用官方镜像,版本为3.5,上传到镜像仓库

rbac

apiVersion: v1
kind: ServiceAccount
metadata:
  name: kafka
  namespace: elk
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: kafka
  labels:
    app: kafka-clusterrole
rules:
- apiGroups:
  - ""
  resources:
  - nodes
  - events
  - namespaces
  - pods
  verbs:
  - get
  - watch
  - list
- apiGroups:
  - ""
  resourceNames:
  - kafka-prospectors
  resources:
  - configmaps
  verbs:
  - get
  - update
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kafka
  labels:
    app: kafka-clusterrolebinding
roleRef:
  apiGroup: ""
  kind: ClusterRole
  name: kafka
subjects:
- apiGroup: ""
  kind: ServiceAccount
  name: kafka
  namespace: elk

zk集群

# cat zk-statefulset.yaml

apiVersion: v1
kind: Service
metadata:
  name: zk-svc
  namespace: elk
  labels:
    app: zk-cluster-svc
spec:
  selector:
    app: zookeeper-3.5
  type: ClusterIP
  clusterIP: None
  #publishNotReadyAddresses: true
  sessionAffinity: ClientIP
  ports:
  - name: clientport
    port: 2181
    protocol: TCP
    targetPort: 2181
  - name: select-port
    port: 3888
    protocol: TCP
    targetPort: 3888
  - name: leader-port
    port: 2888
    protocol: TCP
    targetPort: 2888
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: zk-statefulset
  namespace: elk
spec:
  podManagementPolicy: OrderedReady
  replicas: 3
  selector:
    matchLabels:
      app: zookeeper-3.5
  serviceName: zk-svc
  template:
    metadata:
      name: zk
      namespace: elk
      labels:
        app: zookeeper-3.5
    spec:
		  serviceAccountName: kafka
      containers:
      - name: kafka
        image: 3.127.33.174:8443/elk/zookeeper:3.5
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            memory: "1Gi"
            cpu: "256m"
        env:
        - name: NODE_ID
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: ZOO_SERVERS
          value: server.0=zk-statefulset-0.zk-svc:2888:3888;2181 server.1=zk-statefulset-1.zk-svc:2888:3888;2181 server.2=zk-statefulset-2.zk-svc:2888:3888;2181
        - name: ZOO_TICK_TIME
          value: "10000"
        - name: ZOO_DATA_LOG_DIR
          value: /data/log
        args: ["/bin/sh","-c","echo 'clientPort=2181' >> /conf/zoo.cfg; echo ${HOSTNAME##*-} > /data/myid; ./bin/zkServer.sh start-foreground"]
        ports:
        - name: clientport
          containerPort: 2181
          protocol: TCP
        - name: leaderport
          containerPort: 2888
          protocol: TCP
        - name: select-leader
          containerPort: 3888
          protocol: TCP
 volumeMounts:
        - name: zk-cluster-claim
          mountPath: /data
        - name: timezone
          mountPath: /etc/localtime
        livenessProbe:
          periodSeconds: 30
          tcpSocket:
            port: 2181
      volumes:
      - name: timezone
        hostPath:
          path: /etc/localtime
      tolerations:
      - key: node-role.kubernetes.io
        effect: NoSchedule
        operator: Equal
        value: master
      - effect: NoSchedule
        operator: Exists
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
              - key: node
                operator: In
                values:
                - master1
                - node1
  volumeClaimTemplates:
  - metadata:
      name: zk-cluster-claim
      namespace: elk
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        limits:
          storage: 5Gi
      storageClassName: zk-managed-nfs-storage
  updateStrategy:
    type: RollingUpdate

zk集群部署完毕
在这里插入图片描述

kafka集群部署

镜像依旧使用之前kraft模式构建的kafka镜像

# cat kafka-zk-statefulset.yaml

apiVersion: v1
kind: Service
metadata:
  name: kafka-zk-svc
  namespace: elk
  labels:
    app: kafka-cluster-svc
spec:
  selector:
    app: kafka-zk-2.8.0
  type: ClusterIP
  clusterIP: None
  #publishNotReadyAddresses: true
  sessionAffinity: ClientIP
  ports:
  - name: outer-port
    port: 9092
    protocol: TCP
    targetPort: 9092
  - name: cluster-port
    port: 9093
    protocol: TCP
    targetPort: 9093
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: kafka-zk-statefulset
  namespace: elk
spec:
  podManagementPolicy: OrderedReady
  serviceName: kafka
  replicas: 3
  selector:
    matchLabels:
      app: kafka-zk-2.8.0
  serviceName: kafka-zk-svc
  template:
    metadata:
      name: kafka-zk
      namespace: elk
      labels:
        app: kafka-zk-2.8.0
    spec:
      serviceAccountName: kafka
      containers:
      - name: kafka-zk
        image: 3.127.33.174:8443/elk/kafka:2.8.0
        imagePullPolicy: IfNotPresent
        resources:
          limits:
            memory: "4Gi"
            cpu: "512m"
        env:
        - name: NODE_ID
          valueFrom:
            fieldRef:
              fieldPath: metadata.name
        - name: KAFKA_HEAP_OPTS
          value: -Xmx1G -Xms1G
        - name: HOST_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        command: ["/bin/bash","-c"]
        args: ["/kafka/start-kafka.sh"]
        ports:
        - name: interactiveport
          containerPort: 9092
          protocol: TCP
        - name: controlport
          containerPort: 9093
          protocol: TCP
        volumeMounts:
        - name: kafka-cluster-claim
          mountPath: /kafka/kafka-zk-logs/
        - name: config
          mountPath: /kafka/start-kafka.sh
          subPath: start-kafka.sh
        - name: timezone
          mountPath: /etc/localtime
        livenessProbe:
          periodSeconds: 15
          tcpSocket:
            port: 9092
      volumes:
      - name: config
        configMap:
          defaultMode: 493
          name: kafka-zk-configmap
      - name: timezone
        hostPath:
          path: /etc/localtime
      tolerations:
      - key: node-role.kubernetes.io
        effect: NoSchedule
        operator: Equal
        value: master
      - effect: NoSchedule
        operator: Exists
      affinity:
        nodeAffinity:
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
              - key: node
                operator: In
                values:
                - master1
                - node1
  volumeClaimTemplates:
  - metadata:
      name: kafka-cluster-claim
      namespace: elk
    spec:
      accessModes:
      - ReadWriteMany
      resources:
        limits:
          storage: 60Gi
        requests:
          storage: 40Gi
      storageClassName: kafka-zk-managed-nfs-storage
  updateStrategy:
    type: RollingUpdate

查看运行状态kubectl get pods -n elk | grep zk
在这里插入图片描述进入kafka执行相关操作进行验证
kafka常用主题命令
查看操作主题命令参数

 --bootstrap-server <String: server toconnect to>
    
    连接kafka broker主机名称和端口号
    
 --topic <String: topic>
    
    操作的topic名称
    
 --create
    
    创建主题
    
 --delete
    
    删除主题
    
 --alter
    
    修改主题
    
 --list
    
    查看所有主题
    
 --describe
    
    查看主题详细描述
    
 --partitions <Integer: # of partitions>
    
    设置分区数
    
 --replication-factor <Integer: replication factor>
    
    设置分区副本
    
 --config <String: name=value>
    
ELK部署(filebeat+kafka+logstash+elasticsearch+kibana) filebeat+kafka+logstash+elasticsearch+kibana 备注:资源有限,仅做kafka集群,其他服务做单点。 阅读详情

相关推荐

k8s部署elk+filebeat

k8s部署elk+filebeat 第一步elasticsearch集群 cat elasticsearch.yaml apiVersion: v1 kind: Service metadata: name: elasticsearch namespace: kafka labels: k8s-app: elasticsearch spec: ports: name: transport p...

wangzhongtao1314的博客 2493

在k8s集群部署ELK

使用kubeadm或者其他方式部署一套k8s集群。在k8s集群创建一个namespace:halashow。

jialiu111111的博客 3497

Kubernetes_19_使用Elastic Stack收集应用容器日志

背景介绍 日志,对于任何系统来主都是及其重要的组成部分,在计算机系统里,更是如此,但由于现在的计算机系统比较复杂,很多系统都不是在同一个地方,甚至是跨国界的;即使是在一个地方的系统,也有不同的来源,比如,操作系统,应用服务,业务逻辑等。他们都在不停产生各种各样的日志数据。根据不完全统计,全球每天大约要产生2EB的数据。 K8S 系统里的业务应用是高度“动态化”的,随着容器编排的进行,业务容器在不断的被创建、迁移、扩容等,想要统一管理这些日志,不能使用常规手段完成。 面对如此海量的数据,又是分布在各个不同的地

186

k8s部署elk+filebeat+logstash+kafka集群(一)ES集群+kibana部署

这次是在部署后很久才想起来整理了下文档,如有遗漏见谅,期间也遇到过很多坑有些目前还没头绪希望有大佬让我学习下

filtercomp的博客 3215

基于Kubernetes的ELK日志系统完整部署方案(含Kafka与Filebeat)

在云原生技术快速发展的背景下,基于Kubernetes的日志管理已成为构建可观测性体系的核心环节。本章深入解析ELK(Elasticsearch、Logstash、Kibana)技术栈在K8s环境中的整体架构设计原理,阐明其与容器化环境深度融合的必要性。ELK在Kubernetes中通常以分层架构运行:Filebeat作为边车或DaemonSet采集Pod日志,输出至Kafka实现解耦缓冲;Logstash消费Kafka消息,完成结构化解析后写入Elasticsearch集群;

weixin_34640289的博客 543

ELK系列之四---如何通过Filebeat和Logstash优化K8S集群的日志收集和展示

在ELK Stack组件中,有logstash和filebeat都可以实现日志收集,因为filebeat更轻量化,在K8S集群中通常使用filebeat来收集pod的日志,通过daemonSet控制器在每个K8S每个节点上运行一个filebeat来收集每个节点上的pod日志,filebeat官网图如下,filebeat输出支持对接Elasticsearch、Logstash、Kafka、Redis,本文选择对接Kafka,先缓存filebeat收集的日志,这样可以减少对ES的性能要求。

gjjumin的专栏 2520

深入解析以太网接口中的BOB Smith电路设计

本文深入解析以太网接口中的BOB Smith电路设计,详细介绍了其在共模噪声抑制、浪涌防护和EMI优化中的关键作用。通过实际案例和设计要点,帮助工程师正确选择75Ω电阻和高压电容等元件,优化PCB布局,解决电压型与电流型PHY的设计差异,以及千兆与百兆以太网的特殊考量。

weixin_28339967的博客 687

kubernetes上部署ELK集群

一、系统架构 IP 角色 主机名 192.168.1.3 master master1 192.168.1.4 master master2 192.168.1.5 master master3 192.168.1.6 node node1 192.168.1.7 node node2 二、创建StorageClass和Namespace 1、创建StorageClass [root@master1 ~]# mkdir -p /elk/{master,data,clien

你说亮不亮的博客 5895

webpack性能优化-optimization.splitChunks.chunks中的“all“、“async“和“initial“

最初,chunks(以及内部导入的模块)是通过内部 webpack 图谱中的父子关系关联的。CommonsChunkPlugin 曾被用来避免他们之间的重复依赖,但是不可能再做进一步的优化。 ——摘自 webpack 从 webpack v4 开始,移除了 CommonsChunkPlugin,取而代之的是 optimization.splitChunks。 而关于 optimization.splitChunks 中的chunks,webpack 官方文档却没有很好的进行举例解释,只说明了 async.

程序员秋风的博客 3137

Coze平台智能体开发实战:打造测试工程师的AI助手

智能体是具备特定身份和能力的AI实体,由大语言模型(LLM)驱动,并通过插件、知识库和工作流扩展其能力。明确的角色定位:可以设定特定身份和专业领域扩展能力:通过插件连接外部工具和服务记忆能力:通过知识库存储和检索专属信息流程化处理:通过工作流执行复杂多步任务通过Coze平台创建测试工程师智能体,可以显著提升测试效率和质量。明确的角色定位:聚焦测试工程师的实际需求丰富的知识库:提供准确的领域知识支持合适的工具集成:通过插件连接现有工具链持续迭代优化:根据反馈不断改进智能体行为自动化测试生成。

hogwarts_beibei的博客 1005

ELK+filebeat+kafka

基于观察者模式设计的分布式结构,负责存储和管理架构当中的元信息,架构当中的应用接受观察者的监控,一旦数据有变化,通知对应的zookeeper,保存变化的信息。3、统一集群管理,在整个分布式的环境中,必须实时的掌握每个节点的状态,如果状态发生变化,要及时更新。1、点对点,一对一,生产者生产消息,消费者消费消息,这个是一对一的。消息的生产者发布一个主题,其他的消费者订阅这个主题,从而实现一对多。经纪人:zookeeper,存储分区的信息,kafka集群的元数据。2、统一配置管理,所有的节点信息的配置要是一致。

2401_85041083的博客 1411

SAP MM采购合同创建全解析:ME31K操作与后台逻辑

在SAP ERP的物料管理模块中,采购合同作为框架协议的核心,定义了企业与供应商之间的长期供货关系。它与采购订单不同,合同不直接产生收货或发票,而是为后续采购订单提供数据源。创建合同(事务码ME31K)时,需要区分数量合同与金额合同,并维护抬头、行项目、有效期、价格条件和税码等关键信息。SAP通过源确定机制在创建采购订单时自动匹配合同,同时审批策略、编码范围和输出类型也会影响合同的实际可用性。掌握合同创建逻辑,能有效解决采购订单无法带出合同、审批未触发、价格缺失等高频问题。从ME31K实操出发,系统梳理采购

weixin_30000735的博客 196

kubernetes部署ELK-7.17.5集群及配置X-Pack认证

kibana安装在k8s232.tom.com节点,nodeport映射的端口为30002,所以访问http://10.0.0.232:30002。(PDB)是Kubernetes中的一种资源对象,用于确保在进行维护、升级或其他操作时,系统中的Pod不会被意外中断或终止。#这里修改cluster1.zk.list,kafka.eagle.url=jdbc:mysql 里面的值为自己的值。浏览器输入: http://10.0.0.234:30048/ke。账号:admin 密码:123456。

1337

全国区块链职业技能大赛国赛考题前端功能开发

全国区块链职业技能大赛国赛考题区块链应用前端功能开发

本郡主是喵 1333

14003.xilinx系统移植

文章目录1 xilinx 系统移植 sd卡版本1.1 创建项目1.2 拷贝 *.hdf 到工程目录1.3 根据hdf文件对系统进行配置1.3.1 设置内核源码路径为本地1.3.2 设置分区的名称与大小1.4 清除本地缓存并编译成功1.5 打包生成BOOT.BIN并拷贝到sd卡1.6 问题1.7 系统启动成功1.8 配置设备树文件丰富系统外设 1 xilinx 系统移植 sd卡版本 芯片型号 ZYNQ UltraScale+ XAZU2EG ,对应厂家提供的demo板为 zu102或zu104 1.1 创建

写给自己的笔记 481

企业级日志平台实战:ELK + Filebeat + Kafka + ZooKeeper

将关键词对应到文档的索引结构ES 用它实现快速全文检索是 Elasticsearch 高性能的核心你搭建的是企业最标准的 ELFK 架构plaintext日志 → Filebeat → Kafka → Logstash → Elasticsearch → Kibana轻量采集(Filebeat)流量削峰(Kafka)协调服务(ZK)清洗格式化(Logstash)分布式存储(ES)可视化展示(Kibana)

m0_63182928的博客 533

本地快速部署谷歌开放模型Gemma教程(基于Ollama)

谷歌最近发布了新一代开源AI模型Gemma,此次发布的 Gemma 相比自家的 Gemini 更加轻量级,模型权重也一并开源。不仅可以在笔记本电脑上运行,而且还免费可商用,支持中文。运行速度飞快。

特立独行的博客 6716

【云原生-kubernetes系列】--kubernetes日志收集

使用sidecar容器(一个pod多容器)收集当前pod内一个或者多个业务容器的日志(通常基于emptyDir实现业务容器与sidcar之间的日志共享)

weixin_58519482的博客 1749

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

ELK日志管理实现的3种常见方法

通过将node节点的/var/log/pods目录挂载给以DaemonSet方式部署的logstash来读取容器日志,并将日志吐给kafka并分布写入Zookeeper数据库.再使用logstash将Zookeeper中的数据写入ES,并通过kibana将数据进行展示.标准日志和错误日志:标准日志 -->/dev/stdout错误日志 ----> /dev/stderr。

Q先生 1612

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

elk7.10.2分布式集群安装(docker版)

elk7.10.2分布式集群安装(docker版) 结构设计 首先,logstash 具有日志采集、过滤、筛选等功能,功能完善但同时体量也会比较大,消耗系统资源自然也多。filebeat作为一个轻量级日志采集工具,虽然没有过滤筛选功能,但是仅仅部署在应用服务器作为我们采集日志的工具可以是说最好的选择。但我们有些时候可能又需要logstash的过滤筛选功能,所以我们在采集日志时用filebeat,然后交给logstash过滤筛选。 其次,logstash的吞吐量是有限的,一旦短时间内fileb.

leveretz的博客 1081

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

容器部署ELK7.10,适用于生产

一、elk架构简介首先 logstash 具有日志采集、过滤、筛选等功能,功能完善但同时体量也会比较大,消耗系统资源自然也多。filebeat作为一个轻量级日志采集工具,虽然没有过滤筛选...

qq_24794401的博客 889

elk系统-filebeat-kafka-logstash-es-kibana

说明 elk01 (192.168.66.28) jdk-8u181-linux-x64.tar.gz logstash-7.4.1.rpm kibana-7.4.1-x86_64.rpm elasticsearch-7.4.1-x86_64.rpm zookeeper-3.4.14.tar.gz kafka_2.12-2.3.0.tgz elk02 (192.168.66.81) jdk-8u181-linux-x64.tar.gz logstash-7.4.1.rpm kibana-

wuxingge的博客 278

ELK企业级日志分析平台

server1配置好后,直接把配置复制到server2和server3。server2和server3软件安装。elasticsearch集群角色分类。节点地址可以填写任意ES集群节点ip。ELK企业级日志分析平台。从server1复制配置。server2上启动服务。server3上启动服务。使用docker启动服务。

2303_80199544的博客 204

kubeode在k8s上的设计与规划

在k8s部署elk集群,主要是解决测试和生产需要,k8s部署elk的好处是支持扩缩容,方便部署。以下是一些开发的部署思路和大家分享: 在k8s 上面部署elk集群主要是有以下几个步骤: 1、创建storageclass和ns 2、部署ES集群: 1)、部署master节点和data节点。 2)、部署Client节点 3)、创建ES集群的service 4)、设置ES集群密码 3、部署Kibana 4、部署zookeeper/ka

u011005003的博客 363

Kafka在大数据架构中的核心应用与优化实践

分布式消息队列是现代大数据架构的关键组件,通过解耦生产者和消费者实现系统弹性扩展。Kafka作为高性能消息中间件,其分区机制和日志存储结构支撑了百万级TPS的吞吐能力,在实时数据管道、微服务通信等场景表现卓越。本文结合电商大促和金融支付等真实案例,详解Kafka在削峰填谷、最终一致性事务中的工程实践,包括生产者ACK机制、消费者组负载均衡等核心配置,并对比RabbitMQ等消息队列的选型差异。针对性能优化,提供了网络线程调优、消息压缩等实战技巧,帮助开发者构建高可靠的大数据消息枢纽。

weixin_34209851的博客 382
上一篇: k8s部署elk+filebeat+logstash+kafka集群(二)kafka-kraft模式集群
下一篇: k8s部署elk+filebeat+logstash+kafka集群(三)filebeat部署
filtercomp
博客等级 码龄5年 33粉丝 14原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值