k8s学习--k8s群集ELK日志收集部署最详细的过程与应用(收集k8s群集日志)(图形化界面手把手教学)

文章目录

    • Filebeat
      • Filebeat主要特点
      • Filebeat使用场景
  • ELK简介
    • Elasticsearch简介
      • Elasticsearch主要特点
      • Elasticsearch使用场景
    • Logstash简介
      • Logstash主要特点
      • Logstash使用场景
    • Kibana简介
      • Kibana主要特点
      • Kibana使用场景
    • 简单理解
  • 环境
    • 一、ELK集群部署
      • 1.软件安装
      • 2.软件配置及启动
        • (1).kibana软件配置及启动
        • (2).elasticsearch软件配置及启动
        • (3).logstash软件配置及启动
        • (4).kibana访问
        • (5).编写logstash用于收集日志配置文件
        • (6).运行logstash
    • 二、收集k8s集群节点系统日志
      • 1.下载filebeat镜像
      • 2.创建filebeat资源清单文件
      • 3.应用filebeat资源清单文件
      • 4.验证结果
      • 5.在kibana中添加索引


本次部署的应用有Filebeat+ELK,让我们先简单了解一下

Filebeat

Filebeat 是一个轻量级的日志数据发送器,作为 ELK 堆栈的一个组件,主要用于从各种来源收集日志数据并将其发送到 Logstash 或 Elasticsearch。它是 Elastic Stack 中 Beats 产品家族的一部分。

Filebeat主要特点

轻量级:
Filebeat 设计简单,资源占用低,非常适合部署在边缘节点或资源受限的环境中。

多种输入源:
Filebeat 支持从文件、Docker 日志、容器日志、系统日志等多种来源收集日志数据。

日志传输:
Filebeat 可以将收集到的日志数据发送到多个目标,包括 Logstash、Elasticsearch、Kafka 等。

日志处理:
Filebeat 具有基本的日志处理能力,可以通过模块化的方式实现常见的日志解析和处理。

可靠性:
具有保证至少一次传递的能力,确保日志数据在传输过程中不会丢失。

模块化:
Filebeat 提供了一系列预配置的模块,用于处理常见的日志格式,如 Nginx、Apache、MySQL、系统日志等。

Filebeat使用场景

集中式日志管理: 在分布式系统中集中收集各个节点的日志。
实时日志分析: 通过 Filebeat 将日志数据实时发送到 Elasticsearch,进行实时搜索和分析。
监控和报警: 结合 ELK 堆栈,实现日志数据的实时监控和报警。

ELK简介

ELK 是 Elasticsearch、Logstash 和 Kibana 三个开源工具的组合,常用于数据搜索、日志管理和数据可视化

Elasticsearch简介

Elasticsearch 是一个分布式搜索和分析引擎,基于 Apache Lucene 构建,主要用于存储、搜索和分析大量数据。

Elasticsearch主要特点

实时搜索和分析: 支持实时的数据存储和检索。
分布式: 能够在多个节点上分布数据,提供高可用性和扩展性。
全文搜索: 支持复杂的查询语法,能够进行高效的全文搜索。
RESTful API: 通过 RESTful API 进行数据操作,便于集成和扩展。

Elasticsearch使用场景

日志和事件数据分析: 集中管理和分析日志数据。
全文搜索: 如网站的搜索功能。
监控和报警: 实时监控数据变化并触发报警。


Logstash简介

Logstash 是一个数据收集引擎,能够从多个来源收集数据,进行过滤和转换,然后将数据发送到存储引擎(如 Elasticsearch)。

Logstash主要特点

数据收集: 支持从多种数据源(如文件、数据库、消息队列等)收集数据。
数据处理: 通过过滤器对数据进行处理和转换,如解析日志格式、添加字段等。
数据输出: 将处理后的数据发送到多个目标(如 Elasticsearch、文件、数据库等)。

Logstash使用场景

日志收集和处理: 收集和处理分布在不同系统和应用中的日志。
数据转换: 对原始数据进行格式转换、过滤和增强。


Kibana简介

Kibana 是一个数据可视化和分析平台,专为与 Elasticsearch 一起使用而设计。它提供强大的图形界面,帮助用户进行数据分析和可视化。

Kibana主要特点

**数据可视化:**通过图表、地图、表格等方式展示数据。
**仪表盘:**创建和共享动态仪表盘,实时监控数据变化。
**查询和分析:**通过简单的界面进行数据查询和分析。

Kibana使用场景

日志分析: 可视化分析日志数据,快速发现问题。
业务监控: 创建业务指标的实时监控仪表盘。
安全分析: 用于安全信息和事件管理(SIEM)解决方案。


简单理解

看不懂上面的,没关系,看懂下面就行
Filebeat: 部署在个节点,收集日志
Logstash: 过滤,格式化日志
Elasticsearch: 存储、搜索、分析日志
Kibana: 图形化界面,展示日志、监控系统状态

