【赵强老师】Kubernetes平台中日志收集方案
发表于:2025-12-05 作者:千家信息网编辑
千家信息网最后更新 2025年12月05日,一、K8s整体日志收集方案整体的日志收集方案,如下图所示:Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Lo
千家信息网最后更新 2025年12月05日【赵强老师】Kubernetes平台中日志收集方案
一、K8s整体日志收集方案
整体的日志收集方案,如下图所示:

- Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Logstatsh进行索引、kafka等。带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格式的收集,解析和可视化。
- ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。
- Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。
- Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。
Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据
二、针对不同组件的日志收集
Node上部署一个日志收集程序:DaemonSet方式部署日志收集程序。对本节点/var/log和/var/lib/docker/containers/ 两个目录下的日志进行采集.

Pod中附加专用日志收集的容器:每个运行应用程序的Pod中增加一个日志收集容器,使用emtyDir共享日志目录让日志收集程序读取到。
应用程序直接推送日志:不属于Kubernetes范围。
三、安装ELK
- 安装JDK:这里我们使用的是jdk-8u181-linux-x64.tar.gz(安装过程省去,非常简单)
- 安装Elasticsearch:直接解压启动,即可,执行下面的语句测试ES。
- 安装Kibana:核心配置文件config/kibana.yml
server.port: 5601server.host: "192.168.79.110"elasticsearch.hosts: ["http://localhost:9200"]启动:bin/kibana,访问Web Console:http://192.168.79.110:5601
- 安装logstash:核心配置文件config/logstash.conf
input { beats { port => 5044 }}output { elasticsearch { hosts => ["http://localhost:9200"] index => "k8s-log-%{+YYYY-MM-dd}" }}启动:bin/logstash -f config/logstash.conf四、收集k8s组件日志
filebeat的配置文件filebeat.yml使用ConfigMap管理,k8s组件日志记录在node节点本机/var/log/messages目录下,所以将node节点/var/log/messages目录挂载到pod中。创建收集k8s 组件日志/var/log/messages资源。 创建yaml文件如下:k8s-logs.yaml,并执行kubectl create -f k8s-logs.yaml
apiVersion: v1kind: ConfigMapmetadata: name: k8s-logs-filebeat-config namespace: kube-systemdata: filebeat.yml: |- filebeat.prospectors: - type: log paths: - /messages fields: app: k8s type: module fields_under_root: true output.logstash: hosts: ['192.168.79.110:5044']---apiVersion: apps/v1kind: DaemonSetmetadata: name: k8s-logs namespace: kube-systemspec: selector: matchLabels: project: k8s app: filebeat template: metadata: labels: project: k8s app: filebeat spec: containers: - name: filebeat image: collenzhao/filebeat:6.5.4 args: [ "-c", "/etc/filebeat.yml", "-e", ] resources: requests: cpu: 100m memory: 100Mi limits: cpu: 500m memory: 500Mi securityContext: runAsUser: 0 volumeMounts: - name: filebeat-config mountPath: /etc/filebeat.yml subPath: filebeat.yml - name: k8s-logs mountPath: /messages volumes: - name: k8s-logs hostPath: path: /var/log/messages type: File - name: filebeat-config configMap: name: k8s-logs-filebeat-config
下图是Kibana的生成的信息。
日志
数据
文件
程序
目录
组件
分析
搜索
应用程序
方式
核心
节点
应用
配置
方案
功能
容器
引擎
整体
来源
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
成都零基础网络技术培训班
组织形式数据库的数据模型
软件开发7年工资多少
db2服务器停止执行sql语句
前沿网络安全交流
php 数组插入数据库
简述备份数据库的一种方法的步骤
奉贤区品牌软件开发欢迎咨询
美容美发软件开发
什么时候网络安全的重中之重
东莞功能软件开发热线
对象关系数据库注解
软件开发 月小结
编程软件开发工程师
墨迹科技和互联网
连接到任意服务器失败英语
查看基因甲基化数据库
息壤服务器怎么样
湖南正规网络技术工程
软件开发优势因素
想学数据库管理
用阿里云服务器玩游戏
数据库输入代码后怎么执行
施乐700服务器怎么样
数据库的函数怎么复制
服务器中断图片
玉溪 网络安全
各直销软件开发公司大全
2016应用服务器
软件开发设计有哪些职位