十四、集群日志管理:Elasticsearch
1,Elasticsearch 介绍
(1)Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理。这是一个 Elasticsearch、Fluentd 和 Kibana 的组合。
(2)它们分工如下:
Fluentd 负责从 Kubernetes 搜集日志并发送给 Elasticsearch;
Elasticsearch 是一个搜索引擎,负责存储日志并提供查询接口;
Kibana 提供了一个 Web GUI,用户可以浏览和搜索存储在 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 配置文件可从如下地址获取:
(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
(4)接着修改 kibana-service.yaml,增加 type: NodeType 配置:
(5)接着修改 es-service.yaml,同样增加 type: NodeType 配置:
(6)最后执行如下命令对这 6 个 YAML 文件进行部署:
1 | kubectl apply -f . |
(7)执行如下命令查看安装了哪些 Pod:
1 | kubectl get -- namespace =kube-system pod |
注意:这里我们可能会发现 elasticsearch-loggin 的 pod 不断的 restart,无法正常启动。可能是内存资源不足导致的(比如 node 节点只有 2G 内存)将内存调整为 4G, pod 运行恢复正常。
(8)执行如下命令查看安装的 Service:
1 | kubectl get -- namespace =kube-system services |
(9)可以看到 Elasticsearch 对外提供的节点端口为 32728,我们使用浏览器访问 http://MASTER_IP: 32728/ 看到如下数据则说明 Elasticsearch 已正常工作。
3,使用说明
(1)从上面可以看到 Kibana 在节点上监听的端口是 32739,因此我们使用浏览器访问如下地址即可打开监控页面:
http://YOUR_MASTER_IP:32739/
(2)Kibana 会显示 Index Pattern 创建页面。直接点击 Create,Kibana 会自动完成后续配置。
(3)这时,点击左上角的 Discover 就可以查看和检索 Kubernetes 日志了。
原文链接:https://www.hangge.com/blog/cache/detail_2444.html