启用可用性监控部署¶
https://blueprints.launchpad.net/tripleo/+spec/tripleo-opstools-availability-monitoring
TripleO 应该部署开箱即用的可用性监控解决方案来服务于超云。
问题描述¶
目前没有实现这样的功能,除了在底层云堆栈中部署 sensu-server、sensu-api 和 uchiwa(Sensu 控制面板)服务之外。由于在超云节点上没有部署 sensu-client 服务,这段代码是无用的。考虑到潜在的高资源消耗,也应该合理地移除当前的底层云代码,以避免在部署大量超云节点时可能出现的问题。
相反,sensu-server、sensu-api 和 uchiwa 应该部署在独立的节点上,无论是在底层云级别还是在超云级别。因此,sensu-client 部署支持应该足够灵活,以启用连接到外部监控基础设施,或者与部署在专用超云节点上的 Sensu 堆栈连接。
用例摘要
1. sensu-server、sensu-api 和 uchiwa 部署在外部基础设施中;sensu-client 部署在每个超云节点上 2. sensu-server、sensu-api 和 uchiwa 作为单独的 Heat 堆栈部署在超云堆栈中;sensu-client 部署在每个超云节点上
提议的变更¶
概述¶
当通过环境文件显式声明时,sensu-client 服务将作为可组合服务部署在超云堆栈上。Sensu 检查必须配置为订阅检查(有关详细信息,请参阅 [0])。每个可组合服务将拥有自己的订阅字符串,这将确保在 Sensu 服务器节点(无论其位于何处)上定义的检查在正确的超云节点上运行。
将实现一种可能性,即在底层云部署的独立节点上部署 sensu-server、sensu-api 和 uchiwa 服务。该独立节点将具有专门用于监控的目的(不仅用于可用性监控服务,而且将来也用于集中式日志记录服务或性能监控服务)。
监控节点将作为单独的 Heat 堆栈部署到超云堆栈,使用 Puppet 和所需的服务的可组合角色。
替代方案¶
无
安全影响¶
额外的服务(sensu-client)将安装在所有超云节点上。这些服务将具有与在监控节点上运行的 RabbitMQ 实例的开放连接,并用于在超云节点上执行命令(检查)。检查定义将驻留在监控节点上。
其他最终用户影响¶
无
性能影响¶
如果我们想避免影响超云中的 OpenStack 部署,我们可以考虑部署单独的 RabbitMQ 和 Redis 用于监控目的。
其他部署者影响¶
Sensu 客户端默认将在所有超云节点上部署,除了监控节点。
新的 Sensu 常用参数
MonitoringRabbitHost
Sensu 需要连接的 RabbitMQ 主机
MonitoringRabbitPort
Sensu 需要连接的 RabbitMQ 端口
MonitoringRabbitUseSSL
Sensu 是否应该使用 SSL 连接到 RabbitMQ
MonitoringRabbitPassword
Sensu 用于连接的 RabbitMQ 密码
MonitoringRabbitUserName
Sensu 用于连接的 RabbitMQ 用户名
MonitoringRabbitVhost
用于监控目的的 RabbitMQ vhost。
新的 Sensu 服务器/API 参数
MonitoringRedisHost
Sensu 需要连接的 Redis 主机
MonitoringRedisPassword
Sensu 用于连接的 Redis 密码
MonitoringChecks
Sensu 执行的检查的完整定义(对于所有订阅)
每个可组合服务的订阅字符串的新参数
例如,对于服务 nova-compute,MonitoringSubscriptionNovaCompute,它将默认设置为 ‘overcloud-nova-compute’
开发人员影响¶
应该为 tripleo-quickstart 实现对新节点类型支持。
实现¶
负责人¶
Martin Mágr <mmagr@redhat.com>
工作项¶
用于 Sensu 服务的 puppet-tripleo profile
用于 Uchiwa 服务的 puppet-tripleo profile
用于 sensu-client 部署的 tripleo-heat-templates 可组合服务
用于 sensu-server 部署的 tripleo-heat-templates 可组合服务
用于 sensu-api 部署的 tripleo-heat-templates 可组合服务
用于 uchiwa 部署的 tripleo-heat-templates 可组合服务
tripleo-quickstart 中对监控节点的支持
撤销实现 Sensu 支持的 instack-undercloud 的补丁
依赖项¶
用于 Sensu 服务的 Puppet 模块:sensu-puppet [1]
用于 Uchiwa 的 Puppet 模块:puppet-uchiwa [2]
CentOS Opstools SIG 仓库 [3]
测试¶
一旦补丁合并,当前的 TripleO CI 将通过默认方式部署 sensu-client 来测试 sensu-client 的部署。
我们应该考虑创建一个 CI 作业来部署带有监控节点的超云,以测试其余的监控组件。
文档影响¶
创建新节点类型和新选项的过程需要记录。
参考资料¶
[0] https://sensuapp.org/docs/latest/reference/checks.html#subscription-checks [1] https://github.com/sensu/sensu-puppet [2] https://github.com/Yelp/puppet-uchiwa [3] https://wiki.centos.org/SpecialInterestGroup/OpsTools