OpenStack-Ansible 部署监控

日期:

2017-02-21 00:00

标签:

监控,运维

Launchpad 蓝图

本规范描述的努力目标是为 OpenStack 云提供一种易于使用的监控方法。 最初将包括基本的服务状态监控,并随着其成熟而增加额外的功能。

问题描述

OpenStack 云是硬件、软件和网络的复杂系统。 部署者需要监控所有这些组件的健康状况,以确保最终用户可以访问资源。 OpenStack-Ansible 目前不提供任何监控组件,这迫使部署者构建他们自己的监控插件和工具堆栈。

部署者和运维人员需要知道

  • 我的 OpenStack 服务是否已启动或停止?

  • 我的附加服务(Galera、RabbitMQ 等)是否已启动或停止?

  • Galera 和 RabbitMQ 的集群分区状态如何?

  • 我的 API 是否在合理的时间内响应?

  • 我的管理网络和租户网络是否可访问?

  • 我的云下方的硬件是否正常运行?

提议的变更

拟议的更改分为两个主要部分

监控插件

这是规范的主要工作内容。

部署者需要一套可靠的监控插件,这些插件可以从各种服务或实体收集信息,并且这些插件应该以最流行的监控工具堆栈的通用格式输出数据。

监控工具堆栈

这是规范的次要工作内容。

有许多开源和商业可用的 Linux 监控工具堆栈。 如果部署者还没有自己的工具堆栈,他们应该可以选择通过 Ansible 部署一个经过意见确认的工具堆栈。 该工具堆栈应该提供其时间序列数据以供搜索,并且还应该具有一个告警机制,可以连接到部署者现有的通知工具。

备选方案

OpenStack 中有松散的监控插件集合可用,但这些插件并未得到积极维护。 今天可用的许多其他插件集仅以特定格式输出其数据。 部署者可以选择使用这些插件。

部署者也可以根据需要部署他们自己的监控工具堆栈。 他们可以使用本规范中创建的监控插件与他们现有的工具。

Playbook/Role 影响

监控插件应该可以通过 pip 安装,并且可以添加到现有的角色或 playbook 中(也许是 openstack-ansible-openstack_hosts 角色)。 插件本身应该独立于 OpenStack 版本发布。

监控工具堆栈将在一个新的角色中实现,并带有额外的 playbook。 部署此堆栈的角色将与 OpenStack-Ansible 版本一起版本化,以便它可以利用每个版本现有的变量和模块。

升级影响

这将是 OpenStack-Ansible 中监控插件和工具的首次实现,因此目前没有升级问题。 但是,插件和工具堆栈安装应该编写成可靠的升级方式。

安全影响

一些监控插件需要一定程度的 OpenStack 服务或其他在云中运行的服务的特权访问权限。 这需要创建帐户并存储新的密钥。 可以使用权限较少的帐户,以便监控插件的泄露将具有有限的安全影响。

监控工具堆栈本身具有重要的安全问题需要解决。 运行在每个主机或容器上的监控插件的数据必须能够到达集中式数据库进行存储和处理。 对任何 Web 前端或数据库的访问都应小心处理,就像我们现在处理 Horizon 或 Galera 一样。

性能影响

一些监控插件需要向 OpenStack API 发出请求或访问某些其他服务。 这些插件必须编写得小心,以避免对系统产生负面性能影响。

最终用户影响

最终用户不应该注意到这项工作带来的变化。

但是,如果环境得到密切监控并且运维团队可以访问有价值的性能数据,他们应该获得更好的用户体验。

部署者影响

监控插件应作为 pip 包分发,这应该对部署者产生很小的影响。 一些插件需要系统上的帐户,因此部署者需要为这些帐户创建额外的密钥。

部署者可以选择部署监控工具堆栈,如果他们没有自己的工具堆栈。

开发人员影响

这些更改对开发人员的影响非常小。 监控插件应该易于使用且经过充分测试。 开发人员应该能够轻松修改现有插件并创建新插件。

依赖项

没有依赖关系。

实现

负责人

主要负责人

Major Hayden (mhayden)

其他贡献者

Kevin Carter (cloudnull) Antony Messerli (antonym)

工作项

  1. 编写一个可以扩展用于新监控插件的小类。

  2. 开始编写可以通过 setuptools 入口点执行的监控插件。

  3. 确保为每个插件以及基本类提供测试。

  4. 创建一个角色来部署使用这些插件的监控工具堆栈。

  5. 记录插件和工具堆栈。

测试

监控插件应使用 tox 在每次提交时进行测试。

监控工具堆栈角色应独立测试(如其他 IRR 仓库),并添加到集成构建中作为可选组件。

文档影响

插件应该记录,并且应该有开发人员指南解释如何修改现有插件或添加新插件。 监控工具堆栈角色需要文档,解释新的变量和可用功能。

参考资料

来自亚特兰大 OpenStack PTG 的笔记(2017 年 2 月)