栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

kubernetes集群上部署EFK

kubernetes集群上部署EFK

k8s部署EFK概念

Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理。这是一个 Elasticsearch、Fluentd 和 Kibana 的组合。

- Elasticsearch 是一个搜索引擎,负责存储日志并提供查询接口;
- Fluentd 负责从 Kubernetes 搜集日志,每个node节点上面的fluentd监控并收集该节点上面的系统日志,并将处理过后的日志信息发送给Elasticsearch;
- Kibana 提供了一个 Web GUI,用户可以浏览和搜索存储在 Elasticsearch 中的日志。

通过在每个node节点部署一个以DaemonSet方式运行的fluentd来收集每个节点上的日志。Fluentd将docker日志目录/var/lib/docker/containers和/var/log目录挂载到Pod中,然后Pod会在node节点的/var/log/pods目录中创建新的目录,可以区别不同的容器日志输出,该目录下有一个日志文件链接到/var/lib/docker/contianers目录下的容器日志输出。

项目地址:https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch

Elasticsearch

Elasticsearch部署为StatefulSet,类似于deployment,但允许维护存储卷上的状态。

初始化

Elasticsearch StatefulSet清单指定在Elasticsearch容器本身之前应该执行一个 init容器,以确保内核状态变量 vm.max_map_count至少为262144,因为这是Elasticsearch的要求。如果您知道主机操作系统满足此要求,则可以删除init容器。

存储

Elasticsearch StatefulSet将使用EmptyDir卷来存储数据。当pod终止时,EmptyDir被删除,这里它仅用于测试目的。重要提示:在您的设置中实际使用此StatefulSet之前,请将存储更改为持久量声明!

存储配置参考:https://github.com/dotbalo/k8s/tree/master/k8s-efk

部署EFK

从官方github仓库下载yaml文件

git clone https://github.com.cnpmjs.org/kubernetes/kubernetes.git --depth=1
cd kubernetes/cluster/addons/fluentd-elasticsearch/

修改yaml文件使用dockerhub镜像仓库:

最新的efk镜像
[root@master-1 fluentd-elasticsearch]# cat *.yaml |grep "image: "
        - image: quay.io/fluentd_elasticsearch/elasticsearch:v7.10.2
        image: quay.io/fluentd_elasticsearch/fluentd:v3.1.0
          image: docker.elastic.co/kibana/kibana-oss:7.10.2

如果不能拉最新的镜像,可以试试更改下面的文件,换旧镜像
cat *.yaml | grep image:
sed -i 's#quay.io/fluentd_elasticsearch/elasticsearch:v7.4.2#willdockerhub/elasticsearch:v7.4.2#g' *.yaml
sed -i 's#quay.io/fluentd_elasticsearch/fluentd:v3.0.1#willdockerhub/fluentd:v3.0.1#g' *.yaml
sed -i 's#docker.elastic.co/kibana/kibana-oss:7.2.0#willdockerhub/kibana-oss:7.2.0#g' *.yaml

关于elasticsearch-logging statefulset 配置文件es-statefulset.yaml默认是2个副本,如果测试机配置不高,可以设置为单副本,并改小cpu mem设置。

部署EFK
[root@master-1 fluentd-elasticsearch]# kubectl create -f ./
namespace/logging created
service/elasticsearch-logging created
serviceaccount/elasticsearch-logging created
clusterrole.rbac.authorization.k8s.io/elasticsearch-logging created
clusterrolebinding.rbac.authorization.k8s.io/elasticsearch-logging created
statefulset.apps/elasticsearch-logging created
configmap/fluentd-es-config-v0.2.1 created
serviceaccount/fluentd-es created
clusterrole.rbac.authorization.k8s.io/fluentd-es created
clusterrolebinding.rbac.authorization.k8s.io/fluentd-es created
daemonset.apps/fluentd-es-v3.1.1 created
deployment.apps/kibana-logging created
service/kibana-logging created


[root@master-1 fluentd-elasticsearch]# kubectl get pod -n logging
NAME                              READY   STATUS    RESTARTS      AGE
elasticsearch-logging-0           1/1     Running   1 (14m ago)   15m
fluentd-es-v3.1.1-zkh5l           1/1     Running   1 (14m ago)   15m
kibana-logging-75bd6cccf5-56csw   1/1     Running   2 (14m ago)   15m

[root@master-1 fluentd-elasticsearch]# kubectl get svc -n logging
NAME                    TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
elasticsearch-logging   ClusterIP   None                    9200/TCP,9300/TCP   15m
kibana-logging          ClusterIP   10.100.207.250          5601/TCP            15m

kibana的访问要通过apiserver,所以要用下面的方式kubectl proxy代理。

前台运行
[root@master-1 fluentd-elasticsearch]# kubectl  proxy --address='192.168.5.50' --port=8888 --accept-hosts='^*$'
Starting to serve on 192.168.5.50:8888

后台运行
kubectl  proxy --address='192.168.5.50' --port=8888 --accept-hosts='^*$' &

#浏览器访问如下地址:(地址路径可在 kibana 的 环境变量中找到)
http://192.168.5.50:8888/api/v1/namespaces/logging/services/kibana-logging/proxy
注意: namespaces 是 logging ,如果你的namespace 不是这个,需要换成你自己的才行。

 创建一个index-pattern索引,点击导航栏 “Management” -> “index pattern”, “Index name or pattern” Index pattern默认为 logstash-*

 

 

创建成功后

查看日志

这里就是日志查看的地方

官方文档

ES使用手册:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/671004.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号