使用 DataFlux 完成 Kubernetes 监控指标采集与展示

简介:

DataFlux是上海驻云自研发的一套大数据统一分析平台,可以通过对任何来源、类型、规模的实时数据进行监控、分析和处理,释放数据价值。
image

DataFlux包含五大功能模块:

  • Datakit 采集器
  • Dataway 数据网关
  • DataFlux Studio 实时数据洞察平台
  • DataFlux Admin Console 管理后台
  • DataFlux.f(x) 实时数据处理开发平台

面向企业提供全场景的数据洞察分析能力, 具有实时性、灵活性、易扩展、易部署等特点。

今天给大家分享的是如何使用 DataFlux 完成Kubernetes 监控指标采集与展示。

安装DataKit

备注:以Linux系统为例

DataKit 安装命令:

DK_FTDATAWAY=[你的 DataWay 网关地址] bash -c "$(curl https://static.dataflux.cn/datakit/install.sh)"

补充安装命令中的 DataWay 网关地址,然后复制安装命令到主机上执行即可。

例如:如果的 DataWay 网关地址 IP 为 1.2.3.4,端口为 9528(9528为默认端口),则网关地址为
http://1.2.3.4:9528/v1/write/metrics,安装命令为:

DK_FTDATAWAY=http://1.2.3.4:9528/v1/write/metrics bash -c "$(curl https://static.dataflux.cn/datakit/install.sh)"

安装完成后,DataKit 默认会自动运行,并且会在终端中提示 DataKit 的状态管理命令

image

配置采集源

采集 Kubernetes 集群指标上报到 DataFlux 中。

dDataFlux 对 kubernetes 集群指标采集,主要通过两个 input 插件完成:

  • kubernetes(主要针对集群中 kubelet 的数据采集,即 node 节点相关性能)
  • kube_inventory(主要针对集群中 api-server 的数据采集,即集群、pod 相关性能)

kube_inventory 配置

打开 DataKit 采集源配置文件夹(默认路径为 DataKit 安装目录的 conf.d 文件夹),找到 kube_inventory 文件夹,打开里面的 kube_inventory.conf。

配置案例参考如下设置:

[[inputs.kube_inventory]]
## URL for the Kubernetes API
url = "https://172.16.0.12:6443"

## Namespace to use. Set to "" to use all namespaces.
# namespace = "default"

## Use bearer token for authorization. ('bearer_token' takes priority)
## If both of these are empty, we'll use the default serviceaccount:
## at: /run/secrets/kubernetes.io/serviceaccount/token
# bearer_token = "/path/to/bearer/token"
## OR
# bearer_token_string = "abc_123"

## Set response_timeout (default 5 seconds)
# response_timeout = "5s"

## Optional Resources to exclude from gathering
## Leave them with blank with try to gather everything available.
## Values can be - "daemonsets", deployments", "endpoints", "ingress", "nodes",
## "persistentvolumes", "persistentvolumeclaims", "pods", "services", "statefulsets"
# resource_exclude = [ "deployments", "nodes", "statefulsets" ]

## Optional Resources to include when gathering
## Overrides resource_exclude if both set.
# resource_include = [ "deployments", "nodes", "statefulsets" ]

## Optional TLS Config
tls_ca = "/opt/kubernetes/ssl/ca.pem"
tls_cert = "/opt/kubernetes/ssl/kube-apiserver.pem"
tls_key = "/opt/kubernetes/ssl/kube-apiserver-key.pem"

## Use TLS but skip chain & host verification
# insecure_skip_verify = false

配置好后,重启 DataKit 即可生效

Kubernetes Permissions

如果使用RBAC授权,则需要创建一个集群角色以列出“persistentvolumes”和“nodes”。然后,您需要创建一个聚合的ClusterRole,它最终将绑定到用户或组。

---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: influx:cluster:viewer
  labels:
    rbac.authorization.k8s.io/aggregate-view-telegraf: "true"
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes", "nodes"]
    verbs: ["get", "list"]

---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: influx:telegraf
aggregationRule:
  clusterRoleSelectors:
    - matchLabels:
        rbac.authorization.k8s.io/aggregate-view-telegraf: "true"
    - matchLabels:
        rbac.authorization.k8s.io/aggregate-to-view: "true"
rules: [] # Rules are automatically filled in by the controller manager.

将新创建的聚合ClusterRole与以下配置文件绑定,并根据需要更新主题。

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: influx:telegraf:viewer
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: influx:telegraf
subjects:
  - kind: ServiceAccount
    name: telegraf
    namespace: default

kubernetes采集指标

Kubernetes 插件与 Kubelet API 进行对话,并收集有关单个主机正在运行的 pod 和容器的度量。假定此插件在 kubernetes 安装中作为守护程序的一部分运行。这意味着 DataFlux 在集群中的每个节点上运行。因此,您应该配置此插件以与其本地运行的 kubelet 对话。

