Octavia 事件通知

Octavia 使用 oslo messaging 通知系统来发送某些事件的通知,例如在负载均衡器创建操作完成后发送“octavia.loadbalancer.create.end”。

配置 oslo messaging 以进行事件通知

默认情况下,oslo_messaging 中的通知驱动程序设置为一个空字符串;因此,必须配置此选项才能发送通知。有效选项在 oslo.messaging 文档 中定义。以下提供的示例是 messagingv2 驱动程序生成的格式。

您可以指定一个自定义的主题列表,用于发送通知。为每个通知级别创建一个主题,并在为此列表中指定的值后附加一个点和级别,例如:notifications.info、octavia-notifications.info 等。

Oslo messaging 支持 RPC 和通知的单独后端。如果与 [DEFAULT] transport_url 配置不同,则必须在 octavia.conf 配置文件的 [oslo_messaging_notifications] 部分中指定 transport_url

[oslo_messaging_notifications]
driver = messagingv2
topics = octavia-notifications,notifications
transport_url = transport://user:pass@host1:port/virtual_host

事件类型

Octavia 中支持的事件类型是

'octavia.loadbalancer.update.end'

'octavia.loadbalancer.create.end'

'octavia.loadbalancer.delete.end'

示例通知

Octavia 负载均衡器事件的 oslo.message 通知有效负载是 json 格式的完整负载均衡器字典。Octavia 中负载均衡器事件的 oslo.message 通知的完整内容遵循以下示例的格式

{
  "message_id": "d84a3800-06ca-410e-a1a3-b40a02306a97",
  "publisher_id": null,
  "event_type": "octavia.loadbalancer.create.end",
  "priority": "INFO",
  "payload": {
    "enabled": true,
    "availability_zone": null,
    "created_at": "2022-04-22T23:02:14.000000",
    "description": "",
    "flavor_id": null,
    "id": "8d4c8f66-7ac1-408e-82d5-59f6fcdea9ee",
    "listeners": [],
    "name": "my-octavia-loadbalancer",
    "operating_status": "OFFLINE",
    "pools": [],
    "project_id": "qs59p6z696cp9cho8ze96edddvpfyvgz",
    "provider": "amphora",
    "provisioning_status": "PENDING_CREATE",
    "tags": [],
    "updated_at": null,
    "vip": {
      "ip_address": "192.168.100.2",
      "network_id": "849b08a9-4397-4d6e-929d-90efc055ab8e",
      "port_id": "303870a4-bbc3-428c-98dd-492f423869d9",
      "qos_policy_id": null,
      "subnet_id": "d59311ee-ed3a-42c0-ac97-cebf7945facc"
    }
  },
  "timestamp": "2022-04-22 23:02:15.717375",
  "_unique_id": "71f03f00c96342328f09dbd92fe0d398",
  "_context_user": null,
  "_context_tenant": "qs59p6z696cp9cho8ze96edddvpfyvgz",
  "_context_system_scope": null,
  "_context_project": "qs59p6z696cp9cho8ze96edddvpfyvgz",
  "_context_domain": null,
  "_context_user_domain": null,
  "_context_project_domain": null,
  "_context_is_admin": false,
  "_context_read_only": false,
  "_context_show_deleted": false,
  "_context_auth_token": null,
  "_context_request_id": "req-072bab53-1b9b-46fa-92b0-7f04305c31bf",
  "_context_global_request_id": null,
  "_context_resource_uuid": null,
  "_context_roles": [],
  "_context_user_identity": "- qs59p6z696cp9cho8ze96edddvpfyvgz - - -",
  "_context_is_admin_project": true
}

禁用事件通知

默认情况下,事件通知已启用(有关其他要求,请参见上面的配置 oslo messaging 部分)。要禁用此功能,请在 Octavia 配置文件中使用以下设置

[controller_worker]
event_notifications = False