目录

 

简介

部署Elasticesearch

部署Fluentd

部署Kibana


简介

对于单机版的集群式应用来说,如果遇到故障我们可以登录上服务器上通过查看日志文件的方式进行查看日志,但对多规模的分布式多节点应用来说,日志分散在多个节点,这显然通过登录上每个节点服务器通过命令查看日志不可取的,就需要统一的日志管理平台收集各各节点上的日志集中管理

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

 

 

F:filebeat

F:Fluentd 日志收集代理工具

 

收集日志:

  • 第一种:外置收集日志,在节点上部署一个统一日志收集插件,这个插件统一收集这个节点包括节点中的pod的日志
  • 第二种:在每个pod中单独收集日志,需要在每个pod中部署一个sidecar容器收集日志发送给日志收集平台,pod数量多的话这种部署麻烦

 

EFK

E: elasticsearch

L:logstash

F:filebeat

F:Fluentd 日志收集代理工具

K: kabana

部署Elasticesearch

            

 

           

            

 

  1. 查找安装包:

    helm search elasticsearch

     

  2. 下载安装包:
    cd ~/.helm/cache/archive/
    helm fetch incubator/elasticsearch 

     

  3. 修改默认值文件:
    ll
    tar -zxvf elasticsearch-1.10.2.tgz
     
    vim elasticsearch/values.yaml 

     

    说明:在生产上,副本数据最好是3个以上,如:3、5、7

     

  4. 安装应用包:
    kubectl create ns efk
    helm install incubator/elasticsearch  -n efk-es --namespace efk -f elasticsearch/values.yaml 

    提示:在这里为安装EFK,单独创建一个命名空间

  5. 查看安装后状态信息
    helm status efk-es

     

  6. 查看ES部署后相应的资源:

    kubectl get svc -n efk
    kubectl get pod -n efk
  7. 使用客户端进行访问ES:

    kubectl run  -it --rm  cirror-$RANDOM --image=cirros -- /bin/sh

    说明:以上通过部署cirros镜像并进入启动后的容器中来尝试访问ES服务是否正常,通过以下可测试ES是否部署成功

    检查是否能解析ES服务名

    nslookup efk-es-elasticsearch-client.efk.svc.cluster.local

      访问ES服务是否正常

    curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200
     查看ES库
    curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200/_cat

    查看ES中节点

     curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200/_cat/nodes

    查看ES中的索引

     curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200/_cat/indices

     

 

部署Fluentd

 

 

         说明: 使用之前部署的cirros,进入cirros对应的容器中,访问ES,查看ES索引,发现已有数据,说明Fluentd已成功将日志数据收集到ES库中。

 

  1. 查找安装包:
    helm search fluentd-elasticsearch 

     

  2. 下载安装包:
    cd ~/.helm/cache/archive
    helm fetch incubator/fluentd-elasticsearch

     

  3. 修改默认值文件:
    tar -zxvf fluentd-elasticsearch-0.7.2.tgz 
    ls
    vim fluentd-elasticsearch/values.yaml 

    修改ES服务地址 

    可容忍主节点污点:

     如果想要让prometheus监控,则开启注解:

     

    修改service类型:

     

     

  4. 安装应用包:
    helm install  incubator/fluentd-elasticsearch -n efk-flu --namespace efk -f fluentd-elasticsearch/values.yaml 

     

  5. 查看安装后状态信息:
    helm status efk-flu

     

  6. 查看Fluentd部署后相应的资源:
    kubectl get svc -n efk
    kubectl get pod -n efk

  7. 查看es中是否有日志数据:

    kubectl exec -it cirror-29069-7c55c48d64-mx6qm sh
    curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200/_cat/indices

部署Kibana

 

  1. 查找安装包:
    helm search kibana

     

  2. 下载安装包:
    cd ~/.helm/cache/archive
    helm fetch stable/kibana 

     

  3. 修改默认值文件:
    tar -zxvf kibana-0.2.2.tgz 
    ls
    vim kibana/values.yaml 

     如果是新版本配置如下:

  4. 安装应用包:
    helm install stable/kibana -n efk-kib --namespace efk  -f kibana/values.yaml 

     

  5. 查看安装后状态信息:
    helm status efk-kib

     

  6. 查看Kibana部署后相应的资源:
    kubectl get svc -n efk
    kubectl get pod -n efk

  7. 访问kibana

    curl 172.16.0.246:31499

 

添加索引模式:

 

查看索引

创建可视化图形:

 

 

然后把可视化图形整合到dashbaord中:

 

 

 

 

 

Logo

开源、云原生的融合云平台

更多推荐