独立使用 APO Metrics 模块实现 Metrics 数据监控功能
简介
- APO 默认开启并支持全量采集多种类型的可观测数据,包括 Trace、Metrics 和 Logs,用户可根据自身需求,灵活配置 APO-one-agent 的数据采集类型,以适应用户环境中现有的数据类型。
- APO 监控 Metrics 数据均使用开源组件与传统的 Metrics 数据采集无异,且拥有更高的集成度实现快速部署。
- 本文档介绍 APO 如何独立监控 Metrics 数据,并介绍如何配置 APO 独立采集并监控 Metrics 数据。
与传统方式对比
传统的 Metrics 数据采集: 基本都是使用 Prometheus 的 Exporter 进行节点指标采集,如果是容器环境再加上 cAdvisor 采集容器指标。再由 Prometheus 来采集目标节点端口并存储。由 Grafana 作为前端查询指标数据。
APO 实现的 Metrics 数据采集: 使用 Grafana Alloy 的 exporter 采集节点、容器及 Kubernetes 环境的各项指标,并通过 OTEL Collector 推送数据至 VictoriaMetrics 存储。APO 内嵌的 Grafana 用于作为前端,查询并展示指标数据,预设了 Kubernetes、容器、节点及网络资源的监控大盘。所有组件集成于一次部署中,实现系统的快速搭建与监控能力的全面覆盖。
实现原理
使用 OneAgent 中的 Alloy 采集 Metrics 数据
相比传统的 Prometheus Node Exporter,APO-one-agent 内置集成了 Grafana Alloy,能够采集宿主机节点资源指标、Kubernetes 集群信息,以及 Kubernetes 环境下节点和容器的资源指标。同时,APO-one-agent 还集成了网络组件,用于采集节点间和容器间的网络 RTT(Round Trip Time,往返时间)等关键网络性能指标。
自动配置应用/基础设施及网络相关指标采集器
相较于传统部署更新采集器需要维护配置文件来监控目标节点,且需要配置安装多个采集器来适配您的 Metrics 数据采集需求;APO-one-agent仅需配置少量配置即可获得生产环境常用的大部分指标数据。
OTEL Collector 完成数据跨云、跨集群传输
使用 OTEL Collector 来完成数据跨云、跨集群传输,APO 支持 OTEL 协议,所有 Metrics 数据都符合 OTEL 数据格式,轻松兼容已有数据源与未来拓展。
APO 将 Metrics 数据存储在 VictoriaMetrics 中
相较于 Prometheus 更强性能的指标存储数据库组件,使用更少的资源,存储更多的数据,获取更强的资源;同时 APO 可选使用内部集成 VictoriaMetrics 亦或者轻松对接您已有的 VictoriaMetrics 实例(具体配置请参见生产环境部署建议)。
利用 APO 集成的 Grafana 大屏查看指标或 者自定义更多大屏
APO 集成 Grafana 并预置多个常用指标大盘,您可以在 Grafana 中查询全量的 Metrics 数据,也可以查看 APO 预配置的指标大屏,亦或者您可以自定义更多指标大屏。
轻松拓展 Trace Metrics Log 一体化可观测平台
相较于传统的 Metrics 监控体系,APO 不仅能够实现对节点、容器及应用的性能指标采集,还可以轻松扩展至涵盖 Trace、Metrics 和 Log 的一体化可观测平台。通过这一平台,不同数据类型(如指标、链路追踪、日志)可以相互关联,提供完整的可观测性视图,帮助开发者和运维人员在性能调优、故障排查、异常监控等方面更加高效。APO 以一站式的方式搭建起涵盖全栈的可观测体系,极大简化了系统的管理和监控工作。
如何配置 APO 仅使用 Metrics 监控模块
第一步:准备工作
要使用 Helm 安装 APO,请确保已完成以下操作:
- 在计算机上安装 Kubernetes 服务器。有关安装 Kubernetes 的信息,请参阅安装 Kubernetes。
- 安装 Helm 的最新稳定版本。有关安装 Helm 的信息,请参阅安装 Helm。
- 网络策略:需要 APO-one-agent 所在集群/机器能够访问 APO-server 集群的 30044、31363、31317、30319 端口。
第二步:设置 APO Helm 仓库
要设置 APO Helm 存储库,以便在计算机上下载正确的 APO Helm charts,请完成以下步骤:使用下方命令添加 apo
Helm 仓库
helm repo add apo https://apo-charts.oss-cn-hangzhou.aliyuncs.com
helm repo update apo
第三步:配置 APO 组件为独立采集 Metrics 数据模式
创建文件apo-values.yaml
,并根据您的需求进行定义,并在部署阶段挂载配置。
本步骤配置 APO-server 数据模式为独立使用 Metrics 模块数据模式。
# apo-values.yaml
# agentCollectorMode 为采集数据模式
global:
agentCollectorMode:
- metrics
# APO-server
# 持久化配置,默认为false
# 生产环境:推荐打开
# POC阶段:可以使用非持久化配置进行快速部署
# 如果为持久化配置则需要根据PVC创建PV
altinity-clickhouse-operator:
clickhouse:
persistence:
enabled: true
victoria-metrics-single:
server:
persistentVolume:
enabled: true
apo-backend:
persistence:
enabled: true
这里提供的为 APO 部署的基础配置,如果您要进行更多配置更改,请从 APO Helm Charts 库中下载values.yaml
文件:
helm show values apo/apo > values.yaml
第四步:部署 APO-server
运行以下命令,挂载配置文件并部署 。
helm install apo apo/apo -n apo --create-namespace \
-f apo-values.yaml
第五步:配置 APO-one-agent 仅使用 Metrics 监控模块
创建文件apo-one-agent-values.yaml
,并根据您的需求进行定义,并在部署阶段挂载配置 。
本步骤配置 APO-on-agent 数据模式为独立使用 Metrics 模块数据模式。
# apo-one-agent-values.yaml
# apoServerIP 为 APO-server 所在的 ClusterIP
# agentCollectorMode 为采集数据模式
global:
apoServerIP: x.x.x.x # FIXME
agentCollectorMode:
- metrics
这里提供的为 APO 部署的基础配置,如果您要进 行更多配置更改,请从 APO Helm Charts 库中下载values.yaml
文件:
helm show values apo/apo-one-agent > values.yaml
第六步:部署 APO-one-agent
运行以下命令,挂载配置文件并部署 。
helm install apo-one-agent apo/apo-one-agent -n apo --create-namespace \
-f apo-one-agent-values.yaml
第七步:验证
执行下方命令查询 pod 运行状态
kubectl get po -n apo
卸载 APO-server
kubectl delete clickhouseinstallation apo -napo
helm uninstall apo -n apo
kubectl delete ns apo
卸载 APO-one-agent
helm uninstall apo-one-agent -n apo
kubectl delete ns apo