【监控系统之Sensu 】

时间:2024-03-19 10:36:48

Sensu 是由 Sonian 公司使用Ruby开发的一种监控框架,主要用于拥有大规模节点的云计算平台的检查与监控。目前发行的版本有企业版和开源版两种,收费的企业版本较之免费的开源版本拥有更多的功能。

 

A simple, malleable, and scalable framework for composing the monitoring system you need.

 

Sensu 是开源的监控框架。主要特性:

1)高度可组合;提供一个监控代理,一个事件处理器和文档 APIs 

2)为云而设计;Sensu 的现代化架构允许监控大规模的动态基础设施,能够通过复杂的公共网络监控几千个全球分布式的机器和服务 

3)热情的社区;


【监控系统之Sensu 】
 

 

Why Sensu?

Sensu is the monitoring platform for your entire business. By focusing on composability and extensibility, Sensu is the cohesive monitoring platform that you are looking for. On average, approximately 70% of all Sensu users report that they are able to standardize on Sensu — replacing at least 3 or more legacy monitoring systems within the first 30-days of installing Sensu, while also improving monitoring coverage by over 25%! You can too.

 

A single monitoring platform for your entire business

1)Servers (bare metal, VMware, AWS, etc)

2)Containers (Docker, RKT, LXC, etc)

3)Services (databases, webservers, etc)

4)Applications (web apps, microservices, etc)

5)Network devices (routers, switches, SANs)

6)Remote resources (third-party APIs, etc)

 

 

 

Sensu 主要包含以下功能与特性:

1)检查系统、服务和程序的运行状态。

2)基于分布式的设计,能够轻松的动态伸缩规模。

3)支持通过插件的形式自定义检查的内容,拥有丰富的插件库。

4)收集信息,获取被监控节点上的各项数据指标等。

5)可视化的操作界面,提供实时的 GUI 用于显示和操作相关信息。

6)内置的集成工具,可用于和其它系统集成,如 PagerDuty、Graphite、Email 等。

7)提供丰富的 API 接口,支持通过 API 调用访问事件和客户端信息,触发检测等。

8)加密的安全通信,支持各种复杂的网络拓扑

 

Sensu 的组成

Sensu 由服务器、客户端、RabbitMQ、Redis 和 API 这五个部分构成。图 1 展示了这些组件之间的关系以及通信的数据流。如图所示,RabbitMQ 用于组件之间的通信,Redis 用于持久化 Sensu 服务器和 Sensu API 的数据。因为客户端都是通过文件进行配置,并且不需要在服务器端配置客户端的信息,所以可以很轻易的增加和减少客户端的数量。由于 Sensu 的服务器和 API 原生支持多节点部署,所以不存在效率的瓶颈问题。从图中可以看到,为了解耦服务器和客户端,通信都是通过 RabbitMQ 进行的,如果只有单节点的 RabbitMQ,这可能会带来通信上的瓶颈问题。可以通过 RabbitMQ 官方提供的集群部署解决方案来解决这个问题。

 

 

Sensu 的设计中涵盖了一些自定义的概念,比如 Check、Event、Handler、Filter、Mutators