博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kubernetes 集群日志管理 Elasticsearch + fluentd(二十)
阅读量:5238 次
发布时间:2019-06-14

本文共 3051 字,大约阅读时间需要 10 分钟。

目录

Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理。这是一个 Elasticsearch、Fluentd 和 Kibana 的组合。Elasticsearch 是一个搜索引擎,负责存储日志并提供查询接口;Fluentd 负责从 Kubernetes 搜集日志并发送给 Elasticsearch;Kibana 提供了一个 Web GUI,用户可以浏览和搜索存储在 Elasticsearch 中的日志。

984981-20181226110553385-1585760167.png

一、安装部署

Elasticsearch 附加组件本身会作为 Kubernetes 的应用在集群里运行,其 YAML 配置文件可从 https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch 获取。

984981-20181226110711232-1683174483.png

我们把需要的文件下载下来。

for file in es-service es-statefulset fluentd-es-configmap fluentd-es-ds kibana-deployment kibana-service; do wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/$file.yaml; done

官方不建议生产环境使用这种模式之间安装,因为没有设定安全以及存储卷,建议生产环境大家设定存储卷。

在我们安装之前,我们首先需要注释掉 kibana-deployment.yaml 中的环境变量 SERVER_BASEPATH,否则无法访问。

然后通过 kubectl apply -f . 部署。

[root@master elasticsearch]# kubectl apply -f .service/elasticsearch-logging createdserviceaccount/elasticsearch-logging createdclusterrole.rbac.authorization.k8s.io/elasticsearch-logging createdclusterrolebinding.rbac.authorization.k8s.io/elasticsearch-logging createdstatefulset.apps/elasticsearch-logging createdconfigmap/fluentd-es-config-v0.1.6 createdserviceaccount/fluentd-es createdclusterrole.rbac.authorization.k8s.io/fluentd-es createdclusterrolebinding.rbac.authorization.k8s.io/fluentd-es createddaemonset.apps/fluentd-es-v2.2.1 createddeployment.apps/kibana-logging createdservice/kibana-logging created

部分镜像我们无法下载,我这里还是借用阿里云的镜像。

docker pull registry.cn-hangzhou.aliyuncs.com/ct-elasticsearch/ct-elasticsearch:6.3.0docker tag registry.cn-hangzhou.aliyuncs.com/ct-elasticsearch/ct-elasticsearch:6.3.0 k8s.gcr.io/elasticsearch:v6.3.0docker image rm registry.cn-hangzhou.aliyuncs.com/ct-elasticsearch/ct-elasticsearch:6.3.0docker pull registry.cn-hangzhou.aliyuncs.com/chewel_k8s/fluentd-elasticsearch:v2.2.0docker tag registry.cn-hangzhou.aliyuncs.com/chewel_k8s/fluentd-elasticsearch:v2.2.0 k8s.gcr.io/fluentd-elasticsearch:v2.2.0docker image rm registry.cn-hangzhou.aliyuncs.com/chewel_k8s/fluentd-elasticsearch:v2.2.0

所有的资源都部署在 kube-system Namespace 里。

目前节点上面还没有运行Fluentd,要在节点上面启动的话,我们需要给节点打个标签beta.kubernetes.io/fluentd-ds-ready=true

[root@master elasticsearch]# kubectl label node node01 beta.kubernetes.io/fluentd-ds-ready=truenode/node01 labeled[root@master elasticsearch]# kubectl label node node02 beta.kubernetes.io/fluentd-ds-ready=truenode/node02 labeled

然后再查看安装情况。

[root@master elasticsearch]# kubectl get ds fluentd-es-v2.2.1 -n kube-system NAME                DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                              AGEfluentd-es-v2.2.1   2         2         0       2            0           beta.kubernetes.io/fluentd-ds-ready=true   13m

关于 fluentd 的启动,我这里遇到了一点小问题,如下:

[root@master elasticsearch]# kubectl logs fluentd-es-v2.2.1-7j47n -n kube-system2018-12-26 04:11:04 +0000 [error]: config error file="/etc/fluent/fluent.conf" error_class=Fluent::ConfigError error="Unknown filter plugin 'concat'. Run 'gem search -rd fluent-plugin' to find plugins"

转载于:https://www.cnblogs.com/wzlinux/p/10178411.html

你可能感兴趣的文章
Factory Design Pattern
查看>>
python中贪婪与非贪婪
查看>>
guava API整理
查看>>
无锁编程笔记
查看>>
jquery mobile
查看>>
如何在vue单页应用中使用百度地图
查看>>
Springboot使用步骤
查看>>
Spring属性注入
查看>>
Springboot-配置文件
查看>>
Springboot-日志框架
查看>>
SpringBoot-thymeleaf
查看>>
P1908-逆序对
查看>>
P1192-台阶问题
查看>>
一、使用pip安装Python包
查看>>
spring与quartz整合
查看>>
Kattis之旅——Eight Queens
查看>>
3.PHP 教程_PHP 语法
查看>>
Duilib扩展《01》— 双击、右键消息扩展
查看>>
利用Fiddler拦截接口请求并篡改数据
查看>>
python习题:unittest参数化-数据从文件或excel中读取
查看>>