zoukankan      html  css  js  c++  java
  • helm安装EFK

    原文地址: 点这里

     0. 简介

      之前相信大家听过ELK工具栈,E: elasticsearch、L:logstash、K: kabana,其中logstash的缺点太重量级,Logstash性能低、资源消耗比较多、并且不支持消息队列缓存及存在数据丢失等问题,随后就有Fluentd出现,相比它更易用、资源消耗更少、性能更高,在数据处理上更高效可靠,受到企业欢迎,成为logstash的替代方案,亚马逊称其为数据收集的最佳方案EFK。
     
    1. 系统环境
    • 系统版本号CentOS 7.6
    • docker Client版本号18.09.7, Server版本号18.09.7
    • k8s版本号v1.16.2
    • helm Client版本号v2.13.1,Server版本号v2.13.1

     确认helm镜像源并更新镜像仓库

    [root@ops1 test]# helm repo add stable http://mirror.azure.cn/kubernetes/charts/   
    [root@ops1 test]# helm repo list
    NAME            URL                                                
    local           http://127.0.0.1:8879/charts                       
    stable          http://mirror.azure.cn/kubernetes/charts/          
    incubator       http://mirror.azure.cn/kubernetes/charts-incubator/
    [root@ops1 test]# helm repo update
    [root@ops1 test]# kubectl create namespace efk
    
    2. 快速安装EFK
    注意我用的存储是storageClass "nfs2",请注意修改。
     
    2.1 helm安装elasticsearch
    [root@ops1 test]# cat <<EOF> elasticsearch-values.yaml
    image:
      repository: "docker.elastic.co/elasticsearch/elasticsearch-oss"
      # repository: "registry.cn-beijing.aliyuncs.com/wangzt/k8s/elasticsearch-oss:6.7.0" 个人镜像仓库
      tag: "6.7.0"
    client:
      serviceType: "NodePort"
      httpNodePort: 30920
    master:
      persistence:
        enabled: true  #  elasticsearch-master使用pvc永久存储,如果是测试,可以换成false
        storageClass: "nfs2"
    data:
      persistence:
        enabled: true  #elasticsearch-data使用pvc永久存储,如果是测试,可以换成false
        storageClass: "nfs2"
    EOF
    [root@ops1 test]# helm install --name elasticsearch -f elasticsearch-values.yaml  
                    --namespace=efk --version=1.32.4 stable/elasticsearch 
    [root@ops1 test]# kubectl get all -n efk
    # 等到全部pod显示正常后,访问k8s工作节点
    [root@ops1 test]# curl http://127.0.0.1:30920/
    {
      "name" : "elasticsearch-client-65bfdd647c-kl9zb",
      "cluster_name" : "elasticsearch",
       ...
      "tagline" : "You Know, for Search"
    }
    
    2.2 helm安装fluented
    # 配置可不加,我是为了日志量太大,和添加监控显示的
    [root@ops1 test]# cat <<EOF> fluentd-values.yaml
    image:
      repository: gcr.io/google-containers/fluentd-elasticsearch # 默认地址可能不可用
      # repository: registry.cn-beijing.aliyuncs.com/wangzt/kubernetes/fluentd-elasticsearch
    elasticsearch:
      buffer_chunk_limit: 32M  # 内存缓冲区
    service:  #启动监控monitor-agent
      type: NodePort
      ports:
        - name: "monitor-agent"
          port: 24231
    env:      
      OUTPUT_BUFFER_CHUNK_LIMIT: "32M" # 设置buffer缓存区大小
    podAnnotations: # 让prometheus监控monitor-agent
      prometheus.io/scrape: "true"
      prometheus.io/port: "24231"
    tolerations:  #监控master
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
    EOF
    [root@ops1 test]# helm install --name fluentd-elasticsearch -f fluentd-values.yaml --namespace=efk --version=2.0.7 stable/fluentd-elasticsearch 
    [root@ops1 test]# kubectl get pod -n efk | grep fluentd
    #等服务全部正常后,可以看到有索引产生
    [root@ops1 test]# curl http://127.0.0.1:30920/_cat/indices
    green open logstash-2020.03.18 om-LUsRXQUGcBfww4ioa3w 5 1  26071 0  27.9mb  13.9mb
    green open logstash-2020.03.16 3RAWut3DQkqlLWgQu9DxSQ 5 1  22269 0  23.7mb  11.8mb
    
    2.3 helm安装kibana
    [root@ops1 test]# cat <<EOF> kibana-values.yaml
    files:
      kibana.yml:
        elasticsearch.hosts: http://elasticsearch-client:9200
    service:
      type: NodePort 
      nodePort: 30922    
    persistentVolumeClaim:
      enabled: true  # 如果不使用pvc永久存储,只做测试就改为false
      storageClass: "nfs2"      
    EOF
    [root@ops1 test]# helm install --name kibana -f kibana-values.yaml  --namespace=efk --version=3.2.6 stable/kibana  
    [root@ops1 test]# kubectl get pod -n efk | grep kibana
    kibana-7bf95fb48-nb2z4                  1/1     Running            0          36s 
    
    2.4等待服务都起来,访问界面即可
     
     
  • 相关阅读:
    HTML5新特性之离线缓存技术
    摘要
    典藏百度前端面试题
    idea连接mysql数据库
    报错:[stack Error: Can't find Python executable "python"] vue项目npm install
    SVN客户端(小乌龟)checkout(检出)文件(项目)到本地
    java日期Date工具类 日期格式转换
    radio标签 onchange事件
    js 写带有返回值的function遇到的返回值不正常的情况
    读取zip包内根目录文件的文件名
  • 原文地址:https://www.cnblogs.com/wangzhangtao/p/12603107.html
Copyright © 2011-2022 走看看