环境

虚拟机

Ip主机名cpu内存硬盘
192.168.10.11master012cpu双核4G100G
192.168.10.12worker012cpu双核4G100G
192.168.10.13worker022cpu双核4G100G
192.168.10.17ELK1cpu双核4G40G

版本 centos7.9
已部署k8s-1.27

注:如果有条件,可以ELK分别放在三台主机上,我这里是资源有限,所以才全放在一台主机上了

一、ELK集群部署

elk主机部署

1.软件安装

安装jdk
可考虑使用openjdk也可以使用oracle jdk

yum -y install java-11-openjdk

安装kibana

wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.2-x86_64.rpm
yum -y install kibana-7.17.2-x86_64.rpm

安装elasticsearch

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.2-x86_64.rpm
yum -y install elasticsearch-7.17.2-x86_64.rpm

安装logstash

wget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.2-x86_64.rpm
yum -y install logstash-7.17.2-x86_64.rpm

2.软件配置及启动

(1).kibana软件配置及启动
vim /etc/kibana/kibana.yml 

修改如下内容
行号 + 修改后的结果
有的只需要去#号即可
有的不需要更改

     2  server.port: 56017  server.host: "192.168.10.17"32  elasticsearch.hosts: ["http://192.168.10.17:9200"]115  i18n.locale: "zh-CN"

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
说明:
server.port 是开启kibana监听端口
server.host 设置远程连接主机IP地址,用于远程访问使用
elasticsearch.hosts 设置elasticsearch.hosts主机IP,用于连接elasticsearch主机,可以为多个值
i18n.locale 设置语言支持,不需要再汉化,直接修改后即可支持中文

启动服务并验证

systemctl enable kibana
systemctl start kibana
ss -anput | grep ":5601"

在这里插入图片描述

(2).elasticsearch软件配置及启动
vim  /etc/elasticsearch/elasticsearch.yml

同上

    17  cluster.name: k8s-elastic23  node.name: elastic33  path.data: /var/lib/elasticsearch37  path.logs: /var/log/elasticsearch56  network.host: 192.168.10.1761  http.port: 920070  discovery.seed_hosts: ["192.168.10.17"]74  cluster.initial_master_nodes: ["192.168.10.17"]

在这里插入图片描述
在这里插入图片描述
说明
cluster.name 集群名称
node.name 节点名称
path.data 数据目录
path.logs 日志目录
network.host 主机IP
http.port 监听端口
discovery.seed_hosts 主机发现列表
cluster.initial_master_nodes 集群master节点

启动服务并验证

systemctl enable elasticsearch
systemctl start elasticsearch
ss -anput | grep ":9200"

在这里插入图片描述

curl http://192.168.10.17:9200

在这里插入图片描述

(3).logstash软件配置及启动
vim /etc/logstash/logstash.yml

同上

    19  node.name: logstash28  path.data: /var/lib/logstash133  api.http.host: 192.168.10.17139  api.http.port: 9600-9700280  path.logs: /var/log/logstash

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

启动服务
logstash进程不用预先启动,使用时启动即可
现在先不启动

验证logstash可用性

/usr/share/logstash/bin/logstash -e 'input {stdin{} } output {stdout {} }'

在这里插入图片描述
输入abc,查看输出内容

abc

在这里插入图片描述
ctrl +c 退出

使用logstash输入内容到elasticsearch验证

/usr/share/logstash/bin/logstash -e 'input { stdin{} } output { elasticsearch { hosts => ["192.168.10.17:9200"] index => "logstash-%{+YYYY.MM.dd}" } }'

输入

hello elasticsearch

此内容将会通过kibana页面中的索引看到,但是需要在kibana页面中添加索引
在这里插入图片描述

(4).kibana访问

宿主机浏览器访问
192.168.10.17:5601

在欢迎界面选择自己浏览后会进入主界面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(5).编写logstash用于收集日志配置文件

通过filebeat进行收集

vim /etc/logstash/conf.d/logstash-to-elastic.conf
input {beats {host => "0.0.0.0"port => "5044"}
}filter {}output {elasticsearch {hosts => "192.168.10.17:9200"index => "k8s-%{+YYYY.MM.dd}"}
}
(6).运行logstash

如果不涉及多个配置文件,可以直接使用systemctl start logstash;如果有多个配置文件,只想启动一个配置文件,可以使用如下方法。
直接在后台运行

/usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/logstash-to-elastic.conf --path.data /usr/share/logstash/data1 &

不输出内容后按两下回车
在这里插入图片描述
看看端口

netstat -lntp | grep :5044

在这里插入图片描述

二、收集k8s集群节点系统日志

通过在work节点以DaemonSet方法运行filebeat应用实现

