K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)

作者: hangge 发布时间: 2019-09-02 浏览: 2586 次 编辑

十四、集群日志管理:Elasticsearch

1,Elasticsearch 介绍

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

(2)它们分工如下:

  • Fluentd 负责从 Kubernetes 搜集日志并发送给 Elasticsearch

  • Elasticsearch 是一个搜索引擎,负责存储日志并提供查询接口;

  • Kibana 提供了一个 Web GUI,用户可以浏览和搜索存储在 Elasticsearch 中的日志。

原文:K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)

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

2,安装配置

(1)Elasticsearch 附加组件本身会作为 Kubernetes 的应用在集群里运行,其 YAML 配置文件可从如下地址获取:

原文:K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)


(2)我们可以将这个 6 个YAML 文件都下载下来:

1
2
3
4
5
6
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/es-statefulset.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-deployment.yaml
wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/kibana-service.yaml


(3)为了后面我们可以通过 NodePort 访问 Kibana,首先需要修改 kibana-deployment.yaml,注释掉里面的环境变量 SERVER_BASEPATH

原文:K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)


(4)接着修改 kibana-service.yaml,增加 type: NodeType 配置:

原文:K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)


(5)接着修改 es-service.yaml,同样增加 type: NodeType 配置:

原文:K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)


(6)最后执行如下命令对这 个 YAML 文件进行部署:

1
kubectl apply -f .


(7)执行如下命令查看安装了哪些 Pod

1
kubectl get --namespace=kube-system pod

注意:这里我们可能会发现 elasticsearch-loggin 的 pod 不断的 restart,无法正常启动。可能是内存资源不足导致的(比如 node 节点只有 2G 内存)将内存调整为 4G, pod 运行恢复正常。

原文:K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)


(8)执行如下命令查看安装的 Service

1
kubectl get --namespace=kube-system services

原文:K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)

(9)可以看到 Elasticsearch 对外提供的节点端口为 32728,我们使用浏览器访问 http://MASTER_IP: 32728/ 看到如下数据则说明 Elasticsearch 已正常工作。

原文:K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)


3,使用说明

(1)从上面可以看到 Kibana 在节点上监听的端口是 32739,因此我们使用浏览器访问如下地址即可打开监控页面:

  • http://YOUR_MASTER_IP:32739/

(2)Kibana 会显示 Index Pattern 创建页面。直接点击 CreateKibana 会自动完成后续配置。

原文:K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)


(3)这时,点击左上角的 Discover 就可以查看和检索 Kubernetes 日志了。

原文:K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)


原文链接:https://www.hangge.com/blog/cache/detail_2444.html