filebeat 采集k8s 中nginx deployment 日志

【 云原生 kubernetes 】- 使用Filebeat采集k8s日志 日志采集器Logstash其功能虽然强大,但是它依赖java、在数据量大的时候,Logstash进程会消耗过多的系统资源,这将严重影响业务系统的性能,而filebeat就是一个完美的替代者,它基于Go语言没有任何依赖,配置文件简单,格式明了 阅读详情

一、背景

在k8s集群中,已经部署了nginx应用,需要使用elk来收集日志。

注意:elk并没有放在k8s集群中,使用单独的服务器进行安装。不推荐elk放在k8s集群中!

其中filebeat,使用DaemonSet方式部署,这样就可以自动收集了。

二、环境说明

操作系统:centos 7.6

k8s版本:1.18.1

ip地址:10.212.82.63

配置:2核4g

主机名:k8s-master

操作系统:centos 7.6

k8s版本:1.18.1

ip地址:10.212.82.65

配置:2核4g

主机名:k8s-node01

日志说明

nginx容器,默认的日志路径为:/var/log/nginx,所以在部署时,我会将此目录映射到宿主机的/opt/log/nginx目录(日志格式需要为json)

部署filebeat时,需要将/opt/log/nginx目录挂载到filebeat容器中,这样才能读取nginx日志。

elk

本文使用elk版本,统一采用7.5.1

由于资源紧张,我这里演示效果,在 k8s-node01 部署elk。在实际生产环境中,请单独部署。

关于elasticsearch和head插件安装,请参考链接:

https://www.cnblogs.com/xiao987334176/p/13565468.html

关于logstash安装,请参考链接:

https://www.cnblogs.com/xiao987334176/p/13565790.html

关于kibana安装,请参考链接:

https://www.cnblogs.com/xiao987334176/p/13570301.html

请确保elk工作正常,kibana能看到 logstash收集到的/var/log/messages日志信息。

nginx

登录到主机k8s-node01,创建日志目录

  1. mkdir -p /opt/log/nginx

登录到主机k8s-master,部署nginx

新建文件 nginx-deployment.yaml,内容如下:                  

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: nginx-1
  5. spec:
  6. selector:
  7. matchLabels:
  8. run: nginx-1
  9. replicas: 1
  10. template:
  11. metadata:
  12. labels:
  13. run: nginx-1
  14. spec:
  15. containers:
  16. - name: nginx-1
  17. image: nginx:stable-alpine
  18. ports:
  19. - containerPort: 80
  20. volumeMounts:
  21. - mountPath: /var/log/nginx
  22. name: nginx-log
  23. restartPolicy: Always
  24. volumes:
  25. - name: nginx-log
  26. hostPath:
  27. path: /opt/log/nginx    

新建文件 nginx-service.yaml,内容如下: 

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: nginx-1
  5. labels:
  6. run: nginx-1
  7. spec:
  8. type: NodePort
  9. ports:
  10. - port: 80
  11. name: nginx-port
  12. targetPort: 80
  13. protocol: TCP
  14. nodePort: 30008
  15. selector:
  16. run: nginx-1

开始正式部署

  1. kubectl apply -f nginx-service.yaml
  2. kubectl apply -f nginx-deployment.yaml

 

filebeat

filebeat的镜像,需要在官方的基础上,做一次封装。因为配置文件,需要调整一下。由于资源紧张,这里并没有使用私有仓库harbor或者云产商的私有仓库,直接使用本地存储。

登录到主机k8s-node01,新建目录,并创建dockerfile

  1. mkdir -p /opt/filebeat
  2. cd /opt/filebeat
  3. vi dockerfile

内容如下:

  1. FROM elastic/filebeat:7.5.1
  2. ADD filebeat.yml /usr/share/filebeat/filebeat.yml

 

