Kubernetes——part10-2 kubernetes 日志收集方案 EFK
一、EFK
1.1 EFK介绍
EFK为elasticsearch、fluentd、kibana的简称,本案例主要对kubernetes集群日志收集。
1.2 Fluentd介绍
fluentd是一款开源的日志收集工具,其于2016年11月8日被云原生计算基金会录取,并于2019年毕业。
Fluentd优势:
- 使用 JSON 进行统一日志记录
- 其尽可能地把数据结构化为JSON,让下游数据处理容易。
- 可插拔架构
- 利用插件,允许对其功能扩展
- 对计算机资源要求少
- 其使用c语言和ruby结合编写,需要少量系统资源即可运行。
- 内置可靠性
- 支持基于内存和文件的缓冲,防止节点间数据丢失
- 支持强大故障转移并可设置为高可用性
二、EFK部署
2.1 获取EFK部署资源清单文件
把EFK部署资源清单文件复制到本地主机,本次本地主机主要指k8s master节点
# git clone https://github.com/kubernetes/kubernetes.git
进入目录并查看目录内容
# cd kubernetes/
# ls
api cluster docs LICENSE Makefile.generated_files plugin SUPPORT.md
build cmd go.mod LICENSES OWNERS README.md test
CHANGELOG code-of-conduct.md go.sum logo OWNERS_ALIASES SECURITY_CONTACTS third_party
CHANGELOG.md CONTRIBUTING.md hack Makefile pkg staging vendor
查看分支
# git branch
切换对应版本的分支
# git checkout -b v1.21.10
进入目录并查看目录内容
# cd cluster/addons/fluentd-elasticsearch
# ls
create-logging-namespace.yaml es-statefulset.yaml fluentd-es-image OWNERS
es-image fluentd-es-configmap.yaml kibana-deployment.yaml podsecuritypolicies
es-service.yaml fluentd-es-ds.yaml kibana-service.yaml README.md
2.2 安装ES
2.2.1 创建命名空间
应用资源清单文件创建命名空间,非必须,可使用资源清单中默认的命名空间 kube-system
# kubectl create namespace logging
2.2.2 部署ES
部署ES,注意部署前的配置
# kubectl apply -f es-statefulset.yaml
应用前,请注释此文件中ClusterIP:None,并修改type类型为:NodePort,再执行
# kubectl apply -f es-service.yaml
2.2.3 查看安装情况
查看ES部署的pod是否运行
# kubectl get pods -n logging
NAME READY STATUS RESTARTS AGE
elasticsearch-logging-0 1/1 Running 0 8m
elasticsearch-logging-1 1/1 Running 1 5m50s
查看ES部署后的SVC,验证其访问的方法
# kubectl get svc -n logging
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch-logging NodePort 10.107.97.124 <none> 9200:31885/TCP,9300:32214/TCP 68s
2.2.4 验证集群是否健康
查看ES集群是否健康,下面状态为健康。
# curl 10.107.97.124:9200/_cat/health?pretty
1640939218 08:26:58 kubernetes-logging green 2 2 6 3 0 0 0 0 - 100.0%
2.3 部署fluentd
2.3.1 部署fluentd
部署前对fluentd configmap进行配置,主要修改其连接ES的地址及对应的端口,此两项根据使用环境的不同,配置也不相同。
# vim fluentd-es-configmap.yaml456 output.conf: |-
457 <match **>
458 @id elasticsearch
459 @type elasticsearch
460 @log_level info
461 type_name _doc
462 include_tag_key true
463 host elasticsearch-logging 修改此处为es主机地址
464 port 9200 使用NodePort时,此处也需要修改对应映射端口
465 logstash_format true
466 <buffer>
应用资源清单文件
# kubectl apply -f fluentd-es-configmap.yaml
修改资源清单文件
# vim fluentd-es-ds.yaml55 selector:56 matchLabels:57 k8s-app: fluentd-es58 version: v3.1.159 template:60 metadata:61 labels:62 k8s-app: fluentd-es63 version: v3.1.164 spec:65 #securityContext:66 # seccompProfile:67 # type: RuntimeDefault
应用资源清单文件
# kubectl apply -f fluentd-es-ds.yaml
2.3.2 查看部署状态
查看已部署的组件pod运行情况
# kubectl get pods -n logging
输出结果:
NAME READY STATUS RESTARTS AGE
elasticsearch-logging-0 1/1 Running 0 20m
elasticsearch-logging-1 1/1 Running 1 18m
fluentd-es-v3.1.1-2chjb 1/1 Running 0 64s
fluentd-es-v3.1.1-5gpmd 1/1 Running 0 64s
2.4 部署Kibana
2.4.1 部署Kibana
修改资源清单文件
# vim kibana-deployment.yaml18 spec:以下三行注释掉19 # securityContext: 20 # seccompProfile:21 # type: RuntimeDefault22 containers:23 - name: kibana-logging24 image: docker.elastic.co/kibana/kibana-oss:7.10.225 resources:26 # need more cpu upon initialization, therefore burstable class27 limits:28 cpu: 1000m29 requests:30 cpu: 100m31 env:32 - name: ELASTICSEARCH_HOSTS33 value: http://elasticsearch-logging.logging.svc.cluster.local.:920034 - name: SERVER_NAME35 value: kibana-logging以下两行注释掉36 #- name: SERVER_BASEPATH37 # value: /api/v1/namespaces/logging/services/kibana-logging/proxy
应用资源清单文件
# kubectl apply -f kibana-deployment.yaml
修改kibana service资源清单文件,以NodePort类型暴露服务,供K8S集群外用户访问
# vim kibana-service.yamlspec:ports:- port: 5601protocol: TCPtargetPort: uiselector:k8s-app: kibana-loggingtype: NodePort 添加此行内容
应用资源清单文件
# kubectl apply -f kibana-service.yaml
2.4.2 查看Kibana部署状态
查看已部署组件pod运行状态
# kubectl get pods -n logging
NAME READY STATUS RESTARTS AGE
elasticsearch-logging-0 1/1 Running 0 25m
elasticsearch-logging-1 1/1 Running 1 22m
fluentd-es-v3.1.1-2chjb 1/1 Running 0 5m45s
fluentd-es-v3.1.1-5gpmd 1/1 Running 0 5m45s
kibana-logging-c46f6b9c5-g9fsl 1/1 Running 0 11s
获取kibana对外提供的主机地址及对应的端口
# kubectl get svc -n logging
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
elasticsearch-logging NodePort 10.107.97.124 <none> 9200:31885/TCP,9300:32214/TCP 15m
kibana-logging NodePort 10.99.171.38 <none> 5601:31739/TCP 7s
在K8S集群任意主机查看是否打开kibana对外的端口(服务类型为NodePort)# ss -anput | grep "31739"
tcp LISTEN 0 4096 *:31739 *:* users:(("kube-proxy",pid=4569,fd=23))
通过浏览器访问kibana web界面。
相关文章:
Kubernetes——part10-2 kubernetes 日志收集方案 EFK
一、EFK 1.1 EFK介绍 EFK为elasticsearch、fluentd、kibana的简称,本案例主要对kubernetes集群日志收集。 1.2 Fluentd介绍 fluentd是一款开源的日志收集工具,其于2016年11月8日被云原生计算基金会录取,并于2019年毕业。 Fluentd优势&…...
mockito+junit完成单元测试
一:单元测试的特点 配合断言使用(可以杜绝System.out)可以重复执行不依赖环境不会对数据产生影响spring的上下文环境不是必须的一般都需要配合mock类框架来实现 二:常用的mock类框架 mockito 官网:Mockito framew…...
基于web的便捷饭店点餐小程序的设计与实现(lw+演示+源码+运行)
摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱,出错率高,信息安全…...
CUDA环境安装终极指南——Linux(其它系统也一样)
文章目录 前言检查驱动配置nvcc安装cudnn完活 前言 不用看其它文章了,这篇文章保你不踩任何坑,安装方法简单快速 检查驱动 检查驱动是否安装,输入以下命令 nvidia-smi如果驱动已经安装,则可跳过此步,否则ÿ…...
安卓开发之登录页面(跳转版)
目录 前言:基础夯实:效果展示:核心代码:网盘源码: 前言: 熟悉安卓开发的基础知识,了解,弹窗,两个页面进行跳转,页面的布局,按钮,文本…...
solidworks学习6吊环-20241030
solidworks学习6吊环 图 1 使用到的命名:拉伸曲面,旋转曲面,镜像实体,剪裁曲面, 前视基准面绘制 图 2 绘制旋转轴 图 3 旋转曲面 图 4 上视基准面绘制,标准圆边尺寸的时候需要按住shift键标注&#x…...
数据结构和算法-动态规划(3)-经典问题
动态规划常见问题 打家劫舍 题目 [力扣198] 198. 打家劫舍 - 力扣(LeetCode) 题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&…...
Java算法-一维前缀和与差分
一、一维前缀和 ① 什么是一维前缀和? 📚 其实通过名字就能知道" 一维前缀和 "的意思: 通过一个一维数组"arr1"而创建的另一个一维数组"arr2","arr2"的每一个元素都是"arr1"…...
Elasticsearch 安装教程:驾驭数据海洋的星际导航仪
目录 一、准备工作1. ES的下载 二、安装步骤三、注意事项四、启动报错1. org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root2. max virtual memory areas vm.max_map_count [65530] is too low, increase to at l…...
【解决方案】微信小程序如何使用 ProtoBuf 进行 WebSocket 通信
前言 故事背景 简单说下背景,项目中需要用 ProtoBuf 协议转换请求参数,并通过 WebSocket 进行双向通信。重点!一个是 web端(Vue3 TS),一个是微信小程序端(原生 JS)。 剧情发展 …...
独立游戏开发者面临的挑战与困境
在当今竞争激烈的游戏市场中,独立游戏开发者面临着诸多挑战与困境。从游戏版号申请到游戏被抄袭,再到产品同质化以及流量获取难题,乃至外包内卷现象,每一个环节都考验着开发者的智慧与毅力。以下是对这些挑战与闲境的详细分析。 …...
KVM 虚拟机Anolis OS 8.9 下利用宝塔面板中的 Docker 配置 Nextcloud + onlyoffice
第一部分:安装配置 nextcloud 准备 (1)启动一个 Anolis OS 8.9 虚拟机,见下图。该虚拟机为 anlisos8…0.2 虚拟机的 ssh、hostname 、IP地址都已配置好。 (2)宝塔面板也已安装好docker 一、环境 do…...
串口扫盲TTL,TX/TR/GND
1. 串口扫盲TTL,TX/TR/GND 1. 串口扫盲TTL,TX/TR/GND 1.1. TTL1.2. USB转TTL1.3. 串口通信1.4. 引脚缩写1.5. 参考资料 1.1. TTL TX(TXD) 来源于 Transmit 一词,意思为发送,发射RX(RXD) 来源于 Receive 一词 意思为接收,收到GND 地线&…...
Python酷库之旅-第三方库Pandas(181)
目录 一、用法精讲 836、pandas.api.types.is_file_like函数 836-1、语法 836-2、参数 836-3、功能 836-4、返回值 836-5、说明 836-6、用法 836-6-1、数据准备 836-6-2、代码示例 836-6-3、结果输出 837、pandas.api.types.is_list_like函数 837-1、语法 837-2、…...
Python数据分析NumPy和pandas(十七、pandas 二进制格式文件处理)
以二进制格式存储(或序列化)数据的一种简单方法是使用 Python 的内置 pickle 模块。同时,pandas 构造的对象都有一个 to_pickle 方法,该方法以 pickle 格式将数据写入磁盘。 我们先把之前示例用到的ex1.csv文件加载到pandas对象中…...
matlab计算相关物理参数
function Rx1Jetfire1_1(di,Ct,Tf,Tj,alpha,Ma,Mf,RH,P0,P,k,Cd,elta,deltaHc,tau,directory) % 一共15个独立变量,为了方便输入修改,所有变量存入Jetfire1_1excel表, % dj为孔口直径,m;Ct为燃料空气混合摩尔系数,可…...
nmcli、ip、ifcfg配置网络区分方法
文章目录 一、检查NetworkManager状态使用nmcli命令:检查NetworkManager服务状态: 二、检查ip命令的使用三、检查ifcfg文件查看/etc/sysconfig/network-scripts/目录:查看/etc/network/interfaces文件(针对Debian系)&a…...
第四届智能电力与系统国际学术会议(ICIPS 2024)
文章目录 一、会议详情二、重要信息三、大会介绍四、出席嘉宾五、征稿主题六、咨询 一、会议详情 二、重要信息 大会官网:https://ais.cn/u/vEbMBz提交检索:EI Compendex、IEEE Xplore、Scopus 三、大会介绍 四、出席嘉宾 五、征稿主题 如想"投稿…...
区块链样题第4套解析 后端应用开发部分
任务3-2:区块链应用后端开发 使用JAVA-SDK与区块链进行交互,通过solc2Java工具将Solidity智能合约转译为可供Java调用的文件,实现区块链编程。 前言:题目只是单纯考了对于fisco-java-sdk的简单使用 教程参考: 1.这边建议还是学习完JavaWeb课程。 黑马程序员JavaWeb...
C语言实现408考研真题2016年43题
#include <iostream> // 定义分区函数,返回两个子数组之和的差值 int setPartition(int a[], int n) { int pivotkey, low 0, low0 0, high n - 1, high0 n - 1, flag 1, k n / 2, i; int s1 0, s2 0; // 当low等于k-1,…...
2024年,Rust开发语言,现在怎么样了?
Rust开发语言有着一些其他语言明显的优势,但也充满着争议,难上手、学习陡峭等。 Rust 是由 Mozilla 主导开发的通用、编译型编程语言,2010年首次公开。 在 Stack Overflow 的年度开发者调查报告中,Rust 连续多年被评为“最受喜爱…...
三种网络配置方法nmcli、ip、ifcfg文件
文章目录 总结nmcli配置网络定义与功能:特点:示例: ip配置网络定义与功能:特点:示例: ifcfg配置网络定义与功能:特点:示例: 总结 nmcli:适合需要动态管理网络…...
AES_ECB算法C++与Java相互加解密Demo
一、AES算法 AES是一种对称加密算法,算法秘钥长度可为128位(16字节)、192位(24字节)、256位(32字节)。加密模式分为ECB、CBC、CTR等,其中ECB模式最简单够用。现给出ECB模式下C和Java的实现,并且可以相互加解密验证。 二、AES_ECB实现DEMO …...
H7-TOOL自制Flash读写保护算法系列,为兆易创新GD32E23X制作使能和解除算法,支持在线烧录和脱机烧录使用(2024-10-29)
说明: 很多IC厂家仅发布了内部Flash算法文件,并没有提供读写保护算法文件,也就是选项字节算法文件,需要我们制作。 实际上当前已经发布的TOOL版本,已经自制很多了。但是依然有些厂家还没自制,所以陆续开始…...
FFmpeg 深度教程音视频处理的终极工具
1. 引言 什么是 FFmpeg? FFmpeg 是一个开源的跨平台多媒体处理工具,广泛应用于音视频的录制、转换、流式传输以及编辑等多个领域。它由 FFmpeg 项目团队开发和维护,支持几乎所有主流的音视频格式和编解码器。FFmpeg 包含了一系列强大的命令…...
Java程序设计:spring boot(13)——全局异常与事务控制
1 Spring Boot 事务支持 在使⽤ Jdbc 作为数据库访问技术时,Spring Boot框架定义了基于jdbc的PlatformTransaction Manager 接⼝的实现 DataSourceTransactionManager,并在 Spring Boot 应⽤ 启动时⾃动进⾏配置。如果使⽤ jpa 的话 Spring Boot 同样提供…...
金和OA-C6 ApproveRemindSetExec.aspx XXE漏洞复现(CNVD-2024-40568)
0x01 产品描述: 金和C6协同管理平台是以"精确管理思想"为灵魂,围绕“企业协同四层次理论”模型,并紧紧抓住现代企业管理的六个核心要素:文化 Culture、 沟通Communication 、 协作Collaboration 、创新 Creation、 控制…...
Redis集群及Redis存储原理
Redis存储原理 Redis将内存划分为16384个区域(类似hash槽) 将数据的key使用CRC16算法计算出一个值,取余16384 得到的结果是0~16383 将这个key保存在计算结果对应的槽位 再次查询这个key时,直接到这个槽位查找,效率很高 实际上这就是"散列表" 提高查询的效率 R…...
基于Springboot的图书个性化推荐系统【源码】+【论文】
图书个性化推荐系统是一个基于Java语言和Springboot框架开发的Web应用系统,主要为管理员和学生提供个性化图书推荐、图书预约和管理功能。系统通过管理员和学生的不同权限设置,实现了图书分类管理、预约管理、退换图书管理、留言板管理等全面的功能&…...
科普 | 子母钟系统是什么?网络时钟同步的重要性?
科普 | 子母钟系统是什么?网络时钟同步的重要性? 科普 | 子母钟系统是什么?网络时钟同步的重要性? 在信息时代的今天,准确统一的时钟系统已广泛的应用在车站、医院、学校、机场等公共服务场所。 因此完善的时钟系统对…...
自己做网站怎样挣钱/网页制作接单平台
下面的表格包含了 Confluence 站点使用集群的信息。clustersafety在通常的情况下,这个表格只有一条记录。 safetynumber 的值是 Confluence 被用来如何找到其他的 Confluence 站点,这些站点是共享数据库但是又不在同一个集群里面。 https://www.cwiki.us…...
建设工程造价管理总站网站/佛山网站seo
本人目前为止 做过最难的一题 看了别人的代码半天才看懂 真正理解代码 用了一下午的时间。代码如下: #include<stdio.h>#include<string.h> int k,n,m;int p[500][500]{0};int luckboy[500]//一种标志 一定其luckboy[i]1 表示i已经有后女友了 前女友不能…...
做网站运营需要培训吗/推广链接点击器
代码如下所示: <body class"ancestors">body (曾曾祖父节点)<div classgrandPa>div (曾祖父节点)<ul>ul (祖父节点) <li>li (直接父节点)<span>span</span></li></ul> </div></body>jQu…...
湖南省水利水电建设工程学校网站/百度关键词工具
目录链表指针(地址)指针基础指针和一维数组指针与地址指针传入函数结构体typedef的使用动态分配内存链表 #include <stdio.h> #include <malloc.h> #include <stdlib.h> #include <stdbool.h>typedef struct Node{ //单链表的…...
上海网站络公司/百度搜索推广采取
2019独角兽企业重金招聘Python工程师标准>>> 1、九宫格 参考: http://blog.csdn.net/xyz_lmn/archive/2009/11/11/4797902.aspx 2、自定义listview 参考: http://blog.csdn.net/xyz_lmn/archive/2009/11/13/4808277.aspx 转载于:https://my.o…...
美食门户网站源码/石家庄seo优化公司
学生信息管理系统(C语言、含代码解释)第3章 脂类代谢 脂类的分布与生理功能 脂类的消化与吸收 血脂 甘油三酯的中间代谢 类脂代谢 脂类代谢紊乱 3.1 脂类的分布和生理功能 3.1.1 脂类的分布 3.1.2 脂类的生理功能 脂肪 储能和供能 防止散热保持体温 保护固定内脏 提供必需脂肪酸…...