RMQTT периодически публикует своё собственное рабочее состояние, статистику сообщений и события онлайн/офлайн клиентов в темах системы, начинающихся с $SYS/.
Путь темы $SYS начинается с $SYS/brokers/{node}/. {node} относится к имени узла, на котором произошло событие/сообщение, например:
$SYS/brokers/1/stats
$SYS/brokers/1/metrics
rmqtt-sys-topic
plugins/rmqtt-sys-topic.toml
#$SYS публикация системного сообщения QoS
publish_qos = 1
#$SYS период публикации системных сообщений
publish_interval = "1m"
##Поддержка сохранения сообщения, true/false, значение по умолчанию: false
message_retain_available = false
##Время истечения срока действия сообщения, 0 означает отсутствие истечения
message_expiry_interval = "5m"
По умолчанию RMQTT разрешает только MQTT-клиентам с локального компьютера подписываться на темы $SYS. Обратитесь к разделу Встроенные ACL для изменения правил подписки-публикации. В RMQTT большую часть данных в темах $SYS можно получить с помощью других менее тесно связанных методов. Статус устройства онлайн/офлайн можно получить с использованием Webhooks, а статус узла и кластера — через HTTP API — статистические метрики.
Тема | Объяснение |
---|---|
$SYS/brokers/{node}/clients/{clientid}/connected | Событие онлайн: когда любой клиент выходит в онлайн, RMQTT публикует сообщение в этой теме. |
$SYS/brokers/{node}/clients/{clientid}/disconnected | Событие оффлайн: когда любой клиент уходит в оффлайн, RMQTT публикует сообщение в этой теме. |
connected Полезная нагрузка сообщения о событии анализируется в следующем формате JSON:
{
"node": 1,
"ipaddress": "127.0.0.1:1883",
"clientid": "rmqtt-12312431wewr232",
"username": "foo",
"keepalive": 60,
"proto_ver": 4,
"clean_session": true,
"connected_at": 1692069106000,
"session_present": false,
"time": "2023-08-15 11:11:46.984"
}
disconnected Полезная нагрузка сообщения о событии анализируется в следующем формате JSON:
{
"node": 1,
"ipaddress": "127.0.0.1:1883",
"clientid": "rmqtt-12312431wewr232",
"username": "foo",
"disconnected_at": 1692069106000,
"reason": "Disconnect",
"time": "2023-08-15 11:11:46.984"
}
Тема | Объяснение |
---|---|
$SYS/brokers/{node}/session/{clientid}/created | Событие создания сеанса: когда создаётся сеанс любого клиента, RMQTT публикует сообщение в этой теме. |
$SYS/brokers/{node}/session/{clientid}/terminated | Событие завершения сеанса: когда завершается сеанс любого клиента, RMQTT публикует сообщение в этой теме. |
created Полезная нагрузка сообщения о событии анализируется в следующем формате JSON:
{
"node": 1,
"ipaddress": "127.0.0.1:1883",
"clientid": "rmqtt-12312431wewr232",
"username": "foo",
"created_at": 1692069106000,
"time": "2023-08-15 11:11:46.984"
}
terminated Полезная нагрузка сообщения о событии анализируется в следующем формате JSON:
{
"node": 1,
"ipaddress": "127.0.0.1:1883",
"clientid": "rmqtt-12312431wewr232",
"username": "foo",
"reason": "Disconnect",
"time": "2023-08-15 11:11:46.984"
}
Тема | Объяснение |
---|---|
$SYS/brokers/{node}/session/{clientid}/subscribed | Событие успешной подписки на тему: когда подписка на любую тему успешна, RMQTT публикует сообщение в этой теме. |
$SYS/brokers/{node}/session/{clientid}/unsubscribed | Событие отписки от темы: когда происходит отписка от любой темы |
Примечание: В тексте запроса присутствуют фрагменты кода на языке программирования YAML, которые не были переведены. Отписка успешна, RMQTT публикует сообщение в этой теме.
Подписан. Данные события сообщения анализируются и форматируются в следующий формат JSON:
{
"node": 1,
"ipaddress": "127.0.0.1:1883",
"clientid": "rmqtt-12312431wewr232",
"username": "foo",
"topic": "foo/#",
"opts": { "qos":1 },
"time": "2023-08-15 11:11:46.984"
}
Отписан. Данные события сообщения анализируются и форматируются в следующий формат JSON:
{
"node": 1,
"ipaddress": "127.0.0.1:1883",
"clientid": "rmqtt-12312431wewr232",
"username": "foo",
"topic": "foo/#",
"time": "2023-08-15 11:11:46.984"
}
**Событие «Сообщение отброшено»**
| Тема | Объяснение |
|------------|-------------------------------------|
| $SYS/brokers/{node}/message/dropped | Событие «Сообщение отброшено»: когда любое сообщение отбрасывается, RMQTT публикует сообщение в эту тему. |
*Отброшено.* Данные события сообщения анализируются и форматируются в следующий формат JSON:
```bash
{
"from_node": 1,
"from_ipaddress": "127.0.0.1:1883",
"from_clientid": "rmqtt-12312431wewr232",
"from_username": "foo",
"node": 1,
"ipaddress": "127.0.0.1:1883",
"clientid": "rmqtt-12312431wewr232",
"username": "foo",
"dup": false,
"retain": false,
"qos": 1,
"topic": "foo/#",
"packet_id": 3,
"payload": "dGVzdCAvdGVzdC9sd3QgLi4u",
"reason": "MessageExpiration",
"pts": 1692069106000,
"ts": 1692069107000,
"time": "2023-08-15 11:11:46.984"
}
**Данные о состоянии узла**
| Тема | Объяснение |
|---------------------------|--------|
| $SYS/brokers/{node}/stats | Данные о состоянии узла |
*Статистика.* Данные события сообщения анализируются и форматируются в следующий формат JSON:
```bash
{
"connections.count": 0,
"connections.max": 1,
"handshakings.count": 0,
"handshakings.max": 0,
"handshakings_active.count": 0,
"handshakings_rate.count": 0,
"handshakings_rate.max": 0,
"retained.count": 0,
"retained.max": 0,
"routes.count": 0,
"routes.max": 0,
"sessions.count": 0,
"sessions.max": 1,
"subscriptions.count": 0,
"subscriptions.max": 0,
"subscriptions_shared.count": 0,
"subscriptions_shared.max": 0,
"topics.count": 0,
"topics.max": 0
}
**Статистические метрики**
| Тема | Объяснение |
|---------------------------|--------|
| $SYS/brokers/{node}/metrics | Статистические метрики узла |
*Метрики.* Данные события сообщения анализируются и форматируются в следующий формат JSON:
```bash
{
"client.auth.anonymous": 1,
"client.auth.anonymous.error": 0,
"client.authenticate": 1,
"client.connack": 1,
"client.connack.auth.error": 0,
"client.connack.error": 0,
"client.connect": 1,
"client.connected": 1,
"client.disconnected": 1,
"client.handshaking.timeout": 0,
"client.publish.auth.error": 0,
"client.publish.check.acl": 0,
"client.publish.error": 0,
"client.subscribe": 0,
"client.subscribe.auth.error": 0,
"client.subscribe.check.acl": 0,
"client.subscribe.error": 0,
"client.unsubscribe": 0,
"messages.acked": 0,
"messages.acked.admin": 0,
"messages.acked.custom": 0,
"messages.acked.lastwill": 0,
"messages.acked.retain": 0,
"messages.acked.system": 0,
"messages.delivered": 0,
"messages.delivered.admin": 0,
"messages.delivered.custom": 0,
"messages.delivered.lastwill": 0,
"messages.delivered.retain": 0,
"messages.delivered.system": 0,
"messages.dropped": 0,
"messages.nonsubscribed": 0,
"messages.nonsubscribed.admin": 0,
"messages.nonsubscribed.custom": 0,
"messages.nonsubscribed.lastwill": 0,
"messages.nonsubscribed.system": 0,
"messages.publish": 0,
"messages.publish.admin": 0,
"messages.publish.custom": 0,
"messages.publish.lastwill": 0,
"messages.publish.system": 0,
"session.created": 1,
"session.resumed": 0,
"session.subscribed": 0,
"session.terminated": 1,
"session.unsubscribed": 0
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )