Skip to main content
开放网络的先行者与推动者—星融元
加入我们技术支持(Support)  TEL:(+86)4000989811

开源网络监控工具Prometheus,有哪些优势?


2024-04-07

网络监控是网络管理的重要组成部分,定期网络监控可以预防故障、优化性能、规划容量,确保网络的可用性、安全性等。相比较普通的监控工具,开源网络监控工具拥有可定制性、灵活性、可扩展性等优势,受到国内外众多企业的追捧,有哪些好用的开源网络监控工具,该如何选择呢?

一、盘点好用的开源网络监控工具

1、开源网络监控工具盘点

工具描述主要特点
Cacti一种图形解决方案,可与 RRDTool 一起收集 LAN 中的性能数据。–简单的网络管理协议(SNMP)支持
–绘制交通数据图表
–易于设置的模板
–用于数据存储的MySQL数据库
Nagios Core一种流行的监控工具,具有可扩展性和易用性的界面。– 自动发现设备
– 复杂的性能图
– 通过附加组件进行定制
– PHP Web 界面 (Nagios V-Shell)
– RESTful API
Icinga 2一个灵活的工具,建立在Nagios Core之上,提供可定制的仪表板和出色的可视化功能。– 用于自定义配置的RESTful API
– 实时性能数据监控
– 对 Graphite 和 InfluxDB的原生支持
– 通过电子邮件或文本发出警报和通知
Zabbix涵盖网络、服务器、云、应用、业务监控的综合监控工具。– 网络带宽使用情况跟踪
– 网络运行状况和配置更改监控
– SNMP、IPMI 和 IPv6 支持
– 用于轻松发现设备的模板
– 警报和通知
– 支持广泛的平台
Prometheus一种用于监控时间序列数据的流行工具,拥有大量社区追随者。– 时间序列数据监控
– 用于事件通知的警报管理器
– 与各种数据源(Docker、StatsD、JMX)集成
– 用于可视化的 Grafana 集成

2、对比展现Prometheus优势

作为发行时间最晚(Prometheus发行于2016年)的开源网络监控工具,Prometheus有哪些优势呢?以传统的Zabbix为例,一起来对比吧!

 ZabbixPrometheus
监控规模集群规模上限为10000个节点支持更大的集群规模
监控对象物理机环境云环境
存储关系型数据库时间序列的数据库
服务发现PushPull/Push
配置配置复杂一个核心Server组件,配置简单
社区活跃度国内比较活跃,社区活跃度相对较低开源社区非常活跃CNCF支持

二、Prometheus 是做什么的?

Prometheus 是一款免费软件,可帮助监控和发送有关计算机系统的警报,2012年已经产生并一直存在,并在公司和组织中变得非常流行。许多开发人员和用户积极为它做出贡献。它不属于任何特定公司,由共同工作的社区管理。2016 年,Prometheus 成为云原生计算基金会的一部分。

《Prometheus》-配图-01

《Prometheus》-配图-02

核心组件:

  • Prometheus Server
  • Exporter
  • Alertmanager
  • Pushgateway
  • Service discovery

Prometheus Server是Prometheus组件中的核心部分,负责实现对监控数据的获取,存储以及查询。

1、工作流程

  1. Exporter将监控数据采集的端点通过HTTP服务的形式暴露给Prometheus Server;
  2. 在Prometheus Server中支持基于PromQL创建告警规则,如果满足PromQL定义的规则,则会产生一条告警,而告警的后续处理流程则由AlertManager进行管理;
  3. Prometheus Server与Push网络需求无法直接满足时,就可以利用PushGateway来进行中转;
  4. Service discovery:监控系统而言就意味着没有了一个固定的监控目标,所有的监控对象(基础设施、应用、服务)都在动态的变化。

2、Exporter

定义:广义上来讲,任何向Prometheus提供监控样本数据的程序都可以被称为一个Exporter,Exporter的一个实例称为Target。

《Prometheus》-配图-03

若要从Target (host or service)收集监视数据,首先必须在要收集的Target上安装收集组件,称为Exporter,他们的官网(http://prometheus.io)上有很多Exporter:

– Consul exporter (official)
– Memcached exporter (official)
– MySQL server exporter (official)
– Node/system metrics exporter (official)
– HAProxy exporter (official)
– RabbitMQ exporter
– Grok exporter
– InfluxDB exporter (official)

可根据所监控的对象选取特定的Exporter:

范围Exporter
数据库MySQL exporter, Redis exporter, MongoDB exporter, MSSQL exporter等
硬件Apcupsd exporter, IoT Edison exporter, IPMI exporter, Node exporter等
消息队列Beanstalkd exporter, Kafka exporter, NSQ exporter, RabbitMQ exporter等
存储Ceph exporter, Gluster exporter, HDFS exporter, RabbitMQ exporter等
HTTP服务Apache exporter, HAProxy exporter, ScaleIO exporter等
API服务AWS ECS exporter, Docker Cloud exporter, Docker Hub exporter, GitHub exporter等
日志Fluentd exporter, Grok exporter等
监控系统Collected exporter, Graphite exporter, InfluxDB exporter, Nagios exporter, SNMP exporter等
其他Blockbox exporter, JIRA exporter, Jenkins exporter, Confluence exporter等

工作方式:

– 注册指标:exporter需要定义要导出的指标及其相关信息
– 数据收集:exporter定期从系统或应用程序中收集指标数据
– 指标转换:exporter将收集到的指标数据转换为Prometheus的指标类型
– 暴露指标:exporter提供一个HTTP接口,通过该接口将转换后的指标暴露给Prometheus

《Prometheus》-配图-04

3、告警产生以及推送

《Prometheus》-配图-05

  • Prometheus会周期性的对告警规则进行计算,如果满足告警触发条件就会向Alertmanager发送告警信息
  • Alertmanager根据配置推送给对接的平台,支持对接多种平台告警推送

流程:

  1. 告警路由:会根据事先定义的路由配置对告警进行路由。路由配置规定了如何处理不同的告警,包括将告警发送到不同的接收者(如电子邮件、PagerDuty、Slack等)、进行静默处理或者进行其他操作。
  2. 告警抑制:Alertmanager会对接收到的告警进行去重处理,以避免重复通知。
  3. 告警分组:Alertmanager会将具有相同标签或属性的告警进行分组,以便进行更有效的通知和处理。这样可以避免发送大量重复的告警通知,提供更清晰的告警视图。

三、示例:将Prometheus与AsterNOS结合

1、为什么使用Prometheus监控AsterNOS

《Prometheus》-配图-06

2、效果展示

以星融元CX-M园区网络为例,使用Prometheus + SNMP + Grafana组合方案进行监控,能够采集系统运行数据,实现网络数据可视化以及网络架构拓扑展示。

园区方案

《Prometheus》-配图-07

在AsterNOS设备上部署Node exporter,以HTTP接口的形式暴露AsterNOS的系统运行数据,Prometheus将主动Pull数据。Prometheus获取到数据后一方面用于评估告警规则——若产生告警将由Alertmanager推送给所对接的服务;另一方面落地到Prometheus服务器本地存储中。Grafana可以利用Prometheus所存储的监控数据来进行可视化展示。

《Prometheus》-配图-08

以Node exporter所采集的数据作为来源展示

《Prometheus》-配图-10

《Prometheus》-配图-09

对星融元产品感兴趣?

立即联系!

返回顶部

© 星融元数据技术(苏州)有限公司 苏ICP备17070048号-2