使用Helm包管理工具在kubernetes上部署EFK
目录 简介部署Elasticesearch部署Fluentd部署Kibana简介对于单机版的集群式应用来说,如果遇到故障我们可以登录上服务器上通过查看日志文件的方式进行查看日志,但对多规模的分布式多节点应用来说,日志分散在多个节点,这显然通过登录上每个节点服务器通过命令查看日志不可取的,就需要统一的日志管理平台收集各各节点上的日志集中管理之前相信大家听过ELK工具栈...
目录
简介
对于单机版的集群式应用来说,如果遇到故障我们可以登录上服务器上通过查看日志文件的方式进行查看日志,但对多规模的分布式多节点应用来说,日志分散在多个节点,这显然通过登录上每个节点服务器通过命令查看日志不可取的,就需要统一的日志管理平台收集各各节点上的日志集中管理
之前相信大家听过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
-
查找安装包:
helm search elasticsearch
- 下载安装包:
cd ~/.helm/cache/archive/ helm fetch incubator/elasticsearch
- 修改默认值文件:
ll tar -zxvf elasticsearch-1.10.2.tgz vim elasticsearch/values.yaml
说明:在生产上,副本数据最好是3个以上,如:3、5、7
- 安装应用包:
kubectl create ns efk helm install incubator/elasticsearch -n efk-es --namespace efk -f elasticsearch/values.yaml
提示:在这里为安装EFK,单独创建一个命名空间
- 查看安装后状态信息
helm status efk-es
-
查看ES部署后相应的资源:
kubectl get svc -n efk kubectl get pod -n efk
-
使用客户端进行访问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服务是否正常
查看ES库curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200
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库中。
- 查找安装包:
helm search fluentd-elasticsearch
- 下载安装包:
cd ~/.helm/cache/archive helm fetch incubator/fluentd-elasticsearch
- 修改默认值文件:
tar -zxvf fluentd-elasticsearch-0.7.2.tgz ls vim fluentd-elasticsearch/values.yaml
修改ES服务地址
可容忍主节点污点:
如果想要让prometheus监控,则开启注解:
修改service类型:
- 安装应用包:
helm install incubator/fluentd-elasticsearch -n efk-flu --namespace efk -f fluentd-elasticsearch/values.yaml
- 查看安装后状态信息:
helm status efk-flu
- 查看Fluentd部署后相应的资源:
kubectl get svc -n efk kubectl get pod -n efk
-
查看es中是否有日志数据:
kubectl exec -it cirror-29069-7c55c48d64-mx6qm sh curl efk-es-elasticsearch-client.efk.svc.cluster.local:9200/_cat/indices
部署Kibana
- 查找安装包:
helm search kibana
- 下载安装包:
cd ~/.helm/cache/archive helm fetch stable/kibana
- 修改默认值文件:
tar -zxvf kibana-0.2.2.tgz ls vim kibana/values.yaml
如果是新版本配置如下:
- 安装应用包:
helm install stable/kibana -n efk-kib --namespace efk -f kibana/values.yaml
- 查看安装后状态信息:
helm status efk-kib
- 查看Kibana部署后相应的资源:
kubectl get svc -n efk kubectl get pod -n efk
-
访问kibana
curl 172.16.0.246:31499
添加索引模式:
查看索引
创建可视化图形:
然后把可视化图形整合到dashbaord中:
更多推荐
所有评论(0)