小白到运维工程师自学:路 第七十六集 kubernetes:EFK构建日志平台
一、概述
1、Elasticsearch产品介绍
Elasticsearch 是一个 Restful 风格的、开源的分布式搜索引擎,具备搜索和数据分析功能,它的底层是开源库 Apache Lucene。Elasticsearch 具有如下特点。
- 一个分布式的实时文档存储,每个字段可以被索引与搜索;
- 一个分布式实时分析搜索引擎;
- 能支撑上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据。
2、Fluentd 工作原理
Fluentd 是一个日志的收集、处理、转发系统。通过丰富的插件,可以收集来自各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统中。
Fluentd 通过一组给定的数据源抓取日志数据,处理后(转换成结构化的数据格式)将它们转发给其他服务,比如 Elasticsearch、对象存储等等。Fluentd 支持超过 300 个日志存储和分析服务,所以对日志存储和分析服务的支持是非常灵活的。Fluentd 采用了插件式的架构,具有高可扩展性及高可用性,同时还实现了高可靠的信息转发。其主要运行步骤如下所示:
(1)首先 Fluentd 从多个日志源获取数据。
(2)结构化并且标记这些数据。
(3)最后根据匹配的标签将数据发送到多个目标服务。
3、Kibana产品介绍
Kibana 是一个开源的可视化分析平台,用于和 Elasticsearch 一起工作。可以通过Kibana 搜索、查看、交互存放在 Elasticsearch 索引中的数据。也可以轻松地执行高级数据分析,并且以各种图表、表格和地图的形式可视化数据。Kibana 简单的、基于浏览器的界面便于
二、环境准备
注意:所有主机配置推荐CPU:2C Memory:4G 、运行 Elasticsearch 的节点要有足够的内存(不低于 4GB)。若 Elasticsearch 容器退出,请检查宿主机中的/var/log/message 日志,观察是否因为系统 OOM 导致进程被杀掉。
1、所有主机在/etc/hosts中进行ip地址映射
2、所有主机关闭防火墙
3、所有主机安装docker
4、master、node1、node2安装kubernetes并进行网络设置
三、部署企业镜像仓库
1、部署Harbor仓库
下载docker-compose
-
mv docker-compose /usr/local/bin/
-
chmod x /usr/local/bin/docker-compose
-
解压harbor
-
tar xf harbor-offline-installer-v1.10.4.tgz -C /usr/local/
-
-
配置harbor
-
vim /usr/local/harbor/harbor.yml
-
5 hostname: 192.168.77.19
-
13 #https: //https 相关配置都注释掉,包括 https、port、certificate 和 private_key
-
14 # https port for harbor, default is 443
-
15 #port: 443
-
16 # The path of cert and key files for nginx
-
17 #certificate: /your/certificate/path
-
18 #private_key: /your/private/key/path
-
启动harbor
-
cd /usr/loca/harbor
-
sh install.sh
-
查看状态
-
docker-commpose ps
2、启动成功后访问192.168.77.19
新建项目
-
加入仓库地址
-
vim /usr/lib/systemd/system/docker.service
-
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.77.19
-
-
分别上传给另外三个主机
-
scp /usr/lib/systemd/system/docker.service 192.168.77.14:/usr/lib/systemd/system/
-
scp /usr/lib/systemd/system/docker.service 192.168.77.17:/usr/lib/systemd/system/
-
scp /usr/lib/systemd/system/docker.service 192.168.77.18:/usr/lib/systemd/system/
-
-
所有主机重启docker
-
systemctl daemon-reload
-
systemctl restart docker
3、导入EFK镜像
-
进入镜像仓库
-
docker login -u admin -p Harbor12345 http://192.168.77.19
-
将镜像导入docker
-
docker load < elasticsearch-7.4.2.tar
-
docker load < fluentd-es.tar
-
docker load < kibana-7.4.2.tar
-
docker load < alpine-3.6.tar
-
修改标签
-
docker tag b1179d 192.168.77.19/efk/elasticsearch:7.4.2
-
docker tag 636f3d 192.168.77.19/efk/fluentd-es-root:v2.5.2
-
docker tag 230d3d 192.168.77.19/efk/kibana:7.4.2
-
docker tag 43773d 192.168.77.19/efk/alpine:3.6
-
上传镜像
-
docker push 192.168.77.19/efk/elasticsearch:7.4.2
-
docker push 192.168.77.19/efk/fluentd-es-root:v2.5.2
-
docker push 192.168.77.19/efk/kibana:7.4.2
-
docker push 192.168.77.19/efk/alpine:3.6
四、部署EFK业务环境
1、准备组件Yaml文件(master主机)
-
创建文件夹用来存放yaml文件的
-
mkdir /opt/efk
-
-
需要下载的yaml文件(需要将文件内的yaml文件中的IP地址修改为私有的镜像仓库)
-
elasticsearch.yaml
-
kibana.yaml
-
fluentd.yaml
-
test-pod.yaml
-
namespace.yaml
-
fluentd-es-config-main.yaml
-
fluentd-configmap.yaml
-
-
查看镜像地址
-
grep "image:" elasticsearch.yaml
-
grep -A1 "nodeSelector" elasticsearch.yaml
-
grep "image:" kibana.yaml
-
grep -A1 "nodeSelector" kibana.yaml
-
grep "image:" fluentd.yaml
-
grep "image:" test-pod.yaml
2、部署Elasticsearch
-
创建命名空间
-
kubectl create -f namespace.yaml
-
kubectl get namespaces | grep logging
-
-
创建 es 数据存储目录
-
[root@k8s-node01 ~]# mkdir /esdata
-
-
部署 es 容器
-
kubectl create -f elasticsearch.yaml
-
kubectl -n logging get pods -o wide
-
kubectl -n logging get svc
-
-
通过 curl 命令访问服务,验证 es 是否部署成功
-
curl 10.111.75.184:9200
这个启动需要等待个3-5分钟
3、部署kibana
-
kubectl create -f kibana.yaml
-
kubectl -n logging get pods
-
kubectl -n logging get svc |grep kibana
访问页面92.168.77.14:30778
4、部署Fluentd
-
给集群节点打标签
-
kubectl label node k8s-node1 fluentd=true
-
kubectl label node k8s-node2 fluentd=true
-
kubectl create -f fluentd-es-config-main.yaml
-
kubectl create -f fluentd-configmap.yaml
-
kubectl create -f fluentd.yaml
-
查看 Pod 是否已经在 k8s-node01 和 k8s-node02 节点启动成功。
-
kubectl -n logging get pods
5、验证容器日志收集
-
创建测试容器
-
kubectl create -f test-pod.yaml
-
kubectl get pods
6、配置 Kibana
以上就是 EFK构建日志分析平台
如有错误欢迎各位大佬批评指正,我们共同进步
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhibbbii
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22