1.下载filebeat镜像

所有worker节点
下载filebeat镜像

docker pull elastic/filebeat:7.17.2
docker images

在这里插入图片描述
master节点

2.创建filebeat资源清单文件

vim filebeat-to-logstash.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: k8s-logs-filebeat-confignamespace: kube-systemdata:filebeat.yml: |filebeat.inputs:- type: logpaths:- /var/log/messagesfields:app: k8stype: modulefields_under_root: truesetup.ilm.enabled: falsesetup.template.name: "k8s-module"setup.template.pattern: "k8s-module-*"output.logstash:hosts: ['192.168.10.17:5044']index: "k8s-module-%{+yyyy.MM.dd}"---apiVersion: apps/v1
kind: DaemonSet
metadata:name: k8s-logsnamespace: kube-system
spec:selector:matchLabels:project: k8sapp: filebeattemplate:metadata:labels:project: k8sapp: filebeatspec:containers:- name: filebeatimage: docker.io/elastic/filebeat:7.17.2args: ["-c", "/etc/filebeat.yml","-e",]resources:requests:cpu: 100mmemory: 100Milimits:cpu: 500mmemory: 500MisecurityContext:runAsUser: 0volumeMounts:- name: filebeat-configmountPath: /etc/filebeat.ymlsubPath: filebeat.yml- name: k8s-logsmountPath: /var/log/messagesvolumes:- name: k8s-logshostPath:path: /var/log/messages- name: filebeat-configconfigMap:name: k8s-logs-filebeat-config

3.应用filebeat资源清单文件

kubectl apply -f filebeat-to-logstash.yaml

4.验证结果

kubectl get pod -n kube-system -o wide

在这里插入图片描述

5.在kibana中添加索引

宿主机浏览器访问192.168.10.17:5601
web页面操作
基本和上次一样
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在就能看到日志了
这是系统日志
后面还会写怎么看应用程序的日志
以及容器内部署的应用程序日志

写完已经快噶了
应该会隔一天
如果对您有帮助可以点下关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/39507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Webpack: Loader开发 (2)

概述 在上一篇文章中,我们已经详细了解了开发 Webpack Loader 需要用到的基本技能,包括:Loader 基本形态、如何构建测试环境、如何使用 Loader Context 接口等。接下来我们继续拓展学习一些 Loader 辅助工具,包括: 了…

什么是自然语言处理(NLP)?详细解读文本分类、情感分析和机器翻译的核心技术

什么是自然语言处理? 自然语言处理(Natural Language Processing,简称NLP)是人工智能的一个重要分支,旨在让计算机理解、解释和生成人类的自然语言。打个比方,你和Siri对话,或使用谷歌翻译翻译一…

2024广州国际米粉产业展览会暨米粉节

2024广州国际米粉产业展览会 时间:2024年11月16-18日 地点:广州中国进出口商品交易会展馆 主办单位:企阳国际会展集团 【展会简介】 米粉作为一种历史悠久,人们日常食用的食物,其市场需求稳定,且随着人…

WSL2安装ContOS7并更新gcc

目录 WSL2安装CentOS7下载安装包安装启动CentOS7 CentOS7更换国内源gcc从源码安装gcc卸载gcc CMake中使用gcc关于linux配置文件参考 WSL2安装CentOS7 Windows11官方WSL2已经支持Ubuntu、Open SUSE、Debian。但是没有centos,所以centos的安装方式略有不同。 下载安…

家政小程序的开发:打造现代式便捷家庭服务

随着现代生活节奏的加快,人们越来越注重生活品质与便利性。在这样的背景下,家政服务市场迅速崛起,成为许多家庭日常生活中不可或缺的一部分。然而,传统的家政服务往往存在信息不对称、服务效率低下等问题。为了解决这些问题&#…

【D3.js in Action 3 精译】1.2.2 可缩放矢量图形(三)

当前内容所在位置 第一部分 D3.js 基础知识 第一章 D3.js 简介 1.1 何为 D3.js?1.2 D3 生态系统——入门须知 1.2.1 HTML 与 DOM1.2.2 SVG - 可缩放矢量图形 ✔️ 第一部分第二部分【第三部分】✔️ 1.2.3 Canvas 与 WebGL(精译中 ⏳)1.2.4 C…

独立站新风口:TikTok达人带货背后的双赢合作之道

TikTok以其庞大的用户基础、高度互动性和创新的内容形式,为独立站带来了前所未有的发展机遇。独立站与TikTok达人的合作,不仅能够帮助独立站快速提升品牌知名度和销售额,还能为TikTok达人带来更多商业机会和影响力。本文Nox聚星将和大家探讨独…

Android sdk 安装已经环境配置

