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