OpenStack群集事件通知
到目前为止,根据我对OpenStack Python SDK的理解,我能够阅读虚拟机监控程序、服务器实例,但是,我没有看到一个API来接收和处理集群上发生的操作的更改通知/事件,例如添加新VM、删除现有VM等 有一个类似的老帖子(大约2016年),我很好奇在通知处理方面是否有任何变化? 我看到了一个文档,其中谈到通过消息总线发出通知,指示服务中发生的不同事件 我有以下问题:OpenStack群集事件通知,openstack,openstack-horizon,openstacksdk,Openstack,Openstack Horizon,Openstacksdk,到目前为止,根据我对OpenStack Python SDK的理解,我能够阅读虚拟机监控程序、服务器实例,但是,我没有看到一个API来接收和处理集群上发生的操作的更改通知/事件,例如添加新VM、删除现有VM等 有一个类似的老帖子(大约2016年),我很好奇在通知处理方面是否有任何变化? 我看到了一个文档,其中谈到通过消息总线发出通知,指示服务中发生的不同事件 我有以下问题: Does Openstack Python SDK support notification APIs? How do
Does Openstack Python SDK support notification APIs?
How do I receive/monitor notifications for VM related changes?
How do I receive/monitor notifications for compute/hypervisor related changes?
How do I receive/monitor notifications for Virtual Switch related changes?
我看到了其他帖子,比如,他们建议使用云高计项目,该项目使用数据库。有没有比使用完全不同的服务(如云高计)更轻的解决方案
提前感谢您在这方面的帮助。据我所知,Openstack SDK不提供这样的功能 云高计也帮不了你。它仅通过轮询和RPC上的通知收集数据。您仍然需要自己从云高计中查询数据。除此之外,云高计本身就存在一个问题,即它只会增长并会破坏您的数据库,这就是为什么在使用云高计时,您还应该使用gnocchi的原因 目前,我只看到3种可能的解决方案:
oslo\u消息通知
-部分:(中子也有这样一个选项),并像云高计一样使用messagingv2
。但请注意,并非每个事件都会创建通知。云高计数据列表应提供创建通知的事件以及只能通过轮询收集的内容的良好概述:。通知事件的数量非常少,因此它可能无法提供您想要的所有事件
log
asdriver
的oslo\u messaging\u notifications
部分中使用,将通知写入日志文件,并编写一个简单的程序来读取日志文件并处理或转发读取的内容。与第2个问题相同,并非每个事件都会创建通知(本例中为日志条目)。这也有一个问题,即通知和事件日志都是在计算节点上创建的(据我所知),因此您必须通过工具监视所有计算节点
这是创建一个工具的最简单的方法,该工具定期通过REST-API运行GET请求,并将结果作为您自己的自定义通知转发到所需的目标。我遵循以下参考来实现此功能。此外,还与该代码和视频的作者聊天
https://github.com/gibizer/nova-notification-demo/blob/master/ws_forwarder.py
https://www.youtube.com/watch?v=WFq5JWXa9AM
此外,我还面临其他问题:
- 默认情况下,由于IPTABLE规则,OpenStack服务器不允许您从远程主机连接到RabbitMQ总线。您必须在IP表中启用对RabbitMQ端口的访问
驱动程序
nova.conf即可。当您想使用不同的RabbitMQ集群进行通知时,只需使用传输url
。通常情况下,您看起来像是“仅”必须连接到rabbitmq群集才能接收通知并侦听正确的rabbitmq队列。此处ceilometer在此循环中注册其所有通知此处:这可能对您有所帮助。