🍎个人博客:个人主页 🏆个人专栏:Android ⛳️ 功不唐捐,玉汝于成 目录 正文 一、下载 二、安装 三、环境配置 我的其他博客 正文 一、下载 1、大家可去官网下载 因为需要魔法 所以就不展示了 2、去下面这…

【JS】纯web端使用ffmpeg实现的视频编辑器-视频合并

纯前端实现的视频合并 接上篇ffmpeg文章 【JS】纯web端使用ffmpeg实现的视频编辑器 这次主要添加了一个函数,实现了视频合并的操作。 static mergeArgs(timelineList) {const cmd []console.log(时间轴数据,timelineList)console.log("文件1",this.readD…

Vue+ElementUi实现录音播放上传及处理getUserMedia报错问题

1.Vue安装插件 npm install --registryhttps://registry.npmmirror.com 2.Vue页面使用 <template><div class"app-container"><!-- header --><el-header class"procedureHeader" style"height: 20px;"><el-divid…

vue2 接口文档

const assetmanagementIndex (params) > getAction("/asset/assetmanagementsystem/page", params); //资产管理制度表分页列表 const assetmanagementPost (params) > postAction("/asset/assetmanagementsystem", params); //资产管理制度表新增…

维护Nginx千字经验总结

Hello , 我是恒 。 维护putty和nginx两个项目好久了&#xff0c;用面向底层的思路去接触 在nginx社区的收获不少&#xff0c;在这里谈谈我的感悟 Nginx的夺冠不是偶然 高速:一方面&#xff0c;在正常情况下&#xff0c;单次请求会得到更快的响应&#xff1b;另一方面&#xff0…

从零开始学量化~Ptrade使用教程——安装与登录

PTrade交易系统是一款高净值和机构投资者专业投资软件&#xff0c;为用户提供普通交易、篮子交易、日内回转交易、算法交易、量化投研/回测/实盘等各种交易工具&#xff0c;满足用户的各种交易需求和交易场景&#xff0c;帮助用户提高交易效率。 运行环境及安装 操作系统&…

昇思25天学习打卡营第3天 | 数据集 Dataset

数据是深度学习的基础&#xff0c;高质量的数据输入将在整个深度神经网络中起到积极作用。MindSpore提供基于Pipeline的数据引擎&#xff0c;通过数据集&#xff08;Dataset&#xff09;和数据变换&#xff08;Transforms&#xff09;实现高效的数据预处理。其中Dataset是Pipel…

将数据切分成N份,采用NCCL异步通信,让all_gather+matmul尽量Overlap

将数据切分成N份,采用NCCL异步通信,让all_gathermatmul尽量Overlap 一.测试数据二.测试环境三.普通实现四.分块实现 本文演示了如何将数据切分成N份,采用NCCL异步通信,让all_gathermatmul尽量Overlap 一.测试数据 1.测试规模:8192*8192 world_size22.单算子:all_gather:0.035…

代理IP的10大误区:区分事实与虚构

在当今的数字时代&#xff0c;代理已成为在线环境不可或缺的一部分。它们的用途广泛&#xff0c;从增强在线隐私到绕过地理限制。然而&#xff0c;尽管代理无处不在&#xff0c;但仍存在许多围绕代理的误解。在本博客中&#xff0c;我们将探讨和消除一些最常见的代理误解&#…

人脑网络的多层建模与分析

摘要 了解人类大脑的结构及其与功能的关系&#xff0c;对于各种应用至关重要&#xff0c;包括但不限于预防、处理和治疗脑部疾病(如阿尔茨海默病或帕金森病)&#xff0c;以及精神疾病(如精神分裂症)的新方法。结构和功能神经影像学方面的最新进展&#xff0c;以及计算机科学等…

OBS 免费的录屏软件

一、下载 obs 【OBS】OBS Studio 的安装、参数设置和录屏、摄像头使用教程-CSDN博客 二、使用 obs & 输出无黑屏 【OBS任意指定区域录屏的方法-哔哩哔哩】 https://b23.tv/aM0hj8A OBS任意指定区域录屏的方法_哔哩哔哩_bilibili 步骤&#xff1a; 1&#xff09;获取区域…

012-GeoGebra基础篇-构造圆的切线

前边文章对于基础内容已经悉数覆盖了&#xff0c;这一篇我就不放具体的细节&#xff0c;若有需要可以复刻一下 目录 一、成品展示二、算式内容三、正确性检查五、文章最后 一、成品展示 二、算式内容 A(0,0) B(3,0) c: Circle(A,B) C(5,4) sSegment(A,C) DMidpoint(s) d: Circ…

k8s部署单节点redis

一、configmap # cat redis-configmap.yaml apiVersion: v1 kind: ConfigMap metadata:name: redis-single-confignamespace: redis data:redis.conf: |daemonize nobind 0.0.0.0port 6379tcp-backlog 511timeout 0tcp-keepalive 300pidfile /data/redis-server.pidlogfile /d…