千家信息网

【赵强老师】Kubernetes平台中日志收集方案

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

一、K8s整体日志收集方案

整体的日志收集方案,如下图所示:

  1. Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Logstatsh进行索引、kafka等。带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格式的收集,解析和可视化。
  2. 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安全错误 数据库的锁怎样保障安全 手磨咖啡 互联网与科技发展 互联网 科技公司 唐信互联网科技 善班互联网科技有限公司 互联网科技美容 华中科技有哪些互联网大佬 济南华为互联网科技产业总部基地 剑昆互联网络科技有限公司临桂 茂名市互联网科技产业园 受益于互联网科技的高速发展 开一家科技互联网公司需要多少钱 工业互联网山东科技大学 广东鹅鹅鹅互联网科技有限公司 陕西九四连强互联网科技有限公司 版纳互联网科技选哪家 北京天晋互联网科技有限公司 美国五大互联网科技公司市值多少 深圳互联网科技园地址 北京瑞云互联网科技有限公司 互联网科技公司经营范围 盈实互联网科技 奔汉互联网科技 互联网科技宣传片 左右互联网络科技 互联网科技与大数据专业 烟台灵鸽互联网科技有限公司 上海钢联属于互联网科技股吗 互联网科技股为什么大涨 山东大美朱楼互联网科技有限公司
0