Receiving Message Bus Events
PubSub+ event brokers can be configured to generate events that provide management and status information, and publish them as direct messages to well-known topics onto the event broker message bus.
The following types of event messages can be published to the message bus:
- System—events that have an event broker- or system-wide scope (that is, they are events that concern the entire event broker—they are not limited to a Message VPN or particular client). Examples of system scope events are fan alarms, hardware failure events, and so on. Refer to Publishing System Events.
- Message VPN—events pertain to a particular Message VPN. An example of a Message VPN event is a message rate event that is generated when the set message rate threshold for a given Message VPN is exceeded. (Refer to Publishing Message VPN Events.)
- Client—events that pertain to client connections to particular Message VPN. These could be events such as client connects and disconnects. Client event messages are only sent out on the Message VPN in which the event occurred. (Refer to Publishing Client Events.)
- Subscription—events that pertain to client topic subscriptions added to or removed from the Message VPN. Subscribe and unsubscribe event messages are only sent out on the Message VPN in which the event occurred. (Refer to Publishing Subscription Events.)
Management applications using the PubSub+ Messaging APIs can receive these event messages by subscribing to specific topics that the events are published to (these topics are listed in the Summary of Standard Event Message Topics and Text table).
For a detailed listing of the possible events and descriptions of each event, refer to Syslog Event Reference.
Configuring Event Broker Event Publishing
To be able to receive event messages published over the event broker message bus, the publishing of events over the event broker message bus must be enabled. Additional event configuration changes for the publishing of event messages can also be made.
Publishing System Events
By default, the publishing of system event messages over the event broker message bus is not enabled.
To enable an event broker to publish system event messages, a Message VPN that currently has an enabled state must be configured as the Management Message VPN. (Only one Message VPN can be configured as the Management Message VPN.) Once a Management Message VPN is configured, system event messages will then always be published to that Management Message VPN. (If no Management Message VPN is configured, then system event messages are not published for the event broker.)
Once a Management Message VPN is configured, the publishing of system-level event messages must be enabled.
- To set a Message VPN as the Management VPN, enter the following CONFIG command:
solace# configure
solace(configure)# management-message-vpn <vpn-name>Where:
<vpn-name>
is the name of the Message VPN to be designated as the Management Message VPN.The no version of the command (no management-message-vpn) removes the Management Message VPN designation from the Message VPN.
- To turn on the publishing of system event messages, use the following Logging Event CONFIG command:
solace(configure)# logging event
solace(configure/logging/event)# publish-systemThe no version of the command (no publish system) turns off the publishing of system event messages.
- To view the current status of the system scope configuration, enter the following User EXEC command.
Example:
solace(configure/logging/event)# show logging event
System-tag:
Publish System Event Messages: Disabled
Publishing Message VPN-Level Events
By default, the publishing of Message VPN, client, and subscription event messages over the event broker message bus is not enabled, and must be enabled for each type you want to enable on a Message VPN by Message VPN basis.
If the publishing of Message VPN, client, and/or subscription event messages over the event broker message bus is not enabled, the events are still written to syslog.
The event messages for these event types can be published to the message bus in the Message VPN in which the event occurred.
- Publishing Message VPN Events
- Setting a Topic Format for Published Events
- Publishing Client Events
- Publishing Subscription Events
Publishing Message VPN Events
To turn on Message VPN event publishing for a Message VPN, enter the following CONFIG commands:
solace(configure)# message-vpn <vpn-name>
solace(configure/message-vpn)# event
solace(configure/message-vpn/event)# publish-message-vpn
The no version of the command (no publish-message-vpn) turns off the publishing of Message VPN event messages for the given Message VPN.
Setting a Topic Format for Published Events
By default, all event logs for an event broker are published to a topic that is prefixed by #LOG/
.
However, in Message Queuing Telemetry Transport (MQTT) topic syntax, the “#” character is reserved as a “zero or more levels” wildcard. Therefore, for an application to receive published event logs using an MQTT session subscription, you must configure the event broker to publish event logs to a topic that is compatible with MQTT subscriptions.
To set the topic format for published events for a Message VPN, enter the following CONFIG command:
solace(configure/message-vpn/event)# publish-topic-format [smf] [mqtt]
Where:
smf
specifies that events should be published using SMF topic syntax, with the format #LOG/<log-level>/<event-specific-content>
. This is the default topic format used for published event logs.
mqtt
specifies that events should be published using MQTT topic syntax, with the format $SYS/LOG/<log-level>/<event-specific-content>
.
- At least one option must be specified. If both formats are specified, event logs will be published using each of the specified topic formats.
- For consumers to receive events from a queue, the queue must subscribe to the events in SMF format and the events must be published using SMF topic syntax.
- The no version of this command (no publish-topic-format) resets the parameter to its default value of
smf
only.
Publishing Client Events
To turn on client event publishing for a Message VPN, enter the following CONFIG commands:
solace(configure)# message-vpn <vpn-name>
solace(configure/message-vpn)# event
solace(configure/message-vpn/event)# publish-client
The no version of the command (no publish-client) turns off the publishing of client scope events for the given Message VPN.
Publishing Subscription Events
To turn on subscription add/delete event message publishing for a Message VPN, enter the following CONFIG commands:
solace(configure)# message-vpn <vpn-name>
solace(configure/message-vpn)# event
solace(configure/message-vpn/event)# publish-subscription [no-unsubscribe-events-on-disconnect] [event-topic-format {v1 | v2}]
Where:
no-unsubscribe-events-on-disconnect
configures the publishing of subscription events to disregard unsubscribe events for each of a client’s subscriptions when the client disconnects.
event-topic-format v1
sets the topic structure of subscription events to the form #LOG/INFO/SUB_ADD|SUB_DEL/<subscribedTopic>
event-topic-format v2
sets the topic structure of subscription events to the form #LOG/INFO/SUB/<routerName>/ADD|DEL/<vpnName>/<clientName>/<subscribedTopic>
- The no version of the command (no publish-subscription) turns off the publishing of subscription add/delete event messages for the given Message VPN.
- Enabling the publishing of subscription-level events to the message bus in a Message VPN may affect subscription performance on the event broker.
- Subscription event topics should not exceed the maximum topic string length. Topics strings that exceed the maximum length will be truncated. For more information on topic structure, refer to Topic Support & Syntax.
Viewing VPN Event Publishing Configuration
The current event publishing configuration and status for a Message VPN can be viewed through the show message-vpn User EXEC command.
solace> show message-vpn default
Message VPN: default
>Configuration Status: Enabled
Local Status: Up
Distributed Cache Management: Enabled
Total Local Unique Subscriptions: 0
Total Remote Unique Subscriptions: 0
Total Unique Subscriptions: 0
Maximum Subscriptions: 5000000
Export Subscriptions: Yes (100% complete)
Active Incoming Connections: 30
Service SMF: 30
Service Web-Transport: 0
Service REST: 0
Active Outgoing Connections:
Service REST: 0
Max Incoming Connections: 9000
Service SMF: 9000
Service Web-Transport: 200000
Service REST: 9000
Max Outgoing Connections:
Service REST: 6000
Basic Authentication: Enabled
Auth Type: no authentication
Auth Profile:
Radius Domain:
Client Certificate Authentication: Disabled
Maximum Chain Depth: 3
Validate Certificate Dates: Enabled
Allow API Provided Username: Disabled
Kerberos Authentication: Disabled
Allow API Provided Username: Disabled
SEMP over Message Bus: Enabled
Admin commands: Disabled
Client commands: Disabled
Distributed Cache commands: Disabled
Show commands: Disabled
Legacy Show Clear commands: Enabled
Large Message Threshold: 1024 (KB)
Event Log Tag
Publish Client Event Messages: Disabled
Publish Message VPN Event Messages: Disabled
Publish Subscription Event Messages: Disabled
No unsubscribes on disconnect: Disabled
Event topic format: N/A
Event Threshold Set Value Clear Value
---------------------------------- ---------------- ----------------
Incoming Connections 80%(7200) 60%(5400)
Service SMF 80%(7200) 60%(5400)
Service Web-Transport 80%(160000) 60%(120000)
Service REST 80%(7200) 60%(5400)
Ingress Message Rate (msg/sec) 4000000 3000000
Egress Message Rate (msg/sec) 4000000 3000000
Subscriptions (#subs) 80%(4000000) 60%(3000000)