filebeat-daemonSet模式采集pod日志

2023-10-22 02:10

本文主要是介绍filebeat-daemonSet模式采集pod日志,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1、准备filebeat包
  • 2、新增Dockerfile
  • 3、新增filebeat.yml文件
  • 4、新增start.sh启动脚本
  • 5、构建镜像+运行

1、准备filebeat包

filebeat-8.5.3-linux-x86_64.tar.gz
在这里插入图片描述

2、新增Dockerfile

将filebeat包放入容器/root目录下

FROM tomcat:2.0
ADD filebeat-8.5.3-linux-x86_64.tar.gz /root
RUN cd /root/filebeat-8.5.3-linux-x86_64
WORKDIR /root/filebeat-8.5.3-linux-x86_64
CMD ["./filebeat" ,"-e", "-c", "filebeat.yml"]

3、新增filebeat.yml文件

根据自己的服务配置加入以下内容,示例为采集服务日志到kafka

#filebeat自身日志配置
logging.level: info
logging.to_files: true
logging.files:path: /root/filebeat-8.5.3-linux-x86_64/logname: filebeatkeepfiles: 7permissions: 0644filebeat.inputs:
- type: logenabled: truepaths:- /data/docker/containers/19ee9c5ec9a9f8799f5d770cce23b1dea6c806ece1177d8fb1535fd049bb7afc/*.logfields:app_deployment_id: 759bfe5b-a7d3-9c4c-fb7e-ab41fde3abb8agent_id: application_name: app_name: KuberneteServicetopic: app-logfields_under_root: truetail_files: true
# -----------------------------  kafka  ---------------------------------------
output.kafka:hosts: ["134.64.15.155:9092"]topic: filebeat-container-logpartition.round_robin:reachable_only: trueprocessors:- add_host_metadata: ~logging.level: debug

4、新增start.sh启动脚本

根据自己的服务加入以下内容:
注意:一定要保证除最后一个服务外,其他服务必须后台运行;最后一个服务必须前台运行;如果都在后台运行的话,docker会以为程序都运行结束,自动退出。

#!/bin/bash
cd /root/KuberneteService/bin/
nohup sh KuberneteService >> nohup.out 2>&1 &
cd /root/filebeat-8.5.3-linux-x86_64/
./filebeat -e -c filebeat.yml

5、构建镜像+运行

准备好的环境如下:
在这里插入图片描述

  1. 构建镜像

docker build -t filebeat:1.0 .
在这里插入图片描述

  1. 运行镜像
    docker run -d --name filebeat -v /data/docker/containers:/data/docker/containers -v /app/tool/k8s/filebeatDocker/log:/root/filebeat-8.5.3-linux-x86_64/log -v /app/tool/k8s/filebeatDocker/filebeat.yml:/root/filebeat-8.5.3-linux-x86_64/filebeat.yml filebeat:1.0

  2. 查看镜像是否启动成功
    docker ps -a
    在这里插入图片描述

  3. 查看容器日志
    docker logs 容器id -f

  4. 进入容器内部,查看部署情况
    docker exec -it 容器id bash
    在这里插入图片描述

  5. 采集到的消息格式:

{"@timestamp": "2022-12-16T03:33:29.264Z","@metadata": {"beat": "filebeat","type": "_doc","version": "8.5.3"},"topic": "app-log","ecs": {"version": "8.0.0"},"message": "{\"log\":\"I1209 08:20:05.294990       1 shared_informer.go:247] Caches are synced for endpoint slice config \\n\",\"stream\":\"stderr\",\"time\":\"2022-12-09T08:20:05.295139982Z\"}","log": {"offset": 8873,"file": {"path": "/data/docker/containers/19ee9c5ec9a9f8799f5d770cce23b1dea6c806ece1177d8fb1535fd049bb7afc/19ee9c5ec9a9f8799f5d770cce23b1dea6c806ece1177d8fb1535fd049bb7afc-json.log"}},"input": {"type": "log"},"app_name": "KuberneteService","app_deployment_id": "759bfe5b-a7d3-9c4c-fb7e-ab41fde3abb8","host": {"architecture": "x86_64","os": {"codename": "focal","type": "linux","platform": "ubuntu","version": "20.04.5 LTS (Focal Fossa)","family": "debian","name": "Ubuntu","kernel": "3.10.0-957.el7.x86_64"},"containerized": true,"name": "6cd4de6fbf07","ip": ["172.17.0.4"],"mac": ["02-42-AC-11-00-04"],"hostname": "6cd4de6fbf07"},"agent": {"type": "filebeat","version": "8.5.3","ephemeral_id": "77432577-0e75-4d60-8582-ced5447979a3","id": "f9c219df-d1b2-44aa-ba9b-1b34e316382a","name": "6cd4de6fbf07"}
}

这篇关于filebeat-daemonSet模式采集pod日志的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/258425

相关文章

在JS中的设计模式的单例模式、策略模式、代理模式、原型模式浅讲

1. 单例模式(Singleton Pattern) 确保一个类只有一个实例,并提供一个全局访问点。 示例代码: class Singleton {constructor() {if (Singleton.instance) {return Singleton.instance;}Singleton.instance = this;this.data = [];}addData(value)

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

我在移动打工的日志

客户:给我搞一下录音 我:不会。不在服务范围。 客户:是不想吧 我:笑嘻嘻(气笑) 客户:小姑娘明明会,却欺负老人 我:笑嘻嘻 客户:那我交话费 我:手机号 客户:给我搞录音 我:不会。不懂。没搞过。 客户:那我交话费 我:手机号。这是电信的啊!!我这是中国移动!! 客户:我不管,我要充话费,充话费是你们的 我:可是这是移动!!中国移动!! 客户:我这是手机号 我:那又如何,这是移动!你是电信!!

模版方法模式template method

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/template-method 超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 上层接口有默认实现的方法和子类需要自己实现的方法

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

迭代器模式iterator

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/iterator 不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素

《x86汇编语言:从实模式到保护模式》视频来了

《x86汇编语言:从实模式到保护模式》视频来了 很多朋友留言,说我的专栏《x86汇编语言:从实模式到保护模式》写得很详细,还有的朋友希望我能写得更细,最好是覆盖全书的所有章节。 毕竟我不是作者,只有作者的解读才是最权威的。 当初我学习这本书的时候,只能靠自己摸索,网上搜不到什么好资源。 如果你正在学这本书或者汇编语言,那你有福气了。 本书作者李忠老师,以此书为蓝本,录制了全套视频。 试

利用命令模式构建高效的手游后端架构

在现代手游开发中,后端架构的设计对于支持高并发、快速迭代和复杂游戏逻辑至关重要。命令模式作为一种行为设计模式,可以有效地解耦请求的发起者与接收者,提升系统的可维护性和扩展性。本文将深入探讨如何利用命令模式构建一个强大且灵活的手游后端架构。 1. 命令模式的概念与优势 命令模式通过将请求封装为对象,使得请求的发起者和接收者之间的耦合度降低。这种模式的主要优势包括: 解耦请求发起者与处理者

springboot实战学习(1)(开发模式与环境)

目录 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 (3)前端 二、开发模式 一、实战学习的引言 (1)前后端的大致学习模块 (2)后端 Validation:做参数校验Mybatis:做数据库的操作Redis:做缓存Junit:单元测试项目部署:springboot项目部署相关的知识 (3)前端 Vite:Vue项目的脚手架Router:路由Pina:状态管理Eleme

状态模式state

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/state 在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。 在状态模式中,player.getState()获取的是player的当前状态,通常是一个实现了状态接口的对象。 onPlay()是状态模式中定义的一个方法,不同状态下(例如“正在播放”、“暂停