打开 DataKit 采集源配置文件夹(默认路径为 DataKit 安装目录的 conf.d 文件夹),找到 kube_inventory 文件夹,打开里面的 kube_inventory.conf。

配置案例参考如下设置:

[[inputs.kubernetes]]
## URL for the kubelet
url = "http://172.16.0.12:10255"

#tls_ca = "/opt/kubernetes/ssl/ca.pem"
#tls_cert = "/opt/kubernetes/ssl/kubernetes.pem"
#tls_key = "/opt/kubernetes/ssl/kubernetes-key.pem"
#insecure_skip_verify = true

## Use bearer token for authorization. ('bearer_token' takes priority)
## If both of these are empty, we'll use the default serviceaccount:
## at: /run/secrets/kubernetes.io/serviceaccount/token
# bearer_token = "/path/to/bearer/token"
## OR
# bearer_token_string = "abc_123"

## Pod labels to be added as tags.  An empty array for both include and
## exclude will include all labels.
# label_include = []
# label_exclude = ["*"]

## Set response_timeout (default 5 seconds)
# response_timeout = "5s"

## Optional TLS Config
# tls_ca = /path/to/cafile
# tls_cert = /path/to/certfile
# tls_key = /path/to/keyfile
## Use TLS but skip chain & host verification
# insecure_skip_verify = false

验证数据上报

完成数据采集操作后,我们需要验证数据是否采集成功并且上报到DataWay,以便后续能正常进行数据分析及展示

操作步骤:登录DataFlux——数据管理——指标浏览——验证数据是否采集成功

kubernetes指标:
image

使用DataFlux实现数据洞察

根据获取到的指标项进行数据洞察设计,例如:

kubernetes监控视图
image

DataFlux基于自研的DataKit数据(采集器)目前已经可以对接超过200种数据协议,包括:云端数据采集、应用数据采集、日志数据采集、时序数据上报、常用数据库的数据汇聚,帮助企业实现最便捷的IT 统一监控。

image

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
Prometheus 监控 Kubernetes
如何用 Prometheus Operator 监控 K8s 集群外服务?
如何用 Prometheus Operator 监控 K8s 集群外服务?
|
2月前
|
存储 Kubernetes 监控
Kubecost | Kubernetes 开支监控和管理 🤑🤑🤑
Kubecost | Kubernetes 开支监控和管理 🤑🤑🤑
|
6月前
|
Prometheus 监控 Kubernetes
【K8S系列】深入解析K8S监控
【K8S系列】深入解析K8S监控
246 0
|
6月前
|
Prometheus Kubernetes 监控
prometheus operator监控k8s集群之外的haproxy组件
prometheus operator监控k8s集群之外的haproxy组件
|
4月前
|
Kubernetes 监控 容器
k8s学习-CKA真题-监控Pod日志
k8s学习-CKA真题-监控Pod日志
78 0
|
30天前
|
Prometheus 监控 Kubernetes
Kubernetes 集群监控与日志管理实践
【2月更文挑战第29天】 在微服务架构日益普及的当下,Kubernetes 已成为容器编排的事实标准。然而,随着集群规模的扩大和业务复杂度的提升,有效的监控和日志管理变得至关重要。本文将探讨构建高效 Kubernetes 集群监控系统的策略,以及实施日志聚合和分析的最佳实践。通过引入如 Prometheus 和 Fluentd 等开源工具,我们旨在为运维专家提供一套完整的解决方案,以保障系统的稳定性和可靠性。
|
6月前
|
Prometheus 监控 Kubernetes
【云原生】k8s集群资源监控平台搭建—20230227
【云原生】k8s集群资源监控平台搭建—20230227
|
2月前
|
Prometheus 监控 Kubernetes
监控 Kubernetes 集群证书过期时间的三种方案
监控 Kubernetes 集群证书过期时间的三种方案
|
28天前
|
Prometheus 监控 Kubernetes
Kubernetes 集群的监控与日志管理实践
【2月更文挑战第31天】 在微服务架构日益普及的今天,容器编排工具如Kubernetes已成为部署、管理和扩展容器化应用的关键平台。然而,随着集群规模的扩大和业务复杂性的增加,如何有效监控集群状态、及时响应系统异常,以及管理海量日志信息成为了运维人员面临的重要挑战。本文将深入探讨 Kubernetes 集群监控的最佳实践和日志管理的高效策略,旨在为运维团队提供一套系统的解决思路和操作指南。
26 0
|
30天前
|
存储 Kubernetes 监控
Kubernetes(k8s)集群健康检查常用的五种指标
Kubernetes(k8s)集群健康检查常用的五种指标
86 1