当前位置: 首页 > article >正文

深入探索 CnosDB 可观测性最佳实践:Metrics

在这里插入图片描述
在这里插入图片描述

在现代软件架构中,尤其是在微服务和云原生环境中,监控与告警是确保系统稳定性和性能的关键。CnosDB 作为一款高性能的时序数据库,提供了强大的监控与告警功能,帮助开发者和运维团队实时掌握系统状态,快速响应潜在问题。

针对 Metrics 的可视化展示,CnosDB 支持的搭建环境有两种,分别是使用 Promethues 和 Kafka。这里将 Promethues 的搭建过程进行介绍。

image.png

如图所示,通过在集群中每个节点运行 node_exporter 进行信息搜集,通过 Prometheus 获取各个node_exporter 搜集的信息。Prometheus 通过 remote write 将数据写入到 CnosDB 中,Grafana 通过Prometheus remote read 读取CnosDB 中储存的数据,并展示到 Dashboard 上。

CnosDB、Prometheus、Node Exporter 和 Grafana 是一套流行的开源监控系统,它们的组合具有以下特点:

  1. 多维度数据模型:Prometheus 的数据模型基于时间序列数据,其中每个时间序列由一个唯一的指标名称和一组键值对标识符组成。这种多维度的数据模型使得监控指标可以关联到多个标签,并对时间序列进行切片和切块,以支持各种图形、表格和告警场景。

  2. 灵活的查询语言: Prometheus 提供了强大的查询语言 PromQL 来查询和分析数据。PromQL 支持各种聚合操作、函数和操作符,以及灵活的时间窗口和聚合方式,使用户可以轻松地查询和分析他们的数据。

  3. 不依赖分布式存储:Prometheus 不依赖分布式存储,单个服务器节点是自主的。这种设计使得Prometheus的部署和维护变得简单,同时也降低了系统的复杂性和成本。

  4. 以 HTTP 方式,通过 Pull 模型拉取时间序列数据:Prometheus 使用 HTTP 协议从各种数据源中收集指标数据。Prometheus 的拉模型使得它可以轻松地扩展到大规模的集群,并且可以避免由于推送数据而导致的网络问题。

  5. 通过中间网关支持Push模型:除了拉模型,Prometheus 还支持推模型。用户可以使用 Pushgateway 组件将指标数据推送到 Prometheus 中,这种方式适用于短期的任务或者临时性的任务。

  6. 支持多种多样的图标和界面展示:Grafana 提供了丰富的可视化工具,例如图表、表格、警报等,以帮助用户更好地理解和分析业务数据。用户可以使用这些工具来创建漂亮的仪表板来显示 Prometheus 收集的指标数据。

  7. 支持多种数据源:Grafana 支持多种数据源,例如 Prometheus、Elasticsearch、InfluxDB 等。用户可以使用这些数据源来获取数据并将其可视化。

  8. 支持多种插件:Grafana 支持多种插件,例如 Worldmap Panel、Pie Chart Panel、Clock Panel 等。用户可以使用这些插件来增强 Grafana 的功能。

  9. 支持多种告警方式:Prometheus 支持多种告警方式,例如电子邮件、PagerDuty、Slack 等。用户可以使用这些方式来接收告警信息。

  10. 支持多种数据源的联合查询:Grafana 支持多种数据源的联合查询,例如 Prometheus 和 Elasticsearch的联合查询。这种联合查询可以帮助用户更好地理解和分析他们的数据。

快速搭建和使用

  1. Grafana

配置数据源地址:http://ip:9090 ,该ip就是Prometheus容器启动的宿主机。

image.png

导入节点信息模版

image.png

  1. Prometheus

docker镜像

docker.io/bitnami/prometheus:latest

启动命令

sudo docker run -itd -p 9090:9090 docker.io/bitnami/prometheus:latest

配置说明

红色框的是对节点的监控,通过在对应节点上启动 node_export 来收集节点信息;

绿色框的是对 CnosDB 的监控,通过远程写,将节点信息和 CnosDB 信息写入 CnosDB 的数据库中;通过远程读,将 CnosDB 信息读出在 Grafana 上展示:

image.png

  1. node_exporter

在要监控的节点上启动

启动命令

root用户下,nohup ./node_exporter &

从Grafana插件商店查询CnosDB插件,导入 CnosDB 的 Grafana 插件:

可视化展示

将 CPU 利用率,系统负载,内存使用情况及机器开机时间等配置信息通过饼图直观的进行展示:

image.png

实时展示 CPU、内存、网络及磁盘的使用走势,方便对系统性能进行整体评估。

image.png

告警机制

告警是监控系统中不可或缺的一部分。CnosDB 提供了灵活的告警机制,用户可以根据不同的需求设置告警规则。

告警规则:用户可以根据监控指标设置阈值,当某个指标超过或低于设定的阈值时,系统会自动触发告警。例如,当 CPU 使用率超过 80% 时,可以触发告警,通知运维团队。

告警通知:CnosDB 支持多种通知渠道,包括邮件、短信、Slack 等。这样,团队可以在第一时间获得告警信息,快速响应。

结论

监控与告警是维护系统稳定性和优化性能的重要手段。CnosDB 提供了强大的监控解决方案,帮助团队实时掌握系统状态,快速响应潜在问题。通过结合监控数据与告警机制,团队能够更有效地管理和优化系统,提高整体运维效率,确保用户获得最佳体验。

获取 CnosDB 可观测性白皮书请点击以下链接或者点击阅读原文:

https://jsj.top/f/qyV9DC

CnosDB简介

CnosDB是一款高性能、高易用性的开源分布式时序数据库,现已正式发布及全部开源。
欢迎关注我们的社区网站:https://cn.cnosdb.com


http://www.kler.cn/a/420808.html

相关文章:

  • QT6学习第八天 QFrame 类
  • 记录一次网关异常
  • 《Spring Boot 整合 Avro 与 Kafka》
  • 人机交互中的状态交互、趋势交互
  • # Spring Boot WebSocket学习
  • 2024.12.2工作复盘
  • 架构师:Dubbo 服务请求失败处理的实践指南
  • 蓝桥杯真题——砍竹子(C语言)
  • 如何在Spark中使用gbdt模型分布式预测
  • 中国电信张宝玉:城市数据基础设施建设运营探索与实践
  • 【前端】JavaScript 中的 this 与全局对象 window深度解析
  • diffusion model: prompt-to-prompt 深度剖析
  • 设计模式:15、生成器模式
  • TinyXML2的一些用法
  • dpwwn02靶场
  • 探讨播客的生态系统
  • 第 41 章 - Go语言 软件工程原则
  • 目标检测标注图像
  • 目标检测模型和图像分割模型
  • ES6 对象扩展全解析:属性简写、表达式、super 关键字等的深度应用
  • Qt5语法的connect指定多个重载信号槽函数中的具体某一个
  • Day6 洛谷 1426+1425+1424+1423+1422+1614+1634+1639
  • 基于Springboot + Vue开发的美食探索及分享平台
  • Maxwell的入门实战
  • java基础概念46-数据结构1
  • Rust循环引用与多线程并发