• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

小白到运维工程师自学:路 第七十六集 kubernetes:EFK构建日志平台

武飞扬头像
Silver彡Wolf
帮助1

一、概述

1、Elasticsearch产品介绍

Elasticsearch 是一个 Restful 风格的、开源的分布式搜索引擎,具备搜索和数据分析功能,它的底层是开源库 Apache Lucene。Elasticsearch 具有如下特点。

  1. 一个分布式的实时文档存储,每个字段可以被索引与搜索;
  2. 一个分布式实时分析搜索引擎;
  3. 能支撑上百个服务节点的扩展,并支持 PB 级别的结构化或者非结构化数据

2、Fluentd 工作原理

Fluentd 是一个日志的收集、处理、转发系统。通过丰富的插件,可以收集来自各种系统或应用的日志,转化为用户指定的格式后,转发到用户所指定的日志存储系统中。

学新通

Fluentd 通过一组给定的数据源抓取日志数据,处理后(转换成结构化的数据格式)将它们转发给其他服务,比如 Elasticsearch、对象存储等等。Fluentd 支持超过 300 个日志存储和分析服务,所以对日志存储和分析服务的支持是非常灵活的。Fluentd 采用了插件式的架构,具有高可扩展性及高可用性,同时还实现了高可靠的信息转发。其主要运行步骤如下所示:

(1)首先 Fluentd 从多个日志源获取数据。

(2)结构化并且标记这些数据。

(3)最后根据匹配的标签将数据发送到多个目标服务。

3、Kibana产品介绍

Kibana 是一个开源的可视化分析平台,用于和 Elasticsearch 一起工作。可以通过Kibana 搜索、查看、交互存放在 Elasticsearch 索引中的数据。也可以轻松地执行高级数据分析,并且以各种图表、表格和地图的形式可视化数据。Kibana 简单的、基于浏览器的界面便于

二、环境准备

学新通

 注意:所有主机配置推荐CPU2C   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

  1.  
    mv docker-compose /usr/local/bin/
  2.  
    chmod x /usr/local/bin/docker-compose
  1.  
    解压harbor
  2.  
    tar xf harbor-offline-installer-v1.10.4.tgz -C /usr/local/
  3.  
     
  4.  
    配置harbor
  5.  
    vim /usr/local/harbor/harbor.yml
  6.  
    5 hostname: 192.168.77.19
  7.  
    13 #https: //https 相关配置都注释掉,包括 https、port、certificate 和 private_key
  8.  
    14 # https port for harbor, default is 443
  9.  
    15 #port: 443
  10.  
    16 # The path of cert and key files for nginx
  11.  
    17 #certificate: /your/certificate/path
  12.  
    18 #private_key: /your/private/key/path

学新通

  1.  
    启动harbor
  2.  
    cd /usr/loca/harbor
  3.  
    sh install.sh
  4.  
    查看状态
  5.  
    docker-commpose ps

学新通

2、启动成功后访问192.168.77.19

学新通

新建项目

学新通

  1.  
    加入仓库地址
  2.  
    vim /usr/lib/systemd/system/docker.service
  3.  
    ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry 192.168.77.19
  4.  
     
  5.  
    分别上传给另外三个主机
  6.  
    scp /usr/lib/systemd/system/docker.service 192.168.77.14:/usr/lib/systemd/system/
  7.  
    scp /usr/lib/systemd/system/docker.service 192.168.77.17:/usr/lib/systemd/system/
  8.  
    scp /usr/lib/systemd/system/docker.service 192.168.77.18:/usr/lib/systemd/system/
  9.  
     
  10.  
    所有主机重启docker
  11.  
    systemctl daemon-reload
  12.  
    systemctl restart docker

学新通

3、导入EFK镜像 

  1.  
    进入镜像仓库
  2.  
    docker login -u admin -p Harbor12345 http://192.168.77.19

