精华内容
下载资源
问答
  • 4个开源监控工具介绍

    千次阅读 2018-12-28 22:37:52
    围绕监控的术语近年来引起了很多混乱,导致一些糟糕的工具宣称能够以一种格式完成所有事情。可观测性的支持者认识到观察一系统有许多层次。度量标准聚合中最主要的是时间序列数据,这里有许多工具可用,包括开源和...

    围绕监控的术语近年来引起了很多混乱,导致一些糟糕的工具宣称能够以一种格式完成所有事情。可观测性的支持者认识到观察一个系统有许多层次。度量标准聚合中最主要的是时间序列数据,这里有许多工具可用,包括开源和商业。我们将专注于开源工具,但其中有包含带有付费组件的开放核心模型。

    Prometheus

    这是原生云应用程序中最受认可的时间序列监控解决方案。目前它由Cloud Native Computing Foundation 基金会(CNCF)托管,但之前是由Matt Proud和Julius Volz创建,由SoundCloud赞助,很多早期的贡献者也提供了帮助。

    Prometheus是一个基于拉的系统,它使用本地配置来描述要收集的端点以及收集所需的间隔。每个端点都有一个客户端收集数据并在每次请求时更新该代理人(或者配置客户端)。收集此数据并将其保存在本地磁盘上的高效存储引擎中。存储系统每个度量标准使用仅附加文件。这种存储不是有损的,这意味着一年前数据的保真度与您今天收集的数据一样高。但是,您可能不希望在本地保留那么多数据。幸运的是,有一个远程存储选项可用于长期保留和分析。

    Prometheus包含一种高级表达式语言名为PromQL,用于选择和显示数据。数据可以通过REST API以图形方式,表格方式或由外部系统使用。表达式语言允许用户创建回归,分析实时数据或趋势历史数据。标签也是过滤和查询数据的绝佳工具。标签可以与每个度量标准名称相关联。

    Prometheus还提供联邦模式,通过允许团队拥有自己的Prometheis来鼓励更多的本地化控制,而中央团队也可以拥有自己的Prometheis。中央系统可以抓取与本地Prometheis相同的端点,但它们也可以获取本地Prometheis正在收集的聚合数据。这减少了端点上的开销。此联合模型还允许本地实例相互收集数据。

    Prometheus附带AlertManager来处理警报。该系统允许聚合警报以及更复杂的流量以限制发送警报的时间。

    假设在同一时间10个节点突然关闭。您可能不需要发送有关10个节点的警报,因为接收它们的每个人在修改交换机之前可能无法执行任何操作。使用AlertManager,可以仅向交换机的网络团队发送警报,并包含有关可能受影响的其他系统的其他信息。也可以向系统团队发送电子邮件(而不是页面),以便他们知道这些节点已关闭。除非系统在交换机修复后没有出现,否则他们不需要响应。如果发生这种情况,则AlertManager将重新激活由交换机警报抑制的那些警报。

    Graphite

    Graphite已经存在很长时间了,James Turnbull出版的“监测艺术”一书详细介绍了Graphite。Graphite已经在该行业中普遍存在,许多大公司大规模使用它。

    Graphite是一个基于推送的系统,通过让应用程序将数据推送到Graphite的Carbon组件中,从应用程序接收数据。Carbon将此数据存储在Whisper数据库中,Graphite Web组件读取该数据库和Carbon,允许用户在浏览器中绘制数据图或通过API提取数据。一个非常酷的功能是能够将这些图形导出为图像或数据文件,以便将它们轻松嵌入到其他应用程序中。

    Whisper是一个固定大小的数据库,可以随时间快速,可靠地存储数字数据。它是一个有损数据库,这意味着您的指标的解决方案会随着时间的推移而降低。它将为最新的集合提供高保真度量标准,并逐渐降低保真度。

    Graphite还使用点分隔命名,这意味着维度。此维度允许对指标和指标之间的关系进行一些创造性聚合。这样就可以跨不同版本或数据中心聚合服务,并且(更具体地说)在特定Kubernetes集群中的一个数据中心中运行的单个版本。还可以进行粒度级比较以确定特定群集是否表现不佳。

    Graphite的另一个有趣功能是能够存储应该与时间序列指标相关的任意事件。特别是,可以在Graphite中添加和跟踪应用程序或基础架构部署。这允许操作员或开发人员对问题进行故障排除,以获得有关正在调查的异常行为的环境中发生的事情的更多上下文。

    Graphite还有大量可应用于度量的函数。但是,它缺乏强大的查询语言,它还缺少警报功能或内置警报系统。

    InfluxDB

    InfluxDB是一个相对较新的参赛者,比Prometheus更新。它使用开放核心模型,这意味着有额外的扩展和集群成本。InfluxDB是更大的TICK堆栈(Telegraf,InfluxDB,Chronograf和Kapacitor)的一部分,因此我们将在此分析中包含所有这些组件的功能。

    InfluxDB使用名为tags的键值对为度量添加维度,类似于Prometheus和Graphite。结果类似于我们之前讨论的其他系统。度量标准数据可以是float64,int64,bool和具有纳秒分辨率的字符串。这个范围比这个领域的大多数其他工具更广泛。事实上,TICK堆栈更像是一个事件聚合平台而不是本机时间序列指标聚合系统。

    InfluxDB使用类似于日志结构合并树的系统进行存储。在此上下文中,它被称为时间结构合并树。它使用预写日志和一组只读数据文件,这些文件类似于排序字符串表,具有系列数据而不是纯日志数据。这些文件按时间块进行分片。要了解更多信息,请在InfluxData网站上查看这个优秀的资源

    TICK堆栈的体系结构根据它是开源还是商业版本而有所不同。开源InfluxDB系统是独立于一个主机中的,而商业版本质上是分布式的。其他中心组件也是如此。在开源版本中,一切都在一台主机上运行。外部系统上没有存储任何数据或配置,因此管理起来相当容易,但它不如商业版那么强大。

    InfluxDB包含一种类似SQL的语言,名为InfluxQL,用于查询数据库中的数据。查询数据的主要方法是HTTP API。查询语言没有像Prometheus那样多的内置辅助函数,但熟悉SQL的人可能会对这种语言感觉更舒服。

    TICK堆栈还包括警报系统。该系统可以进行一些温和的聚合,但不具备Prometheus的AlertManager的全部功能。但它确实提供了许多集成。此外,为了减少InfluxDB的负载,可以安排连续查询来存储Kapacitor将采取警报的查询结果。

    OpenTSDB

    正如其名称所暗示的,OpenTSDB是一个开源时间序列数据库。它在这个工具集中是独一无二的,因为它将其指标存储在Hadoop中。这意味着它具有固有的可扩展性。如果您已经拥有Hadoop集群,那么对于您希望长期存储的指标,这可能是一个不错的选择。如果您没有Hadoop集群,那么运营开销可能会给您带来太大的负担。但是,OpenTSDB现在支持Google的Bigtable作为后端,这是一种您无需操作的云服务。

    OpenTSDB与其他系统共享许多功能。它使用键值配对系统,它调用标签来识别指标和添加维度。它有一种查询语言,但它比Prometheus的PromQL有限。但是,它有几个内置功能,有助于学习和使用。API是查询的主要入口点,类似于InfluxDB。除非在HBase中设置了生存时间,该系统还可以永久存储所有数据,因此您不必担心保真度降低。

    OpenTSDB不提供警报功能,这将使您很难与事件响应流程集成。这种类型的系统可能对于长期Prometheus数据存储和执行更多历史分析以揭示系统性问题非常有用,而不是作为快速识别和响应急性问题的工具。

    展开全文
  • 防止系统宕机?给你推荐六个开源监控工具.pdf
  • 开源监控工具 监视不只是监视吗? 它不包括日志记录,可视化和时间序列数据吗? 多年来,围绕监视的术语引起了很多混乱,并导致一些不良的工具吹捧以一种格式进行所有操作的能力。 可观察性的支持者认为,观察系统...

    监控工具 开源

    监视不只是监视吗? 它不包括日志记录,可视化和时间序列数据吗?

    多年来,围绕监视的术语引起了很多混乱,并导致一些不良的工具吹捧以一种格式进行所有操作的能力。 可观察性的支持者认为,观察系统有很多层次。 指标聚合主要是时间序列数据,这就是我们将在本文中讨论的内容。

    时序数据的特征

    专柜

    计数器是代表只会增加数值的指标。 (换句话说,计数器永远不能减少。)计数器会累加值,并在请求时显示当前总数。 这些通常用于诸如Web请求的总数,错误数,访问者数之类的事情。这类似于在事件入口处带有计数器设备的人,该设备对所有进入的人进行计数。 通常不选择不重置计数器就递减计数器。

    量规

    量表与计数器类似,因为它代表单个数值,但也可以减小。 它本质上是某个时间点的某些值的表示。 温度计就是一个很好的例子:温度计随温度上下移动,并提供时间点读数。 其他用途包括CPU使用率,内存使用率,网络使用率和线程数。

    分位数

    分位数不是度量标准的类型,但它们与以下两个部分密切相关:直方图和摘要。 让我们用一个例子来阐明我们对分位数的理解:

    百分位数是一种分位数。 百分位是我们经常看到的东西,它们应该帮助我们更容易地理解一般概念。 一个百分位数具有100个“存储桶”值。 我们经常看到它们与测试或性能相关,并且通常表示为某人得分,例如,在第85个百分点之内或其他某个值。 这意味着在该百分比中得分的人的真实价值落在第85至86个百分点之间。 此人在所有学生中也得分最高的15%。 我们不知道基于该指标的存储桶中的分数,但是可以基于存储桶中所有分数的总和除以这些分数的计数得出。

    分位数使我们比使用均值或其他不考虑离群值和不均匀分布的统计函数更好地理解我们的数据。

    直方图

    直方图比计数器或量规要复杂一些。 这是观察的样本。 它由一个计数器组成,该计数器对所有观察值进行计数,本质上是一个将观察值相加的量表。 它使用“存储桶”或分组对值进行分段,以有效地绑定数据集。 在与请求服务级别协议(SLA)相关的分位数中通常会看到这种情况。 假设我们要确保95%的请求低于500ms。 我们可以使用上限为0.5s的存储桶来收集所有500ms以下的值。 然后,我们将能够确定有多少总请求属于该请求。 我们还可以确定距SLA有多远,但这可能很难做到(如Prometheus文档中所述 )。

    直方图是从多个实例累积到中央服务器的聚合指标。 这提供了一个机会来了解整个系统,而不是逐个节点地了解系统。

    总结

    汇总与直方图相似,因为它们是观察值的样本,但是汇总发生在服务器端。 同样,分位数的估计比直方图更准确。 摘要使用滑动时间窗,因此它的情况与直方图略有不同,但通常用于相同类型的指标。 我通常使用直方图,除非我需要非常精确的分位数度量。

    推拉

    如果不解决“推与拉”的争论,就无法撰写有关度量聚合工具的文章。

    辩论围绕着将指标推送到数据聚合系统还是让指标聚合系统通过抓取端点来获取并收集数据更好。 多篇文章讨论了这一点(例如本篇本篇 )。 我的观点是,这几乎没有关系。 其他研究由读者自行决定。

    工具选项

    有许多可用的工具,包括开源和商业工具。 我们将重点关注开放源代码工具,但是其中一些工具包含带有付费组件的开放核心模型。

    其中一些工具具有可观察性的其他组件-主要是警报和可视化。 这些将作为附加功能在本节中介绍,并且在后续文章中将不介绍。

    普罗米修斯

    这是针对云原生应用程序的最公认的时间序列监视解决方案。 它由Cloud Native Computing Foundation (CNCF)托管,但是它是由Matt Proud和Julius Volz创建的,并由SoundCloud赞助,并有早期的外部贡献者来帮助开发它。 Robust Perception的 Brian Brian建立了帮助公司采用Prometheus的业务。 他的网站上还有一个很棒的博客Prometheus文档内容丰富,为理解和使用该工具提供了许多详细信息。

    Prometheus是基于拉的系统,它使用本地配置来描述要收集的端点以及收集所需的时间间隔。 每个终结点都有一个客户端,该客户端收集数据并根据每个请求更新该表示(或配置客户端)。 收集这些数据并将其保存在本地磁盘上的高效存储引擎中。 存储系统每个指标使用仅附加文件。 这种存储不会造成损失,这意味着一年前数据的保真度与您今天所收集的数据一样高。 但是,您可能不想在本地保留那么多数据。 幸运的是,有一个远程存储选项可以长期保留和分析。

    Prometheus包括一种用于选择和显示数据的高级表达语言,称为PromQL 。 可以以图形,表格形式显示此数据,或者由外部系统通过REST API使用这些数据。 表达式语言允许用户创建回归,分析实时数据或趋势历史数据。 标签也是过滤和查询数据的好工具。 标签可以与每个度量标准名称相关联。

    Prometheus还提供了联盟模型,该模型通过允许团队拥有自己的Prometheis来鼓励更多本地化的控制,而中央团队也可以拥有自己的Prometheis 。 中央系统可以刮擦与本地Prometheis相同的端点,但是它们也可以刮擦本地Prometheis以获取本地实例正在收集的聚合数据。 这减少了端点上的开销。 该联合模型还允许本地实例相互收集数据。

    Prometheus随附AlertManager来处理警报。 该系统允许警报以及更复杂的流的聚合,以限制警报的发送时间。

    假设有10个节点在交换机关闭的同时突然关闭。 您可能不需要发送有关10个节点的警报,因为接收到它们的每个人在固定交换机之前可能将无能为力。 使用AlertManager,可以仅将警报发送给交换机的网络团队,并包括有关可能受影响的其他系统的其他信息。 还可以向系统团队发送电子邮件(而不是页面),以便他们知道那些节点已关闭,并且除非在交换机维修后系统没有启动,否则它们无需响应。 如果发生这种情况,则AlertManager将重新激活那些被开关警报抑制的警报。

    石墨

    石墨已经存在了很长时间,James Turnbull的最新著作《监测的艺术》详细介绍了石墨。 石墨在该行业中已无处不在,许多大型公司都在大规模使用它。

    Graphite是基于推送的系统,通过使应用程序将数据推送到Graphite的Carbon组件中,可以从应用程序接收数据。 Carbon将这些数据存储在Whisper数据库中,该数据库和Carbon由Graphite Web组件读取,该组件允许用户在浏览器中绘制其数据图或通过API提取数据。 一个非常酷的功能是能够将这些图形导出为图像或数据文件,以将其轻松嵌入其他应用程序中。

    Whisper是一个固定大小的数据库,可随时间提供快速,可靠的数字数据存储。 这是一个有损数据库,这意味着指标的分辨率会随着时间的推移而降低。 它将为最新系列提供高保真度指标,并随着时间的推移逐渐降低保真度。

    石墨还使用点分隔命名,这意味着尺寸。 此维度允许对度量以及度量之间的关系进行一些创造性的汇总。 这样一来,就可以跨不同版本或数据中心聚合服务,并(具体而言)在特定Kubernetes集群的一个数据中心中运行一个版本。 还可以进行粒度比较,以确定特定集群是否表现不佳。

    Graphite的另一个有趣功能是能够存储与时间序列指标有关的任意事件。 特别是,可以在Graphite中添加和跟踪应用程序或基础架构部署。 这使操作员或开发人员对问题进行故障排除,可以更深入地了解环境中与正在调查的异常行为相关的事件。

    石墨还有大量可应用于度量标准系列的功能列表 。 但是,它缺少一些其他工具所包含的强大查询语言。 它还缺少任何警报功能或内置警报系统。

    InfluxDB

    InfluxDB是一个相对较新的参与者,比Prometheus更新。 它使用开放核模型,这意味着扩展和群集成本额外增加。 InfluxDB是较大的TICK堆栈 (Telegraf,InfluxDB,Chronograf和Kapacitor的)的一部分,因此在此分析中,我们将包括所有这些组件的功能。

    与Prometheus和Graphite相似,InfluxDB使用称为标签的键值对系统为指标添加维数。 结果类似于我们之前在其他系统上讨论的结果。 度量标准数据的类型可以是float64int64bool和具有纳秒分辨率的字符串 。 这比该领域中的大多数其他工具范围更广。 实际上,与本地时间序列指标聚合系统相比,TICK堆栈更像是事件聚合平台。

    InfluxDB使用类似于日志结构的合并树的系统进行存储。 在这种情况下,它称为时间结构合并树。 它使用预写日志和只读数据文件的集合,这些文件与“排序的字符串表”相似,但具有系列数据而不是纯日志数据。 这些文件按时间块分片。 要了解更多信息,请在InfluxData网站上查看有用的资源

    TICK堆栈的体系结构会有所不同,具体取决于它是开源版本还是商业版本。 开源InfluxDB系统是独立包含在单个主机中的,而商业版本是固有分布的。 其他中心组件也是如此。 在开源版本中,所有内容都在单个主机上运行。 外部系统上没有存储任何数据或配置,因此它相当易于管理,但不如商业版本强大。

    InfluxDB包含一种类似SQL的语言,称为InfluxQL,用于从数据库中查询数据。 查询数据的主要手段是HTTP API。 查询语言没有像Prometheus那样多的内置辅助函数,但是熟悉SQL的人可能会对这种语言更满意。

    TICK堆栈还包括一个警报系统。 该系统可以进行一些轻微的聚合,但是不具备Prometheus的AlertManager的全部功能。 但是,它确实提供了许多集成。 另外,为了减少InfluxDB的负载,可以安排连续查询来存储Kapacitor将选择用于警报的查询结果。

    OpenTSDB

    顾名思义, OpenTSDB是一个开源时间序列数据库。 在该工具集合中,它的独特之处在于将其指标存储在Hadoop中。 这意味着它具有固有的可扩展性。 如果您已经拥有Hadoop集群,那么对于要长期存储的指标而言,这可能是一个不错的选择。 如果您没有Hadoop集群,那么操作开销可能会太大而无法承受。 但是,OpenTSDB现在支持Google的Bigtable作为后端,这是您无需运行的云服务。

    OpenTSDB与其他系统共享许多功能。 它使用键值配对系统,该系统调用标签以识别指标并增加维度。 它具有查询语言,但比Prometheus的PromQL受限制。 但是,它确实具有几个内置功能,有助于学习和使用。 该API是查询的主要入口点,类似于InfluxDB。 除非在HBase中设置了生存时间,否则该系统还将永久存储所有数据,因此您不必担心保真度下降。

    OpenTSDB不提供警报功能,这将使其更难以与事件响应流程集成。 这种类型的系统对于长期Prometheus数据存储以及执行更多历史分析以揭示系统性问题可能非常有用,而不是作为快速识别和响应紧急问题的工具。

    OpenMetrics标准

    OpenMetrics是一个工作组,致力于为度量标准数据建立标准的展示格式。 它受到普罗米修斯的影响。 如果这项计划成功,我们将获得一个全行业的抽象概念,使我们可以轻松地在工具和提供者之间切换。 像Datadog这样的领先公司已经开始提供可以使用Prometheus博览会格式的工具,一旦发布,它将很容易转换为OpenMetrics标准。

    还需要注意的是,该项目的贡献者包括Google和InfluxData(以及其他)。 这可能意味着InfluxDB最终将采用OpenMetrics标准。 这也可能意味着,如果表明Google的参与程度,那么三大云提供商之一将采用它。 当然,博览会格式已经在Google创建的Kubernetes项目中使用。 SolarWindsRobust PerceptionSpaceNet也参与其中。

    接下来要读什么

    翻译自: https://opensource.com/article/18/8/open-source-monitoring-tools

    监控工具 开源

    展开全文
  • 淘宝开源监控工具

    2019-02-27 13:31:13
    tsar 是淘宝自己开发的一个监控工具,可用于收集和汇总系统信息,例如CPU,负载,IO和应用程序信息,例如nginx,HAProxy,Squid等
  • 1. 开源网络监控工具: NetXMS2. 开源网络监控工具: Pandora FMS3. 开源网络监控工具: Cacti4.... 开源网络监控工具: Observium7. 开源网络监控工具: Zabbix关于详细信息,以后在搜集 转载于:https://www.cnblogs....

    1. 开源网络监控工具: NetXMS

    2. 开源网络监控工具: Pandora FMS

    3. 开源网络监控工具: Cacti

    4. 开源网络监控工具: GroundWork Monitor Core

    5. 开源网络监控工具:Hyperic

    6. 开源网络监控工具: Observium

    7. 开源网络监控工具: Zabbix


    关于详细信息,以后在搜集

    转载于:https://www.cnblogs.com/JC-0527/p/7057710.html

    展开全文
  • 开源监控工具的对比

    2020-11-11 12:48:24
    ◎ 主机(Host):是Zabbix监控的对象抽象,每个监控对象都有一IP地址,这里的主机不仅限于物理服务器,可能是虚拟机容器或者某个网络设备。 ◎ 主机组(Host Group):是一组主机的集合,主要用于多

    本次读后感来自于《深入浅出Prometheus:原理、应用、源码与拓展详解》
    书籍链接https://item.jd.com/12573580.html

    一 Zabbix

    1.简介

    Zabbix是由Alexei Vladishev开源的分布式监控系统,支持多种采集方式和采集客户端,同时支持SNMP、IPMI、JMX、Telnet、SSH等多种协议,它将采集到的数据存放到数据库中,然后对其进行分析整理,如果符合告警规则,则触发相应的告警

    2.核心理念

    ◎ 主机(Host):是Zabbix监控的对象抽象,每个监控对象都有一个IP地址,这里的主机不仅限于物理服务器,可能是虚拟机容器或者某个网络设备。
    ◎ 主机组(Host Group):是一组主机的集合,主要用于多用户之间的资源隔离,将主机组和用户关联,这样 Zabbix 的不同用户便只对自己管理的资源可见。
    ◎ 条目(Item):是一个指标的相关监控数据,每个条目都有一个key去标识,以区分不同的指标。
    ◎ 应用(Application):是一组条目的集合,一个条目可以属于一个或多个应用。
    ◎ 模板(Template):是 Zabbix里快速配置的利器,用于快速定义被监控主机的预设条目集合,通常包含条目、触发器、视图、应用及服务发现规则,通过将主机关联模板来避免重复配置主机。
    ◎ 触发器(Trigger):是Zabbix的告警规则,用于评估某监控对象在某特定条目内接收到的数据是否匹配阈值,如果匹配,则触发器状态将从OK转变为Problem,当数据量再次回到合理范围时,触发器状态又将从 Problem 转变为OK。
    ◎ 动作(Action):是Zabbix在某个事件发生后执行的动作。事件主要指告警事件、网络发现新主机加入事件、自动注册(代理)事件和内部事件(监控项不支持);行为主要包括发送邮件通知、执行远程命令或者执行 Zabbix的附加动作。

    3.架构设计

    在这里插入图片描述
    (1)Zabbix Server
    Zabbix的核心组件,由C语言编写而成,主要负责接收Agent发送的监控信息,并进行汇总存储。Zabbix Server需要完成以下三个主要工作。
    ◎ 设备注册。有两种方式可以将监控对象注册到设备中:一种是手动配置Agent地址,但如果需要将机房中的几百台机器一次性加入,则将是很大的工作量;另一种是采用自动发现机制,可以配置整个网段,Server会检测整个网段的主机,并且可以自动配置模板、触发器等一系列相关配置。
    ◎ 数据收集。这里既包括主动采集,也包括被动接收,采集到的数据首先会被放置在内存中,然后被批量保存在数据库中。
    ◎ 定期的数据清理及告警触发。通过配置的触发器匹配采集数据,如果满足条件,则发出告警。
    (2)Zabbix Database
    用于存储所有配置信息,以及由 Zabbix 收集的监控数据。后端数据库支持MySQL、PostgreSQL、Oracle等,通常用到的是MySQL,并提供Zabbix Web页面的数据查询方式。由于采用了关系型数据库存储时序数据,所以Zabbix在监控大规模集群时常常在数据存储方面捉襟见肘。
    (3)Zabbix WebZabbix的 GUI组件,由 PHP编写而成,通常与 Server运行在同一台主机上,提供监控数据的展现和系统配置,主要配置包括监控模板、告警等。
    (4)Proxy
    可选组件,常用于分布式监控环境中,代理Server收集部分被监控端的监控数据并按照一定的频率统一发往Server端。Proxy有自己的数据库,引入Proxy主要是为了解决以下两个问题。
    ◎ Server和Agent之间网络不连通,这种情况在跨网络、跨机房的场景中经常出现。
    ◎ 在大规模部署时减轻Server的压力,毕竟在同时连接这么多Agent时,Server需要维护更多的连接。以Proxy模式进行部署时,Agent配置的上游地址是Proxy,而Proxy配置的是Server。
    (5)Agent
    部署在被监控主机上,负责收集本地数据并发往 Server 端或 Proxy 端,Agent会启动一个名为Agentd的守护进程。
    Agent 分为两种模式:主动和被动。

    • 主动是指 Agent 主动采集数据并将数据发送到Server/Proxy;
    • 被动是指Server每次都主动调用Agent获取数据。
      Agent还能执行用户的自定义脚本,从而完成一些原生 Agent不具备的功能。这里补充讲解 Zabbix 的一个工具,即 Zabbix_sender。(6)Zabbix_sender
      是一个命令行工具,可用于主动向Zabbix服务端发送监控数据,这样可避免 Agent一直等待监控任务完成。

    二 Nagios

    1.简介

    Nagios原名为NetSaint,由Ethan Galstad开发并维护。Nagios是一个老牌监控工具,由C语言编写而成,主要针对主机监控(CPU、内存、磁盘等)和网络监控(SMTP、POP3、HTTP和NNTP等),当然也支持用户自定义的监控脚本

    2.架构设计

    在这里插入图片描述
    Nagios的整体架构非常清晰,它通过Plugin采集各种监控数据,例如针对SNMP监控时,通过SNMPplugin和在监控对象上运行的snmpd通信获取网络信息;它还支持一种更加通用和安全的采集方式NRPE(Nagios Remote Plugin Executor),它首先在远端启动一个NRPE守护进程,用于在远端主机上面运行检测命令,在Nagios服务端用check nrep的plugin插件通过SSL对接到NRPE守护进程,执行相应的监控行为。相比SSH远程执行命令的方式,这种方式更加安全。当然,Nagios也支持SSH的Plugin。

    3.监控指标

    Nagios数据被保存在RDD(Round Robin Database,环形数据库)中,RDD适用于存储时序数据,支持以下4种监控数据。
    ◎ gauge:仪表盘数据。
    ◎ counter:计数器。
    ◎ absolute:不同时间段的变化率,为正数。
    ◎ driver:变化率,指当前值和前一个监控数值的比值,有正有负。

    RDD的存储原理比较简单,它把整个数据存储空间构建成圆环,指针指向最新的数据位置并且会随着数据读写移动,如果此时没有获取监控数据,RDD就会使用默认的unknown填充,保证数据对齐。每个数据库文件都以.rdd结尾,大小是固定的

    三 Open-Falcon

    1.简介

    Open-Falcon 是小米开源的企业级监控工具,由 Go 语言开发而成,包括小米、滴滴、美团等在内的互联网公司都在使用它,是一款灵活、可扩展并且高性能的监控方案

    2.架构设计

    在这里插入图片描述
    Falcon-agent:用Go语言开发的Daemon程序,运行在每台Linux服务器上,用于采集主机上的各种指标数据,主要包括CPU、内存、磁盘、文件系统、内核参数、Socket连接等,目前已经支持200多项监控指标。并且,Agent支持用户自定义的监控脚本,脚本必须返回 Agent 指定的数组格式。Agent采集的数据会通过RPC方式上报到Transfer。为了避免单个Transfer发生故障,Agent支持配置多个Transfer地址,还可以忽略多余的监控指标。Agent本身也可以成为一个 Proxy-gateway代理网关,接收第三方 HTTP请求并将其转发到Transfer中。
    Hearthbeat server:简称 HBS(心跳服务),每个 Agent 都会周期性地通过RPC 方式将自己的状态上报给 HBS,主要包括主机名、主机 IP、Agent 版本和插件版本,Agent 还会从 HBS 获取自己需要执行的采集任务和自定义插件。
    Transfer:负责接收 Agent 发送的监控数据,并对数据进行整理,在过滤后通过一致性 Hash 算法将数据发送到 Judge 或者 Graph。为了支持存储大量的历史数据,Transfer 还支持 OpenTSDB。Transfer 本身没有状态,可以随意扩展。
    Judge:告警模块,Transfer转发到Judge的数据会触发用户设定的告警规则,如果满足,则会触发邮件、微信或者回调接口。这里为了避免重复告警,引入了Redis暂存告警,从而完成告警合并和抑制。
    Graph:RRD数据上报、归档、存储的组件。Graph在收到数据以后,会以RRDtool的数据归档方式存储数据,同时提供RPC方式的监控查询接口。
    API:主要提供查询接口,不但可以从Graph里读取监控数据,还可以对接MySQL,用于保存告警、用户等信息。
    Dashboard:由 Python开发而成,提供 Open-Falcon的数据和告警展现,监控数据来自Graph,Dashboard允许用户自定义监控面板。
    Aggregator:聚合组件,聚合某集群下所有机器的某个指标的值,提供一种集群视角的监控体验。通过定时从Graph获取数据,按照集群聚合产生新的监控数据并将监控数据发送到Transfer。

    四 开源监控的比对

    下面针对 Prometheus、Zabbix、Nagios 和 Open-Falcon 这几种监控系统进行横向对比
    在这里插入图片描述

    1.从开发语言的角度

    从开发语言上看,为了应对高并发和快速迭代的需求,监控系统的开发语言已经慢慢从C转移到Go。不得不说,Go凭借简洁的语法和优雅的并发,在Java占据业务开发领域、C 占领底层开发领域的情况下,准确定位中间件开发需求,在当前的开源中间件产品中被广泛应用。

    2.从系统成熟程度的角度

    从系统成熟度方面来看,Zabbix 和 Nagios 都是老牌的监控系统:Zabbix 是在1998年出现的,Nagios 是在1999年出现的,系统功能比较稳定,成熟度较高。而Prometheus和Open-Falcon都是最近几年才诞生的,虽然功能还在不断迭代、更新,但它们站在巨人的肩膀之上,在架构设计上借鉴了很多老牌监控系统的经验。

    3.从系统扩展性的角度

    从系统扩展性方面来看,Zabbix 和 Open-Falcon 都可以自定义各种监控脚本。Zabbix不仅可以做到主动推送,还可以做到被动拉取;Prometheus则定义了一套监控数据规范,并通过各种exporter扩展系统采集能力。

    4.从数据存储的角度

    从数据存储方面来看,Zabbix采用关系数据库存储数据,这极大限制了 Zabbix的数据采集性能。Nagios和Open-Falcon都采用了RDD数据存储方式。Open-Falcon还加入了一致性 Hash 算法进行数据分片,并且可以对接到 OpenTSDB,而且Prometheus 自研的一套高性能时序数据库,在 V3版本时可以达到每秒千万级别的数据存储,可通过对接第三方时序数据库扩展对历史数据的存储性能。

    5.从社区活跃的角度

    从社区活跃度方面来看,目前 Zabbix 和 Nagios 的社区活跃度比较低,尤其是Nagios,Open-Falcon的社区虽然也比较活跃,但基本都是国内的公司在参与。Prometheus的社区活跃度很高,并且得到CNCF的支持,后期的发展值得期待。

    6.从容器的支持角度

    从容器支持方面来看,由于 Zabbix 和 Nagios 出现得比较早,当时容器还没有诞生,所以它们对容器的支持自然也比较差。Open-Falcon虽然提供了容器监控功能,但支持力度有限。Prometheus的动态发现机制,不仅支持Swarm原生集群,还支持Kubernetes 容器集群监控,是目前容器监控的最佳解决方案。Zabbix 在传统监控系统中,尤其是在服务器相关监控方面,占据绝对优势。Nagios则在网络监控方面有广泛应用。伴随着容器的发展,Prometheus 开始成为容器监控方面的标配,并将被广泛应用。

    展开全文
  • NULL 博文链接:https://ainn2006.iteye.com/blog/1330582
  • 一些好用的开源监控工具汇总

    万次阅读 2018-10-08 11:14:29
    监控系统是整个 IT 架构中的重中之重,小到故障排查、问题定位,大到业务预测、运营管理,都离不开监控系统,可以说一稳定、健康的 IT 架构中必然会有一可信赖的监控系统。 但是,难道监控就只是监控?多年来,...
  • 全方位的开源监控工具链介绍

    万次阅读 多人点赞 2019-10-18 13:33:46
    说到监控现在最火的是全链路监控(服务调用+HTTP调用+数据源访问+MQ链路的监控),但我认为这是狭义的全链路监控,广义的概念应该不仅仅指APM(Appliation Perfance Manager & Monitor),还包括Loggong(系统...
  • 开源监控工具

    2006-08-02 10:32:00
    监控容量:cacti监控事件:nagios 
  • icinga 开源监控工具 客户端插件【windows版+Linux版】
  • 服务器监控工具功能相当强大,无论何时何地,我们都可以了解到服务器的功能以及性能。服务器监控工具的使用,可以让我们清楚的知道用户可以打开我们的网站,且确保网速不慢。只有这样做,才能留住宝贵的用户,以免...
  • 系统宕机是可以绝对避免的吗?...这里就会用到监控工具。 监控系统是整个 IT 架构中的重中之重,小到故障排查、问题定位,大到业务预测、运营管理,都离不开监控系统,可以说一稳定、健康的 IT 架构中必然会...
  • 开源软件的需求持续增长,网络管理工具已经适应了这一浪潮。你不再需要为可能不是你所需的软件支付小额的费用,请留意下(大部分)免费的...这里有几个开源网络监控工具来协助IT管理员完成工作。 1. 开源网络
  • 服务器监控工具允许你收集和分析有关你的Web服务器的数据。有许多非常好的服务器监控解决方案,而为了省去你寻找方案的麻烦1. Performance Co-PilotPerformance Co-Pilot,简称PCP,是一系统性能和分析框架。它从...
  • Grafana作为一款强大的开源监控软件,可以进行灵活的报表定制与性能监控。用户可以通过时序数据库InfluxDB作为数据源为Grafana提供性能监控数据,同时使用Telegraf作为性能数据采集工具从SequoiaDB中定时采集性能...
  • 六款开源java应用性能监控工具

    万次阅读 2018-12-14 13:28:34
    如果你正在寻找性能监控工具,不妨看看以下推荐的这六款开源工具,这些工具目前已经可以替代付费工具了,你可以看看是否是你的最佳选择。本文推荐的六款开源工具目前是开源社区中最受欢迎的,在https://github.com上...
  • arthas阿里的开源jvm监控工具,可以用于JVM的调优,快速生成JVM的运行图,方便开发,具体可见阿里的git
  • 网络监控工具 开源 维持活动的网络是系统管理员最重要的任务之一,并且对连接的系统保持警惕对于保持网络的最佳状态至关重要。 有许多不同的方法可以使标签保持在现代网络上。 网络监视工具专门用于监视网络流量和...
  • 气泡图在开源监控工具中的应用 Bubble Chart(气泡图),使用气泡图便于在行、列两方向同时进行比较.气泡图也清晰地告诉哪里大、哪里小。如图1~图5为你展示几款开源监控工具在使用气泡图时的应用场景。图1 气泡图...
  • 来源:开源最前线(ID:OpenSourceTop) 猿妹编译链接:https://opensource.com/article/19/2/network-monitoring-tools...
  • 对于网络管理员而言,监控网络性能问题非常重要,网络监控工具可帮助企业跟踪并解决这些问题。但是,实施和维护网络监控解决方案可能成本昂贵。幸运的是市场上有许多免费和开源的解决方案,网络管理员需要一些时间和...
  • 对于业务来说,监控是十分必要的,因为它可以确保所需的系统已经启动并运行。监控IT基础架构的不同方面其实十分繁琐,并且如果没有处理得当会导致许多困难。无论公司规模大小,都不能忽视对服务器、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 133,307
精华内容 53,322
关键字:

7个开源监控工具