MetricBeat 采集 Kubernetes 状态

> Kubernetes 本身命令行界面去管理集群内的资源对象,例如有需求想查看某一些Pod在任意的时间段性能的使用情况,如何通过 Elastic Stack 进行一站式的数据采集,数据清洗,数据落地,数据可视化,让数据发挥真正的价值呢?


#### 架构设计

涉及到 Elastic Stack 中 Metricbeat 是用于采集 Kubernetes 相关的性能指标, Elasticsearch 是用于对于数据落地存储和搜索的引擎, Kibana 是用于对数据可视化的工具。

MetricBeat 采集 Kubernetes 状态

首先 Kubernetes 需要部署 Kuberentes State Metric 以支持 Metricbeat 对响应的 API 进行数据采集。

#### 实施方法


下载官方的模板在本地文件系统

wget https://raw.githubusercontent.com/elastic/beats/7.9/deploy/kubernetes/metricbeat-kubernetes.yaml


修改 ConfigMap 中指定的 Elasticsearch 主机相关的配置,并添加 Kibana的主机

output.elasticsearch:
      hosts: ['http://elasticsearch:9200']
      username: elastic
      password: xxx
    setup.kibana:
      host: "kibana:5601"


应用 YAML 配置创建对应的 Kubernetes 资源

kubectl apply -f metricbeat-kubernetes.yaml


进入 Pod 修改配置

kubectl exec -it metricbeat-xxx /bin/bash


设置 Metricbeat 创建 Kibana上的 Index Pattern 和 Dashboard

metricbeat setup


#### 可视化展示

通过 Kibana 中的 Dashboard 功能

展示目前 Kubernetes 中的资源对象运行情况

MetricBeat 采集 Kubernetes 状态




上一篇:涉嫌垄断?谷歌将遭欧盟反垄断部门高额罚款


下一篇:带你读《思科软件定义访问 : 实现基于业务意图的园区网络》序