新建文件filebeat.yml,内容如下:

  1. # 收集系统日志
  2. filebeat.inputs:
  3. - type: log
  4. enabled: true
  5. paths:
  6. - /opt/log/nginx/access.log
  7. fields:
  8. log_source: nginx-access
  9. - type: log
  10. enabled: true
  11. paths:
  12. - /opt/log/nginx/error.log
  13. fields:
  14. log_source: nginx-error
  15. filebeat.config:
  16. modules:
  17. path: ${path.config}/modules.d/*.yml
  18. reload.enabled: false
  19. processors:
  20. - add_cloud_metadata: ~
  21. - add_docker_metadata: ~
  22. output.elasticsearch:
  23. hosts: '10.212.82.65:9200'
  24. indices:
  25. - index: "filebeat-nginx-%{+yyyy.MM.dd}"

 

说明:

这里是读取2个日志文件,分别是access.log和error.log。然后将内容输出到elasticsearch

请根据实际情况修改!

生成镜像

  1. docker build -t my-filebeat:v1 .

登录主机k8s-master,新建filebeat.yaml,内容如下:

  1. apiVersion: apps/v1
  2. kind: DaemonSet
  3. metadata:
  4. name: filebeat-1
  5. spec:
  6. selector:
  7. matchLabels:
  8. run: filebeat-1
  9. template:
  10. metadata:
  11. labels:
  12. run: filebeat-1
  13. spec:
  14. containers:
  15. - name: filebeat-1
  16. image: my-filebeat:v1
  17. imagePullPolicy: IfNotPresent
  18. volumeMounts:
  19. - mountPath: /opt/log
  20. name: log
  21. restartPolicy: Always
  22. volumes:
  23. - name: log
  24. hostPath:
  25. path: /opt/log

 

 

注意:这里采用DaemonSet方式部署,必须挂载目录/opt/log,否则无法读取。

正式部署


    • kubectl apply -f filebeat.yaml

 访问elasticsearch head插件,查看filebeat索引是否存在

 登录kibana,新建索引filebeat

索引名称为:filebeat-nginx-*

 

 

添加索引之后,返回主页面

点击change,切换索引到filebeat-nginx-*,然后刷新几遍nginx访问页面,效果如下:

 

Elastic agent集群部署及注意事项 测试部署elastic agent,验证数据采集(filebeat和系统指标)是否可行 阅读详情

相关推荐

三十二、K8S容器日志收集-EFK

首先需要部署 Kafka 和 Logstash 至 Kubernetes 集群,如果企业内已经有比较成熟的技术栈,NOTES:NOTES:配置解析metadata:data:input {kafka {output {} else{需要注意文件中的一些配置:➢ input:数据来源,本次示例配置的是 Kakfa;

Cyan_Jiang的博客 1587

k8s-EFK (filebeat)日志收集

使用elasticsearch+filebeat+kibana收集pod指定目录日志,filebeat用于收集日志,es用于存储,kibana用于展示。本例以收集部署于k8s内的nginx日志为例子。

planck 3424

Ubuntu 16.04上PHP应用Kubernetes生产级迁移实战

Kubernetes容器编排已成为现代应用交付的事实标准,而PHP作为广泛使用的Web语言,其云原生化并非简单打包镜像或编写Deployment YAML。本文聚焦于真实政企与教育行业场景中普遍存在的Ubuntu 16.04 LTS遗留系统,深入解析其内核(4.4.0)、cgroup v1、systemd 229及iptables 1.6.0等底层约束如何影响K8s集群稳定性与PHP运行时行为。围绕PHP-FPM进程模型适配、glibc兼容性选型、标准输出日志采集、分层健康探针设计及MySQL连接池治理等关

weixin_33778544的博客 335

filebeat采集k8s日志 - docker目录(默认docker目录使用此方法)

filebeat采集k8s日志 - docker目录(默认docker目录使用此方法)

晓俊子的博客 989

DevOps面试全攻略:从CI/CD到Kubernetes核心考点与实战

现代软件研发在追求快速迭代的同时,必须兼顾系统稳定与交付质量,这正是DevOps理念得以普及的根本原因。理解DevOps不能停留在工具层面,而要把握持续集成、持续交付与持续部署的完整链路,以及容器化技术带来的环境一致性优势。对于准备DevOps面试的技术人员而言,不仅需要掌握Jenkins流水线、GitLab CI配置、Docker镜像构建等实操技能,更要有清晰的故障排查思路和体系化知识结构。从概念到实践,从工具到方法论,系统梳理核心考点与高频问题,有助于在面试中展现真正的工程能力。本文围绕DevOps技术

weixin_30386713的博客 395

2026年Kubernetes高频面试题解析与实战技巧

容器编排技术作为云原生架构的核心组件,Kubernetes通过声明式API和控制器模式实现应用的自动化部署、扩展与管理。其核心原理包括Pod生命周期管理、Service发现机制和调度算法优化,在提升资源利用率的同时保障分布式系统的稳定性。掌握Kubernetes网络模型(CNI插件)、存储方案(PV/PVC)和安全控制(RBAC)等技术要点,能够有效支撑微服务治理、CI/CD流水线等生产场景。本文基于2026年一线大厂最新面试数据,重点解析Pod资源隔离、调度器扩展等12类高频考点,并提供Service流量

weixin_30635053的博客 363

K8s 部署filebeat 并收集 nginx 日志

K8s 部署filebeat 并收集 nginx 日志

qq_46141154的博客 642

从零开始:手把手教你用Verilog搭建一个可配置的Cache模块(以Vortex GPGPU为例)

本文详细介绍了如何使用Verilog从零开始搭建一个可配置的Cache模块,以Vortex GPGPU为例。内容涵盖Cache设计基础、模块接口与参数化设计、核心子模块实现、仲裁与一致性机制、功能验证与性能调优等关键环节,适合RTL设计初学者和希望深入理解Cache工作原理的工程师。通过实战指南,读者可以掌握硬件代码分析技巧,提升Cache模块的设计能力。

weixin_42552315的博客 441

Kubernetes Filebeat收集日志

之前是针对标准输出进行采集,现在来看一下针对于容器当中的日志,是在pod当中添加一个日志采集器,这里部署一个应用,单独部署一个容器,这个容器是filebeat日志采集器,这一块就通过emptydir来实现数据的共享。 filebeat的配置放在configmap当中,指明了日志采集的路径在哪,这个日志没有在标准输出当中,虽然是个nginx镜像。所以这里的日志还是存放在容器当中的。 apiVersion: apps/v1 kind: Deployment metadata: name: app-lo

小楼一夜听春雨,深巷明朝卖杏花 1650

转义序列字符(\0,\n,\r,\t,\v,\a,\f,\b,\\,\‘,\“,\?)详解,转义字符对应的全称,输出结果和对应的ASCII码值详解;

转义序列字符(\0,\n,\r,\t,\v,\a,\f,\b,\\,\',\",\?)详解,转义字符对应的全称,输出结果和对应的ASCII码值详解;

南城花开过的博客 3万+

CA51F3系列(国产)+低功耗模式

CA51F351P6芯片是基于1T 8051内核的8位微控制器,通常情况下,运行速度比传统的8051芯片快10倍,性能更加优越。内置8K Flash程序存储器,可多次重复编程的特性给用户开发带来了极大的方便。不仅保留了传统8051芯片的基本特性,还集成了12Bit ADC、LCD/LED驱动、Touch Key、16Bit PWM、 UART、RTC、低电压检测(LVD)等功能模块。支持IDLE、STOP和低速运行三种省电模式以适应不同功耗要求的应用。

WANGJIHUIwang的博客 573

[kubernetes]-filebeat收集ingress日志

需求: 想把ingress的日志都拿出来看或者采集起来,通过kubectl log -f的方式不方便看之前的日志 无法持久化 思路:将stdout和stderr的日志持久化到/var/log/nginx 再通过filebeat采集到kibana 即用filebeat镜像作为sidecar,把nginx-ingress-controller里的/var/log/nginx 的日志采集出来 个人笔记 可能会有错误 主要配置 重定向nginx日志。 --- kind: ConfigMap apiVers

爷来辣的博客 2825

概率论—期末复习速成笔记(自用)

概率论期末复习

a200327的博客 2万+

k8s 部署filebeat sidecar模式之nginx测试

k8s 部署filebeat sidecar模式之nginx测试

虫虫的博客 1459

LVI-SAM实战:如何在Ubuntu20.04上快速复现激光-视觉-惯性里程计系统

本文详细解析了在Ubuntu 20.04环境下部署和优化LVI-SAM激光-视觉-惯性里程计系统的全流程。从环境配置、依赖安装到源码编译和实战调参,提供了完整的解决方案和性能优化策略,帮助开发者快速实现厘米级精度的实时位姿估计。

m3n5b7v8c9x的博客 1048

Android 13 录音APK在后台无数据的处理

未获取到录音数据

chenchen4310的博客 1183

Kubernetes中ReplicaSets、Deployment、DaeonSet、Job、CronJob详解

Controller 主要作用是确保所管理的资源处于用户期望的状态,通过不断地监控资源的状态,并根据实际状态与期望状态之间的差异执行相应的动作,来实现资源的自愈、自动扩展等功能。先简单回顾一下:容器按照是否持续运行可分为两类。服务类容器: 一直运行任务,通常持续提供服务, 比如HTTP等。工作类容器:一次性任务, 比如批处理程序,完成后容器就退出。Kubernetes 中用于管理服务类容器的控制器有 ReplicaSet 、Deployment 和 DaemonSet 等。

2301_77398968的博客 207

【ELK】最新版ELK日志搜集,过滤与展示,手把手教你搭建企业级ELK日志平台

ELFK是一套完整的日志集中处理方案。 E:ElasticSearck ES 分布式索引型非关系数据库 存储logstash输出的日志 全文检索引擎,保存的格式是json格式 L:logstash 基于java语言开发的,数据收集引擎。日志的收集,可以对数据进行过滤,分析,汇总,以标准格式输出 K:Kiabana 是es的可视化工具。对es存储的数据进行可视化展示,分析和检索。 F: FileBeat是一个轻量级日志采集器,Filebeat属于Beats家族的6个成员之一。

景天科技苑 7万+

云原生实战指南:如何快速掌握Kubernetes的核心应用场景

Kubernetes作为现代云原生技术的核心编排引擎,已经成为开发者和运维人员必须掌握的技能。本教程项目提供了从基础概念到高级实践的完整学习路径,通过实际应用场景帮助您快速上手这个强大的容器编排平台。无论您是初学者还是有一定经验的用户,都能在这里找到适合的学习资源和实践案例。 ## 🎯 从实际问题出发:Kubernetes能解决什么? 传统应用部署常常面临以下痛点: - **环境不一致**:

gitblog_00286的博客 244

Yolov8-pose关键点检测:通用倒瓶颈(UIB)搜索块结合C2f二次创新 | 轻量化之王MobileNetV4

通用倒瓶颈(UIB)搜索块结合C2f二次创新

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 614

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Docker与Kubernetes面试核心知识点解析

容器技术作为现代应用部署的标准方案,其核心原理基于Linux Namespace和Cgroups实现轻量级隔离。Docker通过镜像分层存储和联合文件系统显著提升构建与部署效率,而Kubernetes则解决了大规模容器编排的难题。在生产环境中,合理配置健康检查探针和资源限制是保障稳定性的关键。本文重点解析容器与虚拟机的架构差异、Kubernetes的调度机制等高频面试考点,帮助开发者掌握Docker多阶段构建、Kubernetes滚动更新等工程实践技巧。

weixin_34049948的博客 344

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

k8s-152习题【内含k8s、docker、prometheus、ELK、Jenkins等面试内容】

常用资源介绍:Pod、最早的控制器RS、deployment(RS的升级)、daemonSet、statefulSet、service、IngressIngress-controller、configmap、secret 、serviceAccount(服务账号)Pod:运行服务器部署中的最小工作单元,pod里运行服务的容器,可以运行一个或者多个容器,一般运行一个一个容器。RS控制器/ReplicaSet,是Pod的控制器,维护pod的副本数,更新pod时候,手动删除pod才能更新。

Nightwish5的博客 424

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【记一次ELK实践】

【记一次ELK实践】 目的: K8S调度docker部署nginx服务,并以NodePort的暴露方式暴露nginx服务 部署ELK对nginx的日志文件进行采集并展示 Node_name IP Service vms61 192.168.100.61 K8S-master vms62 192.168.100.62 K8S-worker vms21 192.168.100.21 Elasticsearch-master vms22 192.168.100.22 ES-slav

m0_46671789的博客 206

Kubernetes架构师实战手册:从集群设计到生产部署深度解析

你是否经历过这样的场景:深夜被Pod频繁重启的告警惊醒,却发现日志分散在几十个容器中难以定位?或者面对复杂的微服务网络,流量路由乱如麻线,服务发现时好时坏?又或者在安全审计时,发现集群权限管理混乱,RBAC配置如同迷宫?这些正是Kubernetes架构师日常面临的真实挑战。 [![Kubernetes集群架构图](https://raw.gitcode.com/gh_mirrors/k8s/k8

gitblog_00310的博客 248

Kubernetes核心组件、Pod与网络模型深度解析与实战指南

容器编排是现代云原生应用部署与管理的核心技术,它通过自动化容器的调度、网络和存储管理,解决了微服务架构下应用部署复杂、扩展性差的问题。其核心原理在于将应用及其依赖封装为轻量级、可移植的容器,并由编排系统统一管理生命周期。这一技术为分布式系统带来了声明式配置、弹性伸缩和高可用性等核心价值,广泛应用于微服务治理、持续交付和混合云场景。在众多编排平台中,Kubernetes凭借其强大的**核心组件**架构和灵活的**Pod**抽象成为事实标准。理解其控制平面组件(如API Server、etcd)与工作节点组件(

weixin_30701575的博客 310

Kubernetes POD控制器:核心原理与生产实践指南

POD控制器是Kubernetes集群管理的核心组件,通过声明式配置实现工作负载的自动化管理。其核心原理基于调谐循环机制,持续比对实际状态与期望状态,自动执行扩缩容、故障恢复等操作。在技术价值层面,POD控制器将传统运维中的手工操作转化为自动化流程,显著提升部署效率和系统可靠性。典型应用场景包括无状态服务(Deployment)、有状态应用(StatefulSet)以及节点级守护进程(DaemonSet)的管理。针对生产环境中的性能优化,需要重点关注资源限制、探针配置等关键参数,同时结合节点亲和性、污点与容

weixin_33725126的博客 354
上一篇: k8s 滚动更新控制(一)
下一篇: k8s service
ajax_beijing_java
博客等级 码龄13年 605粉丝 264原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值