纳尼?自建K8s集群日志收集还能通过JMQ保存到JES

news/2025/11/3 17:26:42/文章来源:https://www.cnblogs.com/Jcloud/p/19187707

一、背景

基于K8s集群的私有化交付方案中,日志收集采用了ilogtail+logstash+kafka+es方案,其中ilogtail负责日志收集,logstash负责对数据转换,kafka负责对日志传递中的消峰进而减少es的写入压力,es用来保存日志数据。在私有化交付中本方案中涉及的中间件一般需要单独部署,但是在京东内网环境的部署考虑到kafka和es的高可用,则不推荐采用单独部署的方案。

二、新方案实践

1.新方案简介

在京东内网环境部署K8S收集日志, kafka+es的替代方案考虑使用JMQ+JES,由于JMQ的底层是基于kafaka、JES的底层基于ES,所以该替换方案理论上是可行的

2.主要架构

数据流向大致如下
应用日志 -> ilogtail -> JMQ -> logstash -> JES

3.如何使用

核心改造点汇总

  1. ilogtail nameservers配置
    增加解析JMQ域名的nameserver(京东云主机上无法直接解析.local域名)

spec:spec:dnsPolicy: "None"dnsConfig:nameservers:- x.x.x.x # 可以解析jmq域名的nameserver
  1. ilogtail flushers配置
    调整发送到JMQ到配置

apiVersion: v1
kind: ConfigMap
metadata:name: ilogtail-user-cmnamespace: elastic-system
data:app_stdout.yaml: |flushers:- Type: flusher_stdoutOnlyStdout: true- Type: flusher_kafka_v2Brokers:- nameserver.jmq.jd.local:80 # jmq元数据地址Topic: ai-middle-k8s-log-prod # jmq topic ClientID: ai4middle4log # Kafka的用户ID(识别客户端并设置其唯一性),对应jmq的Group名称,重要‼️ (https://ilogtail.gitbook.io/ilogtail-docs/plugins/input/service-kafka#cai-ji-pei-zhi-v2)   
  1. logstash kafka&es配置

