我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

一、K8s整体日志收集方案

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

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

  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/ 两个目录下的日志进行采集.

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

  • Pod中附加专用日志收集的容器:每个运行应用程序的Pod中增加一个日志收集容器,使用emtyDir共享日志目录让日志收集程序读取到。

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

  • 应用程序直接推送日志:不属于Kubernetes范围。

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

三、安装ELK

  • 安装JDK:这里我们使用的是jdk-8u181-linux-x64.tar.gz(安装过程省去,非常简单)
  • 安装Elasticsearch:直接解压启动,即可,执行下面的语句测试ES。

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

  • 安装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的生成的信息。

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

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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

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

一、K8s整体日志收集方案整体的日志收集方案,如下图所示:Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Logstatsh进行索引、kafka等。带
2023-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录