Monasca 高可用性 & Monasca-Agent 角色

日期:

2015-10-07 17:00

标签:

Ansible, Monasca, Monasca-agent, 高可用性, 集群

目前,Openstack-Ansible 的 Monasca 角色并未配置任何服务的 HA。Monasca-agent 的安装到主机和容器中也未被处理。

https://blueprints.launchpad.net/openstack-ansible/+spec/monasca-ha

https://blueprints.launchpad.net/openstack-ansible/+spec/monasca-agent

问题描述

大多数现代监控系统都具有集群其数据库以提高弹性的能力,并以高可用性方式呈现用户界面。当前定义的 Monasca 角色仅启动配置为单主机的服务。如果您想将 monasca-api 置于 VIP 之后,您将拥有三个不同的 api,信息各不相同。

目前没有定义 monasca-agent Openstack-Ansible 角色。要在 Openstack-Ansible 安装中获取 monasca-agent,您必须手动安装它,或者使用 ansible-monasca-agent playbook 在事后将其安装到主机和容器中。

提议的变更

显著变更
  • Monasca-api & 相关服务

  • 以下服务必须置于 VIP 下

  • Monasca-api

  • Influxdb

  • MySQL

  • 以下服务必须配置集群

  • MySQL

  • Influxdb

  • Storm Nimbus & Supervisor

  • Storm Nimbus & Supervisor

  • Zookeeper

  • Grafana & Monasca-ui

    • 未集群化,但为了使 Grafana 上的 HA 正常工作,会话共享和配置数据库连接必须设置为 Openstack-Ansible Galera 集群。

  • 将 python-monascaclient 添加到实用容器中

  • Monasca-agent

  • 必须开发 os_monasca-agent 角色,以便在预安装期间将代理安装到所有主机上

  • 必须改进 monasca-agent,以正确识别所有服务

备选方案

唯一的替代方案是,如果您计划使用 Openstack-Ansible,则使用另一个监控系统,或者接受您的监控数据最终崩溃的命运。

Playbook/Role 影响

如果用户未包含 os_monasca 角色,则不会产生任何影响,除了将 python-monascaclient 包含到实用容器中。如果包含,用户可能需要添加一些配置选项,例如 VIP 范围、复制因子,这些与监控和数据弹性相关的选项。

升级影响

Monasca & 相关服务独立于 Openstack-Ansible 工作,因此预计对 openstack 升级过程没有影响。

如果在升级期间破坏了容器,则必须重新安装 monasca-agent。如果未破坏,则必须运行 monasca-reconfigure 脚本以发现主机/容器的更改。

安全影响

  • 此更改是否涉及敏感数据,例如令牌、密钥或用户数据?

    • 该 playbook 需要的唯一敏感项目是注册 monasca 用户 & 端点的管理员密码。

  • 此更改是否会改变已部署的 OpenStack API,从而可能影响安全性,例如访问敏感信息的新方式或新的登录方式?

    • Monasca 使用它自己的 API,并且仅从 keystone API 消费。

  • 此更改是否涉及密码学或哈希?

  • 此更改是否需要使用 sudo 或任何特权?

    • 是的,但仅在安装 & 配置服务的专用 Monasca 主机上。Monasca-agent 安装不需要权限提升。

  • 此更改是否涉及使用或解析用户提供的数据?这可能是直接在 API 级别,或间接例如更改缓存层。

    • 用户将仅提供 Monasca 特定的变量。

性能影响

Monasca 在其自己的专用主机上运行。

Monasca-agent 对主机 & 容器的影响很小。

最终用户影响

添加监控作为一项服务。没有更改现有的用户暴露的服务。

部署者影响

  • 正在添加哪些配置选项?它们是否应该比建议的更通用?默认值是否适用于实际部署?

  • 仅添加与 Monasca 相关的配置选项。

  • 此更改是否在合并后立即生效,还是需要显式启用?

  • 必须显式启用 Monasca。

  • 如果此更改是新的二进制文件,将如何部署它?

  • N/A

  • 请说明那些进行持续部署或那些从先前版本升级的人需要注意的任何事项。此外,描述弃用配置值或功能的任何计划。例如,如果更改了 play 的名称,我们如何处理更改落地之前的部署?代码中是否有特殊情况?我们是否假设操作员将在云的基础设施内重新创建容器?这是否会影响云内的运行实例?

  • 不影响没有 Monasca 的当前 Openstack 安装。

  • 如果需要,将提供 Monasca 特定的升级说明。

开发人员影响

不会影响不使用 Monasca 的开发人员。

依赖项

没有蓝图依赖项。

实现

负责人

主要负责人

rmelero

工作项

与建议的更改相同。

测试

os_monasca 角色已经有测试。我将查看类似的 roles 并确定为测试 Monasca 的 HA 方面应实施的最佳测试。

文档影响

Openstack-Ansible 文档不会受到影响。

将编写新的 os_monasca 文档。

参考资料

https://github.com/b-com/ansible-monasca