学新通

  1.  
    将镜像导入docker
  2.  
    docker load < elasticsearch-7.4.2.tar
  3.  
    docker load < fluentd-es.tar
  4.  
    docker load < kibana-7.4.2.tar
  5.  
    docker load < alpine-3.6.tar
  6.  
    修改标签
  7.  
    docker tag b1179d 192.168.77.19/efk/elasticsearch:7.4.2
  8.  
    docker tag 636f3d 192.168.77.19/efk/fluentd-es-root:v2.5.2
  9.  
    docker tag 230d3d 192.168.77.19/efk/kibana:7.4.2
  10.  
    docker tag 43773d 192.168.77.19/efk/alpine:3.6

学新通

  1.  
    上传镜像
  2.  
    docker push 192.168.77.19/efk/elasticsearch:7.4.2
  3.  
    docker push 192.168.77.19/efk/fluentd-es-root:v2.5.2
  4.  
    docker push 192.168.77.19/efk/kibana:7.4.2
  5.  
    docker push 192.168.77.19/efk/alpine:3.6

学新通

 四、部署EFK业务环境

1、准备组件Yaml文件(master主机)

  1.  
    创建文件夹用来存放yaml文件的
  2.  
    mkdir /opt/efk
  3.  
     
  4.  
    需要下载的yaml文件(需要将文件内的yaml文件中的IP地址修改为私有的镜像仓库)
  5.  
    elasticsearch.yaml
  6.  
    kibana.yaml
  7.  
    fluentd.yaml
  8.  
    test-pod.yaml
  9.  
    namespace.yaml
  10.  
    fluentd-es-config-main.yaml
  11.  
    fluentd-configmap.yaml
  12.  
     
  13.  
    查看镜像地址
  14.  
    grep "image:" elasticsearch.yaml
  15.  
    grep -A1 "nodeSelector" elasticsearch.yaml
  16.  
    grep "image:" kibana.yaml
  17.  
    grep -A1 "nodeSelector" kibana.yaml
  18.  
    grep "image:" fluentd.yaml
  19.  
    grep "image:" test-pod.yaml
学新通

学新通

 2、部署Elasticsearch

  1.  
    创建命名空间
  2.  
    kubectl create -f namespace.yaml
  3.  
    kubectl get namespaces | grep logging
  4.  
     
  5.  
    创建 es 数据存储目录
  6.  
    [root@k8s-node01 ~]# mkdir /esdata
  7.  
     
  8.  
    部署 es 容器
  9.  
    kubectl create -f elasticsearch.yaml
  10.  
    kubectl -n logging get pods -o wide
  11.  
    kubectl -n logging get svc
  12.  
     
  13.  
    通过 curl 命令访问服务,验证 es 是否部署成功
  14.  
    curl 10.111.75.184:9200

这个启动需要等待个3-5分钟

学新通

学新通

学新通

 3、部署kibana

  1.  
    kubectl create -f kibana.yaml
  2.  
    kubectl -n logging get pods
  3.  
    kubectl -n logging get svc |grep kibana

学新通

学新通

 访问页面92.168.77.14:30778

学新通

 4、部署Fluentd

  1.  
    给集群节点打标签
  2.  
    kubectl label node k8s-node1 fluentd=true
  3.  
    kubectl label node k8s-node2 fluentd=true
  4.  
    kubectl create -f fluentd-es-config-main.yaml
  5.  
    kubectl create -f fluentd-configmap.yaml
  6.  
    kubectl create -f fluentd.yaml
  7.  
    查看 Pod 是否已经在 k8s-node01 和 k8s-node02 节点启动成功。
  8.  
    kubectl -n logging get pods

学新通

 5、验证容器日志收集

  1.  
    创建测试容器
  2.  
    kubectl create -f test-pod.yaml
  3.  
    kubectl get pods

学新通

 6、配置 Kibana

学新通学新通

学新通

学新通

以上就是 EFK构建日志分析平台

如有错误欢迎各位大佬批评指正,我们共同进步

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhibbbii
系列文章
更多 icon
同类精品
更多 icon
继续加载