这个开源解决方案可以简单而有效地监控你的云基础设施。
Sensu 是一个开源的基础设施和应用程序监控解决方案,它可以监控服务器、相关服务和应用程序健康状况,并通过第三方集成发送警报和通知。Sensu 用 Ruby 编写,可以使用 RabbitMQ 或 Redis 来处理消息,它使用 Redis 来存储数据。
如果你想以一种简单而有效的方式监控云基础设施,Sensu 是一个不错的选择。它可以与你的组织已经使用的许多现代 DevOps 组件集成,比如 Slack、HipChat 或 IRC,它甚至可以用 PagerDuty 发送移动或寻呼机的警报。
Sensu 的模块化架构意味着每个组件都可以安装在同一台服务器上或者在完全独立的机器上。
结构
Sensu 的主要通信机制是 Transport。每个 Sensu 组件必须连接到 Transport 才能相互发送消息。Transport 可以使用 RabbitMQ(在生产环境中推荐使用)或 Redis。
Sensu 服务器处理事件数据并采取行动。它注册客户端并使用过滤器、增变器和处理程序检查结果和监视事件。服务器向客户端发布检查说明,Sensu API 提供 RESTful API,提供对监控数据和核心功能的访问。
Sensu 客户端执行 Sensu 服务器安排的检查或本地检查定义。Sensu 使用数据存储(Redis)来保存所有的持久数据。最后,Uchiwa 是与 Sensu API 进行通信的 Web 界面。
安装 Sensu
条件
- 一个 Linux 系统作为服务器节点(本文使用了 CentOS 7)
- 要监控的一台或多台 Linux 机器(客户机)
服务器侧
Sensu 需要安装 Redis。要安装 Redis,启用 EPEL 仓库:
$ sudo yum install epel-release -y
然后安装 Redis:
$ sudo yum install redis -y
修改 /etc/redis.conf
来禁用保护模式,监听每个地址并设置密码:
$ sudo sed -i 's/^protected-mode yes/protected-mode no/g' /etc/redis.conf
$ sudo sed -i 's/^bind 127.0.0.1/bind 0.0.0.0/g' /etc/redis.conf
$ sudo sed -i 's/^# requirepass foobared/requirepass password123/g' /etc/redis.conf
启用并启动 Redis 服务:
$ sudo systemctl enable redis
$ sudo systemctl start redis
Redis 现在已经安装并准备好被 Sensu 使用。
现在让我们来安装 Sensu。
首先,配置 Sensu 仓库并安装软件包:
$ sudo tee /etc/yum.repos.d/sensu.repo