[单master节点k8s部署]22.构建EFK日志收集平台(一)

数据收集传输

FileBeat

fileBeat是一个轻量级的日志采集的工具,占用资源极少,可靠性高。虽然具备一定的过滤能力,但是能力有限,所以需要搭配其他的工具进行数据传输和分析。

Fluentd

Fluentd是一个用于日志收集、传输和聚合的工具根据,而且在传输过程中,Fluentd能对日志进行格式化、解析和过滤,他的优势是尽可能的用JSON作为日志输出,所以传输工具以及下游的传输线不需要猜测字符串里面的各个字段的类型。

Fluentd的灵活性并不好,资源消耗也不小,在一些小的嵌入式设备上可以安装Fluent Bit。 

Fluentd

FileBeat

日志收集、处理和传输框架日志收集和传输
基于插件的架构,支持多种输入、过滤和输出插件轻量级,专注于日志收集和传输
支持复杂的日志处理、过滤、解析和格式化处理能力有限
插件生态丰富插件较少,主要依赖于Elasticsearch
由于支持插件和处理功能,所以资源占用较高资源占用较少
适合复杂的日志管道和需要进行实时处理的场景适合轻量日志收集
是CNCF的项目,集成了很多云原生工具

是Elastic Stack的一部分,与elasticsearch、kibana集成

Logagent

是一个性能介于FLuentd和FileBeat之间的一个日志收集工具,适合容器和服务器环境,插件有限,与Sematext平台深度集成。

Logstash

数据收集与数据解析过滤,通过强大的额过滤插件,用户可以对原始数据进行结构化处理,例如提取字段、格式化时间戳、删除或添加字段。它适合处理大量数据的场景。Logstash与Elasticsearch紧密结合,适合ELK Stack。

它的致命缺点是性能以及资源消耗,尽管性能在近几年已经提升很多,但是比其他替代者还是慢很多,它的优势是使用Grok工具将非结构化数据解析为结构化和可查的结构数据。另一个痛点是 不支持缓存,有可能造成数据丢失,因此替代方案是将Redis或Kafka作为中心缓冲池。

数据分析

ElasticSearch

免费的分布式开源搜索和分析引擎,是Elastic Stack中的核心组件。

Beats工具:

fileBeat:日志文件收集

packetBeat: 网络数据收集

MetricBeat: 指标收集

WinlogBeat: windows事件收集

AuditBeat: 审计数据收集

HeartBeat: 运行时间监控

搭建

  • 创建命名空间:

创建一个叫kube-logging的命名空间

  • 创建headless-service:

headless service不会像普通service一样进行负载均衡,而是直接将pod的IP地址暴露给dns。假设我们有三个后端的pod(防止裂脑问题),有一个名为elasticsearch的Headless Service,那么DNS表为:

elasticsearch.default.svc.cluster.local -> es-node-0.default.svc.cluster.local-> es-node-1.default.svc.cluster.local-> es-node-2.default.svc.cluster.local

这个可以方便我们创建statefulset的一个elasticsearch的服务。 

我们通过如下的yaml文件创建一个headless service,则我们有了一个域名:elastic31.kube-logging31.svc.cluster.local

kind: Service
apiVersion: v1
metadata:name: elasticsearch31namespace: kube-logging31labels:app: elasticsearch
spec:selector:app: elasticsearchclusterIP: Noneports:- port: 9200name: rest- port: 9300name: inter-node
  • 创建nfs空间:

在master节点创建一个目录。

 mkdir /data/v1 -p 
[root@xomaster ~]# vim /etc/exports 
/data/v1 192.168.244.128/24(rw,no_root_squash) #加载配置,使配置生效 
[root@master ~]# exportfs -arv 
[root@master ~]# systemctl restart nfs
  • 创建nfs作为存储供应商

首先进行serviceaccount创建和rbac授权:

apiVersion: v1
kind: ServiceAccount
metadata:name: nfs-provisioner31
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: nfs-provisioner-runner31
rules:- apiGroups: [""]resources: ["persistentvolumes"]verbs: ["get", "list", "watch", "create", "delete"]- apiGroups: [""]resources: ["persistentvolumeclaims"]verbs: ["get", "list", "watch", "update"]- apiGroups: ["storage.k8s.io"]resources: ["storageclasses"]verbs: ["get", "list", "watch"]- apiGroups: [""]resources: ["events"]verbs: ["create", "update", "patch"]- apiGroups: [""]resources: ["services", "endpoints"]verbs: ["get"]- apiGroups: ["extensions"]resources: ["podsecuritypolicies"]resourceNames: ["nfs-provisioner31"]verbs: ["use"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: run-nfs-provisioner31
subjects:- kind: ServiceAccountname: nfs-provisioner31namespace: default
roleRef:kind: ClusterRolename: nfs-provisioner-runner31apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-provisioner
rules:- apiGroups: [""]resources: ["endpoints"]verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: leader-locking-nfs-provisioner31
subjects:- kind: ServiceAccountname: nfs-provisioner31namespace: default
roleRef:kind: Rolename: leader-locking-nfs-provisioner31apiGroup: rbac.authorization.k8s.io

修改/etc/kubernetes/manifests/kube-apiserver.yaml的内容,添加

- --feature-gates=RemoveSelfLink=false 。

可以看到在修改之前,提供api服务的pod名叫api-server-master,当修改后,发现多了一个api-server的pod,而且是pending状态,因此删除这个pod。

[root@master 31efk]# kubectl get pods -n kube-system
NAME                                       READY   STATUS    RESTARTS          AGE
calico-kube-controllers-677cd97c8d-bqrpr   1/1     Running   0                 65d
calico-node-27c2l                          1/1     Running   176 (7h9m ago)    65d
calico-node-55kpl                          1/1     Running   185 (7h10m ago)   65d
calico-node-flv9r                          1/1     Running   178 (7h9m ago)    65d
coredns-6d8c4cb4d-c7qcr                    1/1     Running   0                 65d
coredns-6d8c4cb4d-vc77w                    1/1     Running   0                 65d
deamonset26-9psp2                          1/1     Running   0                 53d
deamonset26-c967m                          1/1     Running   0                 53d
deamonset26-pq6ns                          1/1     Running   0                 53d
etcd-master                                1/1     Running   0                 65d
kube-apiserver-master                      1/1     Running   1 (58d ago)       65d
kube-controller-manager-master             1/1     Running   10 (5d14h ago)    65d
kube-proxy-2v8x6                           1/1     Running   0                 51d
kube-proxy-45db5                           1/1     Running   0                 51d
kube-proxy-8q8rq                           1/1     Running   0                 51d
kube-scheduler-master                      1/1     Running   3 (5d14h ago)     51d
kube-state-metrics-57794dcf65-wcjkx        1/1     Running   0                 52d
monitoring-grafana-7948df75d9-jrj45        1/1     Running   0                 52d
[root@master 31efk]# vim /etc/kubernetes/manifests/kube-apiserver.yaml 
[root@master 31efk]# vim /etc/kubernetes/manifests/kube-apiserver.yaml 
[root@master 31efk]# kubectl apply -f  /etc/kubernetes/manifests/kube-apiserver.yaml 
pod/kube-apiserver created
[root@master 31efk]# kubectl get pods -n kube-system
NAME                                       READY   STATUS    RESTARTS          AGE
calico-kube-controllers-677cd97c8d-bqrpr   1/1     Running   0                 65d
calico-node-27c2l                          1/1     Running   176 (7h16m ago)   65d
calico-node-55kpl                          1/1     Running   185 (7h17m ago)   65d
calico-node-flv9r                          1/1     Running   178 (7h16m ago)   65d
coredns-6d8c4cb4d-c7qcr                    1/1     Running   0                 65d
coredns-6d8c4cb4d-vc77w                    1/1     Running   0                 65d
deamonset26-9psp2                          1/1     Running   0                 53d
deamonset26-c967m                          1/1     Running   0                 53d
deamonset26-pq6ns                          1/1     Running   0                 53d
etcd-master                                1/1     Running   0                 65d
kube-apiserver                             0/1     Pending   0                 26s
kube-apiserver-master                      1/1     Running   1 (53s ago)       30s
kube-controller-manager-master             1/1     Running   11 (113s ago)     65d
kube-proxy-2v8x6                           1/1     Running   0                 51d
kube-proxy-45db5                           1/1     Running   0                 51d
kube-proxy-8q8rq                           1/1     Running   0                 51d
kube-scheduler-master                      1/1     Running   4 (113s ago)      51d
kube-state-metrics-57794dcf65-wcjkx        1/1     Running   0                 52d
monitoring-grafana-7948df75d9-jrj45        1/1     Running   0                 52d
  • 安装nfs服务:

解压nfs镜像,并且进行deployment配置

kind: Deployment
apiVersion: apps/v1
metadata:name: nfs-provisioner31
spec:selector:matchLabels:app: nfs-provisioner31replicas: 1strategy:type: Recreatetemplate:metadata:labels:app: nfs-provisioner31spec:serviceAccount: nfs-provisioner31volumes:- name: nfs-client-rootnfs:server: 192.168.244.128path: /data/v1containers:- name: nfs-provisionerimage: registry.cn-hangzhou.aliyuncs.com/open-ali/xianchao/nfs-client-provisioner:v1imagePullPolicy: IfNotPresentvolumeMounts:- name: nfs-client-rootmountPath: /persistentvolumesenv:- name: PROVISIONER_NAMEvalue: example.com/nfs- name: NFS_SERVERvalue: 92.168.244.128- name: NFS_PATHvalue: /data/v1

成功创建了nfs服务:

[root@master 31efk]# kubectl get pods | grep nfs
nfs-provisioner31-648f6c98ff-4qfs8   1/1     Running   0          9m27s
nfs-provisioner31-648f6c98ff-hcx6k   1/1     Running   0          9m27s
  • 创建storageClass

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:name: do-block-storage
provisioner: example.com/nfs

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

『功能项目』3D模型动态UI显示【76】

本章项目成果展示 我们打开上一篇75主角属性值显示的项目, 本章要做的事情是将3D模型动态显示在主角属性展示界面 首先创建RawImage 调整尺寸 创建文件夹:RenderTexture 创建 Render Texture 创建Camera 在场景中放置一个主角预制体删除所有组件 清空标…

从理论到实践:业务能力建模在数字化转型中的落地实施路径

在数字化转型的浪潮下,企业正在寻求有效的方法来将复杂的战略目标、业务需求和技术能力整合为可执行的操作路径。《业务能力指南》提供了一个系统性的框架,通过业务能力建模帮助企业实现从理论到实践的平稳过渡。本文将以“从理论到实践应用”的视角&…

优思学院:六西格玛(6 Sigma)是什么?

自1987年起,在摩托罗拉公司的推动下,六西格玛的定义已经经历了多次演进。六西格玛可以分为三个基本类别:一种质量方案,主要关注财务成果;一种统计方法,基于过程改进;以及一种统计定义&#xff0…

hrm人力资源管理系统,绩效,考勤,薪酬,五险一金,等全面人力管理(源码+配套方案)

一、项目介绍 一款全源码可二开,可基于云部署、私有部署的企业级数字化人力资源管理系统,涵盖了招聘、人事、考勤、绩效、社保、酬薪六大模块,解决了从人事招聘到酬薪计算的全周期人力资源管理,符合当下大中小型企业组织架构管理运…

评论表设计与实现(多级评论)

首先分析评论的类型 对文章的回复(也称根回复或一级回复)对根评论的回复 (二级回复,被回复的评论id和根评论相同)对回复的回复(二级回复,被回复的评论id和根评论不同) 抽象出数据库…

使用护眼台灯能不能有效预防近视?看世界公认十大护眼灯推荐

2024年的中国,近视问题依旧是一个严峻的公共卫生挑战,特别是儿童和青少年中的近视率持续升高,引起了广泛的关注。据最新的调查数据显示,若无有效控制手段,2050年3-19岁儿童青少年的近视率预计达到84%,高度近…

初识前端监控

以下笔记来源:黑马程序员 背景 思考一下,我们的项目代码在上线之后是不是就不用管了呢? 并不是,作为前端开发工程师,我们是直接跟用户打交道的,一个应用的用户留存率跟这个应用的稳定性有很大的关系&…

学生护眼台灯哪个品牌比较好?五款市场上评价较高的护眼台灯

许多兴趣班和课后辅导班都转移到了线上进行,这就意味着孩子们需要长时间面对电脑或手机屏幕。尽管学习的需求使得完全避免使用这些设备变得不现实,但我们可以通过一些措施来减轻其对眼睛的伤害。护眼台灯的引入便是一个有效的解决方案,它能够…

Java面试篇基础部分- Java中的阻塞队列

首先队列是一种前进后出的操作结构,也就是说它只允许从队列前端进入,从队列后端退出。这个前端和后端看个人如何理解,也就是通常所说的入队和出队,队头和队尾。 阻塞队列和一般队列的不同就在于阻塞队列是可以阻塞的,这里所说的并不是说队列中间或者队头队尾被拦截了,而是…

程序员下班以后做什么副业合适?_35技术人员副业

我就是一个最普通的网络安全工程师,出道快10年了,不出意外地遭遇到瓶颈期,但是凭技术在各大平台挖漏洞副业,硬是妥妥扛过来了。 因为对于程序员来讲,这是个试错成本很低、事半功倍的选择。编程技能是一种强大生产力&a…

美团中间件C++一面-面经总结

1、TCP和UDP 的区别? 速记标识符:连靠刘墉宿营 解释: 面向连接vs无连接 可靠传输vs不保证可靠 字节流vs报文传输 拥塞控制流量控制vs无 速度慢vs速度快 应用场景自己描述 2、服务端处于close wait是什么情况,是由什么造成的&…

JAVA城市探索新纪元同城达人向导系统小程序源码

城市探索新纪元 —— 同城达人向导系统 🚀【开篇:踏入未知,探索城市的无限可能】🚀 你是否厌倦了千篇一律的旅行攻略?是否渴望一次真正深入城市肌理的探索之旅?今天,就让我们一起踏入“城市探索…

旷视科技ShuffleNetV1代码分析[pytorch版]

一、前述 旷视科技针对于ShuffleNet系列网络在GitHub网站上已开源,其链接:https://github.com/megvii-model/ShuffleNet-Series 在这个系列中,包括了ShuffleNetV1/V2网络,如下图所示。 我们点开ShuffleNetV1文件夹&#xff0…

为什么pmp证书只能对标cspm二级证书??

PMP跟CSPM一个是国际上的证书,一个是中国本土的证书。一个偏理论一个偏实践。对标来说,PMP的等级跟CSPM-2级一个等级,如果想对标更高级,那就要更高级的证书了。 现在有 PMP/PGMP 证书的可以不用参加考试就能换 CSPM -2 级跟 CSPM-…

2024年双十一买什么好?五款好物推荐!

​是不是很多朋友跟我一样,已经为双11做好了准备,打算开启买买买的节奏!作为一名家居兼数码博主,每年双11的时候都会疯狂囤很多物品,所以今天就跟大家来分享一下,我的双11购物清单,也给大家参考…

Linux-DHCP服务器搭建

环境 服务端:192.168.85.136 客户端:192.168.85.138 1. DHCP工作原理 DHCP动态分配IP地址。 2. DHCP服务器安装 2.1前提准备 # systemctl disable --now firewalld // 关闭firewalld自启动 # setenforce 0 # vim /etc/selinux/config SELINU…

解锁MySQL升级秘诀:提升性能、增强安全的必备指南

随着mysql不断演进,旧的版本不断地会发现新的漏洞,为修复漏洞体验新版本的功能,就需要对数据库进行升级操作。 升级注意点 备份!备份!备份! 1.从5.6升级到5.7需首先升级到5.6最新版;不支持跨…

Apache Iceberg 数据类型参考表

Apache Iceberg 概述-链接 Apache Iceberg 数据类型参考表 数据类型描述实例方法注意事项BOOLEAN布尔类型,表示真或假true, false用于条件判断,例如 WHERE is_active true。确保逻辑条件的正确性。INTEGER32位有符号整数42, -7可用于计算、聚合&#xf…

照片去水印怎么操作?3个高清壁纸无损去水印的教程分享

上网真好啊! 能够找到好多摄影大神分享的,超好看的自然景物照片,每一张都想拿来当电脑桌面壁纸、手机壁纸...... 但上网拿的照片有这点不好,就是大部分照片都带有防盗水印,虽说不影响照片的整体美观,但作为…

Android Studio报错 Cause connect timed out

Android Studio报错 Cause connect timed out 解决方法: 在gradle-wrapper.properties中更改distributionUrl为: distributionUrlhttps://mirrors.cloud.tencent.com/gradle/gradle-5.1.1-all.zip如果对你有帮助,就一键三连呗(关…