apiVersion: v1
kind: ConfigMap
metadata:name: logstash-confignamespace: elastic-systemlabels:elastic-app: logstash
data:logstash.conf: |-input {kafka {bootstrap_servers => ["nameserver.jmq.jd.local:80"] #jmq的元数据地址group_id => "ai4middle4log" # jmq的Group的名称client_id => "ai4middle4log" # jmq的Group的名称,即jmq的省略了kafka中的client_id概念,用Group名称代替consumer_threads => 2decorate_events => truetopics => ["ai-middle-k8s-log-prod"] # jmp的topicauto_offset_reset => "latest"codec => json { charset => "UTF-8" }}}output {elasticsearch {hosts => ["http://x.x.x.x:40000","http://x.x.x.x:40000","http://x.x.x.x:40000"] # es地址index =>  "%{[@metadata][kafka][topic]}-%{+YYYY-MM-dd}" # 索引规则user => "XXXXXX" #jes的用户名password => "xxxxx" #jes的密码ssl => "false"ssl_certificate_verification => "false"}}

ilogtail 的配置如下

# ilogtail-daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:name: ilogtail-dsnamespace: elastic-systemlabels:k8s-app: logtail-ds
spec:selector:matchLabels:k8s-app: logtail-dstemplate:metadata:labels:k8s-app: logtail-dsspec:dnsPolicy: "None"dnsConfig:nameservers:- x.x.x.x # (京东云主机上)可以解析jmq域名的nameservertolerations:- operator: Exists                    # deploy on all nodescontainers:- name: logtailenv:- name: ALIYUN_LOG_ENV_TAGS       # add log tags from envvalue: _node_name_|_node_ip_- name: _node_name_valueFrom:fieldRef:apiVersion: v1fieldPath: spec.nodeName- name: _node_ip_valueFrom:fieldRef:apiVersion: v1fieldPath: status.hostIP- name: cpu_usage_limit           # iLogtail's self monitor cpu limitvalue: "1"- name: mem_usage_limit           # iLogtail's self monitor mem limitvalue: "512"image: dockerhub.ai.jd.local/ai-middleware/ilogtail-community-edition/ilogtail:1.3.1imagePullPolicy: IfNotPresentresources:limits:cpu: 1000mmemory: 1Girequests:cpu: 400mmemory: 384MivolumeMounts:- mountPath: /var/run                       # for container runtime socketname: run- mountPath: /logtail_host                  # for log access on the nodemountPropagation: HostToContainername: rootreadOnly: true- mountPath: /usr/local/ilogtail/checkpoint # for checkpoint between container restartname: checkpoint- mountPath: /usr/local/ilogtail/user_yaml_config.d # mount config dirname: user-configreadOnly: true- mountPath: /usr/local/ilogtail/apsara_log_conf.jsonname: apsara-log-configreadOnly: truesubPath: apsara_log_conf.jsondnsPolicy: ClusterFirsthostNetwork: truevolumes:- hostPath:path: /var/runtype: Directoryname: run- hostPath:path: /type: Directoryname: root- hostPath:path: /etc/ilogtail-ilogtail-ds/checkpointtype: DirectoryOrCreatename: checkpoint- configMap:defaultMode: 420name: ilogtail-user-cmname: user-config- configMap:defaultMode: 420name: ilogtail-apsara-log-config-cmname: apsara-log-config
# ilogtail-user-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: ilogtail-user-cmnamespace: elastic-system
data:app_stdout.yaml: |enable: trueinputs:- Type: service_docker_stdoutStderr: trueStdout: trueK8sNamespaceRegex: ai-trainExternalK8sLabelTag:platform/resource-name: k8s_label_resource-nameplatform/task-identify: k8s_label_task-identifytask-id: k8s_label_task-idrun-id: k8s_label_run-idrequest-id: k8s_label_request-idprocessors:- Type: processor_renameSourceKeys:- k8s_label_resource-name- k8s_label_task-identify- k8s_label_task-id- k8s_label_run-id- k8s_label_request-id- _namespace_- _image_name_- _pod_uid_- _pod_name_- _container_name_- _container_ip_- __path__- _source_DestKeys:- resource_name- task_identify- task_id- run_id- request_id- namespace- image_name- pod_uid- pod_name- container_name- container_ip- path- sourceflushers:- Type: flusher_stdoutOnlyStdout: true- Type: flusher_kafka_v2Brokers:- nameserver.jmq.jd.local:80 # jmq元数据地址Topic: ai-middle-k8s-log-prod # jmq topic ClientID: ai4middle4log # Kafka的用户ID(识别客户端并设置其唯一性),对应jmq的Group名称,重要‼️ (https://ilogtail.gitbook.io/ilogtail-docs/plugins/input/service-kafka#cai-ji-pei-zhi-v2)app_file_log.yaml: |enable: trueinputs:- Type: file_logLogPath: /export/Logs/ai-dt-algorithm-toolsFilePattern: "*.log"ContainerInfo:K8sNamespaceRegex: ai-trainExternalK8sLabelTag:platform/resource-name: k8s_label_resource-nameplatform/task-identify: k8s_label_task-identifytask-id: k8s_label_task-idrun-id: k8s_label_run-idrequest-id: k8s_label_request-idprocessors:- Type: processor_add_fieldsFields:source: file- Type: processor_renameSourceKeys:- __tag__:k8s_label_resource-name- __tag__:k8s_label_task-identify- __tag__:k8s_label_task-id- __tag__:k8s_label_run-id- __tag__:k8s_label_request-id- __tag__:_namespace_- __tag__:_image_name_- __tag__:_pod_uid_- __tag__:_pod_name_- __tag__:_container_name_- __tag__:_container_ip_- __tag__:__path__DestKeys:- resource_name- task_identify- task_id- run_id- request_id- namespace- image_name- pod_uid- pod_name- container_name- container_ip- pathflushers:- Type: flusher_stdoutOnlyStdout: true- Type: flusher_kafka_v2Brokers:- nameserver.jmq.jd.local:80Topic: ai-middle-k8s-log-prodClientID: ai4middle4log

logstash 的配置如下

# logstash-configmap.yaml
---
apiVersion: v1
kind: ConfigMap
metadata:name: logstash-confignamespace: elastic-systemlabels:elastic-app: logstash
data:logstash.conf: |-input {kafka {bootstrap_servers => ["nameserver.jmq.jd.local:80"] #jmq的元数据地址#group_id => "services"group_id => "ai4middle4log" # jmq的Group的名称client_id => "ai4middle4log" # jmq的Group的名称,即jmq的省略了kafka中的client_id概念,用Group名称代替consumer_threads => 2decorate_events => true#topics_pattern => ".*"topics => ["ai-middle-k8s-log-prod"] # jmp的topicauto_offset_reset => "latest"codec => json { charset => "UTF-8" }}}filter {ruby {code => "event.set('index_date', event.get('@timestamp').time.localtime + 8*60*60)"}ruby {code => "event.set('message',event.get('contents'))"}#ruby {#    code => "event.set('@timestamp',event.get('time').time.localtime)"#}mutate {remove_field => ["contents"]convert => ["index_date", "string"]#convert => ["@timestamp", "string"]gsub => ["index_date", "T.*Z",""]#gsub => ["@timestamp", "T.*Z",""]}}output {elasticsearch {#hosts => ["https://ai-middle-cluster-es-http:9200"]hosts => ["http://x.x.x.x:40000","http://x.x.x.x:40000","http://x.x.x.x:40000"] # es地址index =>  "%{[@metadata][kafka][topic]}-%{+YYYY-MM-dd}" # 索引规则user => "XXXXXX" #jes的用户名password => "xxxxx" #jes的密码ssl => "false"ssl_certificate_verification => "false"#cacert => "/usr/share/logstash/cert/ca_logstash.cer"}stdout {codec => rubydebug}}

4.核心价值

在私有化部署的基础上通过简单改造实现了与京东内部中间件的完美融合,使得系统在高可用性上适应性更强、可用范围更广。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/954719.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年艺术漆品牌最新推荐榜,综合实力与核心竞争力全面剖析,兼具品质与服务的优质之选艺术漆一线品牌公司推荐

引言 随着健康家居理念升级,艺术漆凭借美观与功能融合的优势成为装修热门,但市场产品质量合格率仅约 72%,行业乱象凸显。为筛选优质品牌,行业协会开展专项测评,覆盖 126 家企业,采用 “技术研发(30%)、产品性能…

企业热线电话系统的多渠道支持与服务拓展策略!

在当下竞争激烈的服务市场中,企业热线电话系统早已不再是单一的沟通通道。客户的需求变得多元,他们可能通过电话咨询问题,也可能通过微信、邮件、网页留言或App在线客服获取帮助。传统热线系统若仅依赖语音服务,往…

20232313 2025-2026-1 《网络与系统攻防技术》实验四实验报告 - 20232313

1.实验内容基本实验内容如下:实验要求回答问题及解答: (1)杀软是如何检测出恶意代码的?(2)免杀是做什么?(3)免杀的基本方法有哪些?2.实验过程 总共5个任务,如下: (1) (2) (3) (4) (5) 我们一个一个来…

2025 年关节电机厂家最新推荐排行榜权威发布:揭秘行业优质品牌实力、口碑及选购要点无刷直流 / 力矩 / 机械臂 / 机械手关节电机公司推荐

引言 在智能制造与机器人产业高速发展的浪潮下,关节电机作为机器狗、人形机器人等设备的核心动力部件,市场需求持续攀升。为精准筛选优质品牌,本次榜单由行业权威协会牵头,联合专业检测机构开展测评,测评覆盖技术…

由于 CSP 烂完了于是加训

我是猫猫11.2 考 CSP 烂完了,找 PrincessQi 玩,交流了一下,pcq 和我说我可以先板刷月赛绿题,ABC 或者 CF *1500,因为 TJ 是神秘弱省,NOIP 其实只需要 200+ 就比较稳了,至于模拟赛比较烂完了所以不要打, 11.3 一…

DockerDeskTop安装常用的中间件

1、PostgreSql docker run --name postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123456 -e TZ=Asia/Shanghai -p 5432:5432 -v E:/DockerImageData/volumes/postgresql:/var/lib/postgresql …

2025 年卷板机源头厂家最新推荐排行榜:涵盖不锈钢 / 大型 / 锥形 / 数控等多类型设备,助力企业精准采购优质产品

引言 近期,行业协会针对卷板机源头厂家开展专业测评,通过对设备性能、生产实力、服务质量等多维度进行量化评估,最终形成 2025 年卷板机源头厂家推荐榜单。测评过程中,协会组建专业技术团队,依据统一标准对各厂家…

2025 年济南画室品牌口碑排行榜权威发布,小班教学与全封闭管理机构最新推荐济南画室高考/济南画室暑假班/济南画室素描课品牌推荐

引言 近年来,艺术培训市场中画室领域发展迅猛,越来越多学生选择通过艺考实现升学梦想,伴随而来的是各类画室数量大幅增加,市场秩序亟待规范。为帮助学生和家长筛选优质画室,专业艺术培训协会开展了画室品牌测评工…

Go语言学习路线图完整指南:从零基础到架构师的进阶之路

作为一名在互联网公司从15年一路摸爬滚打的后端开发,我想跟大家聊聊Go语言的学习路径。最近整理了手头的学习资源,发现很多同学都在问"Go语言该怎么学"、"学到什么程度能找工作",今天就把我的经…

2025年水泥构件直销厂家权威推荐榜单:排水槽/步道砖/水泥预购件源头厂家精选

在市政建设与园林景观领域,水泥构件的质量稳定性与供应保障能力直接关系到工程进度与最终效果。专业化水泥构件生产厂家能够提供标准化、系列化的产品,其自动化生产线可降低15%-20%的综合成本,同时保证产品强度等级…

LongNet: Scaling Transformers to 1,000,000,000 Tokens

[arXiv23] 通过稀疏掩码降低自注意力计算复杂度LongNet: Scaling Transformers to 1,000,000,000 Tokens LongNet:通过类似线段树的形式构建自注意力的稀疏掩码,从而降低长序列下的计算复杂度 动机 本文旨在降低注意…

Ubuntu服务器禁用NVIDIA自动更新驱动脚本

#!/bin/bash # ===================================================== # Ubuntu 自动升级防护脚本 - 防止 NVIDIA 驱动被自动更新 # 适用于 Ubuntu 18.04/20.04/22.04+ # =========================================…

2025高性价比Facebook广告品牌企业TOP5推荐:精准引流与高效转化的权威测评指南

在全球数字化营销浪潮下,Facebook广告凭借29亿月活用户的流量池,成为企业触达全球消费者的核心渠道。2024年数据显示,亚太地区Facebook广告投放企业同比增长38%,但62%的企业面临广告成本高企、精准度不足、转化链路…

如何优化机器人拨打电话软件的通话效率?实用技巧!

在各类客服外呼、业务通知和用户回访场景中,机器人拨打电话软件已经成为企业提高沟通效率的重要工具。相比传统人工外呼,它可以自动批量拨号、智能识别客户意图、实时记录通话结果,大幅节约人力成本。然而,在实际应…

Android Studio: Plugin with id com.android.library not found

导入第三方jar 源码时,经常会报下面错误:Plugin with id com.android.library not found这是由于创建jar 源码时的 gradle 版本和你本地 studio gradle版本不一致导致。 最简单做法: 1.新建一个项目 2.打开最外层…

2025年度资深房地产模型企业推荐,专业房地产模型工作室与服务商全解析

在房地产项目展示、营销与决策过程中,高品质的房地产模型是传递项目价值、打动客户的核心载体。面对市场上众多房地产模型工作室与服务商,如何挑选到专业可靠的合作伙伴?以下结合不同服务类型,为您推荐2025年度十大…

2025 年工业商城小程序最新推荐排行榜:涵盖多领域设备,解析实力企业核心优势与选择要点节能环保/车间工具/智能制造/数控转台工业商城推荐

引言 当前,制造业正加速向智能化、高端化转型,机械加工领域在发展中面临设备采购难、优质供应商对接不畅、绿色生产方案匮乏等问题。工业商城小程序本是解决这些问题的关键载体,但市场产品质量参差不齐,企业难以抉…

JYU-ACM算法协会周赛题解 (每周刷新)

week1 普及组 点击跳转 提高组 点击跳转

SAP 字段名+RANGE表

结构:FMRPF_FRANGE 表类型:FMRPF_FRANGE_T

SAP 字段名+RANGE表

结构:FMRPF_FRANGE 表类型:FMRPF_FRANGE_T