Fork me on GitHub

版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | https://vearne.cc

根据我对这个领域的理解,监控系统中最重要的三个实体只有:

1) 应用
2) 主机
3) 监控项

这三个概念都是高度抽象的,首先谈谈应用,应用可以理解为某个真实的服务,也可以理解为某个抽象的服务,比如前文提到的主机的所有状态,它们的组合就可以构成一个抽象意义上的应用,至于名字,你可以随便的指定。但不论是何种应用,它以下几个特点:

1) 有一组可以采集的状态信息

2) "部署"在相应的主机上

3) 有对应的报警接收人,报警接收人也是监控领域非常重要的实体,但是它与应用是强耦合的,一种应用往往只对应到一组固定的报警接收人,也就是一一对应

监控项,表示的是我们对应用状态信息选择性的关注,也就是对应用的关注点。应用有很多的状态,但是并非每种状态都是需要我们关注的,比如,一台运行中的主机,它的uptime,可能对我们来说就不是很重要,但它确确实实是一种状态,我们对监控项需要有一种判断,以决定应用的状态,可以采用阈值判断,也可以采用某种模型来进行判断。

最后来谈谈主机,主机的概念,非常复杂,通常意义上的主机,只得是可以部署应用的真实存在的物理机或者虚拟机,然而,在实际开发中我们发现,主机可以代表很多其它东西,比如某个路由器,甚至是某个作为其它应用负载均衡的nginx。

如果nginx 做为反向代理部署在机器A上,某网站, 为了负载均衡,部署在两台机器B, C上,那么通过访问nginx可以访问到 A和B,

如果把这个网站的服务当成一个应用,那么访问机器B, 机器C, 和直接访问机器A上的nginx ,几乎可以得到同样的状态信息。

主机的概念太多抽象,它可以有IP信息,也可以没有,它甚至可以只是一个域名。

后记

这是我2014年的文章,我看到open-falcon中引入了一个新的词汇
Endpoint来描述我文中的主机,我觉得还是很贴切的, 因为Endpoint可以没有实际的物理意义

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注