第四篇 kubernetes 部署EFK日志平台
1.什么是EFK?
EFK组件: Elasticsearch (分布式集群搜索) Fluentd (日志收集转发) Kibana (面板操作查询)
原理:
k8s集群的pod日志需要收集统一查询,pod的日志存放在 /var/log/containers/ 这个目录
1.我们会把这个(/var/log/containers/)日志目录挂载到 fluentd;
2.fluentd负责把数据传递至eastlastsearch(集群);
3.然后通过kibana对eastlastsearch日志进行查看;
2.在k8s集群部署EFK日志平台
EFK配置文件托管在GitHub
地址为: https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch
#修改hosts 在Ubuntu,CentOS及macOS直接在终端输入
# vi /etc/hosts
151.101.76.133 raw.githubusercontent.com
获取六个文件放在efk中:
#mkdir /root/k8s/efk
#cd /root/k8s/efk/
wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/es-statefulset.yaml
wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/es-service.yaml
wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/fluentd-es-configmap.yaml
wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml
wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/kibana-service.yaml
wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/kibana-deployment.yaml
#在master 和 node 节点上拉取镜像
#docker pull quay.io/fluentd_elasticsearch/elasticsearch:v7.4.3
#docker pull quay.io/fluentd_elasticsearch/fluentd:v3.1.0
#docker pull docker.elastic.co/kibana/kibana-oss:7.4.2
#一键部署EFK 平台
#kubectl create -f /root/k8s/efk/ --validate=false
等待pod 状态变为Running 我这边大概用了 5分钟
3.访问kibana日志平台和elasticsearch集群
#接下来我们临时开启api-server http协议的8888端口,用于测试kibana的访问。(在master节点执行)
# kubectl proxy --address='192.168.25.65' --port=8888 --accept-hosts='^*$' &
#浏览器访问如下地址:(地址路径可在 kibana 的 环境变量中找到)
http://192.168.25.65:8888/api/v1/namespaces/kube-system/services/kibana-logging/proxy/app/kibana
4.结尾
官网地址:https://www.elastic.co/cn/elasticsearch/
ES使用手册:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
本篇文章到此就结束了。 睡觉!