用什么监控我们的容器?

本文介绍了常用的监控工具Zabbix和Prometheus的主要特点,以及它们在集装箱监控中的应用各自的优缺点,希望能帮助学生选择适合该项目的监控工具。

[En]

This paper introduces the main features of common monitoring tools zabbix and prometheus and their respective advantages and disadvantages when applied to container monitoring, hoping to help students choose monitoring tools suitable for the project.

描述:本文中介绍的两个工具Zabbix和Prometheus是开源的,并且是免费的。

[En]

Description: the two tools introduced in this article, zabbix and prometheus, are open source and free.

Zabbix作为一种古老的监测工具,历史悠久,功能全面,功能强大。以下是它的一些主要功能:

[En]

As an old monitoring tool, zabbix has a long history, comprehensive and powerful functions. Here are some of its main features:

数据收集方式灵活全面

  • 支持可用性和性能检查
    [En]

    support for availability and performance checks*

  • 支持 SNMP(包括主动轮训和被动获取),IPMI,JMX,VMware 监控
  • 支持自定义检查
    [En]

    Custom check is supported*

  • 以自定义间隔收集所需数据
    [En]

    collect required data at custom intervals*

  • 支持 server/proxy+agents 的模式

自动发现监控对象

  • 自动发现网络设备
    [En]

    automatically discover network devices*

  • 监测代理的自动注册
    [En]

    automatic registration of monitoring agents*

  • 发现文件系统、网络接口等
    [En]

    Discover file systems, network interfaces, etc.*

高度可配置化的报警

  • 支持融合的告警政策
    [En]

    alarm policies that support convergence*

  • 可使用宏变量使警报通知更高效
    [En]

    Macro variables can be used to make alarm notifications more efficient*

  • 发出警报即可实施应对策略
    [En]

    the coping strategy can be implemented when the alarm is given.*

强大的模板功能

  • 在模板中分组签入
    [En]

    Group check in the template*

  • 模板可以关联其他模板
    [En]

    templates can be associated with other templates*

完善的权限管理系统

  • 安全用户认证
  • 特定用户可以限制对特定视图的访问
    [En]

    specific users can restrict access to specific views*

近乎无限的扩展能力

  • 支持通过脚本进行扩展
    [En]

    support for extension through script*

看一眼 zabbix 提供的菜单感受下它的丰富功能:

Prometheus 是一个开源的系统监控和警报工具包,许多公司和组织都采用了 Prometheus,该项目拥有非常活跃的开发人员和用户社区。下面是 prometheus 的一些主要特点:

  • 多维数据模型
    [En]

    Multi-dimensional data model*

  • 灵活的查询语言
    [En]

    flexible query language*

  • 无需依赖分布式存储,单个服务器节点即可实现自治
    [En]

    without relying on distributed storage, a single server node is autonomous*

  • 通过 pull 方式采集时序数据
  • 时序数据可通过中间网关推送
    [En]

    time series data can be pushed through intermediate gateways*

  • 通过服务发现或静态配置发现目标服务对象
    [En]

    discover the target service object through service discovery or static configuration*

  • 支持多种界面展示方案,如Grafana等。
    [En]

    support multiple interface display solutions, such as grafana, etc.*

事实上,业界经常将普罗米修斯用于集装箱监控解决方案,例如与K8的集成。事实上,使用cAdvisor+Prometheus+Grafana构建集装箱监控已经成为中小企业的首选解决方案。下图是Grafana显示的在单个主机上运行的容器的摘要(当然,数据源来自普罗米修斯):

[En]

In fact, the industry often uses prometheus for container monitoring solutions, such as integration with K8s. In fact, using cadvisor + prometheus + grafana to build container monitoring has become the preferred solution for small and medium-sized enterprises. The following figure is a summary of the container running on a single host shown by grafana (of course, the data source is from prometheus):

其实,prometheus 的扩展性也很好,通过扩展不同的 exporter 可以收集不同应用、设备的信息。

Zabbix 的功能非常全面,以至于仅仅用它来监控容器让我们觉着是大材小用了,同时也难免会觉着它不太专业(就监控容器来说)。
事实上 zabbix 监控容器的能力一点也不弱,特别是从版本 4.2 开始,zabbix 也支持 prometheus 做为数据源了。这样一来,zabbix 也就是在视觉展示上比 grafana 差些罢了。
当然 zabbix 还有其它一些问题,比如功能过多(优点有时候也会变成缺点),如果仅仅需要容器监控功能,会觉着 zabbix 用起来太繁琐了。
Zabbix 使用的是 mysql 数据库,对于时序型的数据,性能上肯定没法和专门的时序型数据库相比。
最后,zabbix 的安装和配置虽然不是很难,但离开箱即用还是有段距离的。

Prometheus 和 zabbix 比起来就轻多了,它就是为容器监控而生的。特别是它使用的是时序型的数据库,对于监控类的场景而言性能非常好。
Prometheus + grafana 做出来的视觉效果非常的棒:

在大多数情况下,您不需要自己设计这些图表,也不需要下载您制作的模板并直接使用它们。效果很棒!

[En]

And in most cases, you don’t need to design these charts yourself, download the templates you’ve made, and use them directly. The effect is great!

但与 zabbix 相比,grafana 的报警功能却不够灵活。
在监控信息采集方面,Zabbix支持两种Pull/Push模式,而普罗米修斯只支持Pull模式。关于拉/推模式,每个人似乎都把重点放在业绩上。对于我管理的较小的系统,基本上没有性能问题,我更关心安全性。使用Pull模式需要生产环境公开端口号,我们需要为此提供安全相关的配置,而使用PUSH模式则没有这个问题(实际上需要在监控服务器端提供安全配置)。

[En]

With regard to the collection of monitoring information, zabbix supports two modes of pull/push, while prometheus only supports pull mode. With regard to the pull/push pattern, everyone seems to focus on performance. For the smaller systems I manage, there are basically no performance problems, and I am more concerned with security. Using pull mode requires the production environment to expose the port number, and we need to provide security-related configuration for this, while using push mode does not have this problem (in fact, it is necessary to provide security configuration on the monitoring server side).

不管是 zabbix 还是 prometheus 都能够完成容器监控的任务。Zabbix 大而全,在传统的监控领域依然是主流的解决方案。而 prometheus 作为一个轻量级的后起之秀,在性能和展示方面优势比较明显,对容器监控支持的非常好。个人认为,在中小企业中搭建 zabbix 监控平台是非常必要的,它能把大大小小、各式各样的设备管理起来。而对于那些运行在云端的容器,选择 prometheus 搭建独立的监控系统会是个不错的选择。

Original: https://www.cnblogs.com/sparkdev/p/11384824.html
Author: sparkdev
Title: 用什么监控我们的容器?

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/7239/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部