当前位置: 首页 > article >正文

使用EFK收集k8s日志

首先我们使用EFK收集Kubernetes集群中的日志,本次实验讲解的是在Kubernetes集群中启动一个Elasticsearch集群,如果企业内已经有了Elasticsearch集群,可以直接将日志输出至已有的Elasticsearch集群。

文章目录

  • 部署elasticsearch
  • 创建Kibana
  • 创建Fluentd:
  • 查看kibana

部署elasticsearch

下载需要的部署文件:

git clone https://gitee.com/qfxcoffee/shield.git

cd shield/sh/k8s/efk

创建EFK所用的命名空间:

kubectl create -f create-logging-namespace.yaml

创建Elasticsearch集群:

[root@control-plane efk-7.10.2]# kubectl create -f es-service.yaml -f es-statefulset.yaml
service/elasticsearch-logging created
serviceaccount/elasticsearch-logging created
clusterrole.rbac.authorization.k8s.io/elasticsearch-logging created
clusterrolebinding.rbac.authorization.k8s.io/elasticsearch-logging created
statefulset.apps/elasticsearch-logging created

创建Kibana

[root@control-plane efk-7.10.2]# kubectl create -f kibana-deployment.yaml -f kibana-service.yaml
deployment.apps/kibana-logging created
service/kibana-logging created

创建Fluentd:

由于在Kubernetes集群中,可能并不需要对所有的机器都采集日志,因此可以更改Fluentd的部署文件如下,添加一个NodeSelector,只部署至需要采集的主机即可:

[root@control-plane efk-7.10.2]# kubectl get node
NAME                              STATUS   ROLES                  AGE   VERSION
control-plane.minikube.internal   Ready    control-plane,master   18d   v1.23.7

[root@control-plane efk-7.10.2]# kubectl label node control-plane.minikube.internal fluentd=true

[root@control-plane efk-7.10.2]# kubectl get node -l fluentd=true --show-labels
NAME                              STATUS   ROLES                  AGE   VERSION   LABELS
control-plane.minikube.internal   Ready    control-plane,master   18d   v1.23.7   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,fluentd=true,kubernetes.io/arch=amd64,kubernetes.io/hostname=control-plane.minikube.internal,kubernetes.io/os=linux,minikube.k8s.io/commit=210b148df93a80eb872ecbeb7e35281b3c582c61,minikube.k8s.io/name=minikube,minikube.k8s.io/primary=true,minikube.k8s.io/updated_at=2024_11_05T14_44_37_0700,minikube.k8s.io/version=v1.34.0,node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=,node.kubernetes.io/exclude-from-external-load-balancers=

创建Fluentd:

[root@control-plane efk-7.10.2]# kubectl create -f fluentd-es-ds.yaml -f fluentd-es-configmap.yaml
serviceaccount/fluentd-es created
clusterrole.rbac.authorization.k8s.io/fluentd-es created
clusterrolebinding.rbac.authorization.k8s.io/fluentd-es created
daemonset.apps/fluentd-es-v3.1.1 created
configmap/fluentd-es-config-v0.2.1 created

Fluentd的ConfigMap有一个字段需要注意,在fluentd-es-configmap.yaml最后有一个output.conf:

在这里插入图片描述

查看kibana

http://192.168.56.115:32678/kibana/app/home#/

在这里插入图片描述
可以看到整个流程已经打通了。


http://www.kler.cn/a/413017.html

相关文章:

  • 苹果系统中利用活动监视器来终止进程
  • 【智能制造-46】人机工程(工厂自动化)
  • python控制鼠标,键盘,adb
  • Android 12.0新增自定义HIDL问题记录
  • 若依框架部署在网站一个子目录下(/admin)问题(
  • 计算机基础(下)
  • CentOS Docker 安装
  • nginx动静分离和rewrite重写和https和keepalived
  • Python学习35天
  • 力扣刷题TOP101:2.BM2 链表内指定区间反转
  • 如何使用MySQL实现多租户架构:设计与实现全解析
  • leecode738.单调递增的数字
  • Java全栈开发实战:相亲网站开发教程
  • 比特币与区块链原理解析:矿机挖矿与去中心化的未来
  • DFS 创建分级菜单
  • 1、SpringBoo中Mybatis多数据源动态切换
  • ubuntu,rocky的安装和使用远程连接工具连接服务器
  • C++学习日记---第13天(类和对象---封装)
  • Python 中的装饰器是什么?
  • VOS3000历史话单的非法呼叫话单解决方案,IPSS模块安装详细说明,新增随机端口,新增海外功能,可大幅度提高安全性!
  • Kubeadm 安装 Kubernetes 高可用集群 v1.30.0
  • flink中barrier不对齐的原因和影响
  • Unity类银河战士恶魔城学习总结(P146 Delete Save file-P147 Encryption of save data删除数据和加密数据)
  • 软件测试丨Pytest生命周期与数据驱动
  • 下载安装Android Studio
  • C++模板(入门)