当前位置: > > > K8s - Kubernetes使用详解14(集群日志管理:Elasticsearch)

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

十四、集群日志管理:Elasticsearch

1,Elasticsearch 介绍

(1)Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理。这是一个 ElasticsearchFluentdKibana 的组合。
(2)它们分工如下:
  • Fluentd 负责从 Kubernetes 搜集日志并发送给 Elasticsearch
  • Elasticsearch 是一个搜索引擎,负责存储日志并提供查询接口;
  • Kibana 提供了一个 Web GUI,用户可以浏览和搜索存储在 Elasticsearch 中的日志。
    通过在每台 node 上部署一个以 DaemonSet 方式运行的 fluentd 来收集每台 node 上的日志。Fluentddocker 日志目录 /var/lib/docker/containers/var/log 目录挂载到 Pod 中,然后 Pod 会在 node 节点的 /var/log/pods 目录中创建新的目录,可以区别不同的容器日志输出,该目录下有一个日志文件链接到 /var/lib/docker/contianers 目录下的容器日志输出。

2,安装配置

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

(2)我们可以将这个 6 个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/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 文件进行部署:
kubectl apply -f .

(7)执行如下命令查看安装了哪些 Pod
kubectl get --namespace=kube-system pod
注意:这里我们可能会发现 elasticsearch-loggin pod 不断的 restart,无法正常启动。可能是内存资源不足导致的(比如 node 节点只有 2G 内存)将内存调整为 4Gpod 运行恢复正常。

(8)执行如下命令查看安装的 Service
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 创建页面。直接点击 CreateKibana 会自动完成后续配置。

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