写点什么

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

作者:CnosDB
  • 2024-11-30
    北京
  • 本文字数:2010 字

    阅读完需:约 7 分钟

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


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


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




如图所示,通过在集群中每个节点运行 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 容器启动的宿主机。


导入节点信息模版


  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 上展示:


  1. node_exporter

在要监控的节点上启动


启动命令


root 用户下,nohup ./node_exporter &


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

可视化展示

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


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


告警机制

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


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


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


结论

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


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


三方应用: https://jsj.top/f/qyV9DC


CnosDB 简介

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

发布于: 刚刚阅读数: 2
用户头像

CnosDB

关注

还未添加个人签名 2022-04-18 加入

打造高性能、高压缩比、高可用的分布式云原生时间序列数据库,引领世界迈向万物智联 欢迎关注 https://www.cnosdb.com

评论

发布
暂无评论
深入探索 CnosDB 可观测性最佳实践:Metrics_时序数据库_CnosDB_InfoQ写作社区