Skip to content

システムトピック

EMQXは定期的に稼働状況、メッセージ統計、クライアントのオンライン・オフラインイベントを、$SYS/で始まるシステムトピックにパブリッシュします。

$SYSトピックのパスは$SYS/brokers/{node}/で始まり、{node}はイベントやメッセージが生成されたノード名を示します。例:

bash
$SYS/brokers/emqx@127.0.0.1/version
$SYS/brokers/emqx@127.0.0.1/uptime

$SYSシステムメッセージのパブリッシュ間隔は、ダッシュボードの Management/MQTT Setting/System Topic で設定可能です。

TIP

デフォルトでは、localhost上のMQTTクライアントのみが$SYSトピックのサブスクライブを許可されています。
パブリッシュおよびサブスクライブのACLルールを変更する場合は、File Authorization をご参照ください。

EMQXの$SYSトピックの多くのデータは、より低い結合度で他の方法から取得可能です。
デバイスのオンライン・オフライン状態はルールエンジンでキャプチャし処理できます。

クラスター状態情報

トピック説明
$SYS/brokersクラスターのノード一覧
$SYS/brokers/${node}/versionEMQXのバージョン
$SYS/brokers/${node}/uptimeEMQXの起動時間
$SYS/brokers/${node}/datetimeEMQXの時刻
$SYS/brokers/${node}/sysdescrEMQXの説明

クライアントのオンライン・オフラインイベント

これらのイベントはデフォルトで有効です。無効化する場合は sys_topics.sys_event_messages をご参照ください。

$SYSトピックのプレフィックス:$SYS/brokers/${node}/clients/

トピック説明
${clientid}/connectedオンラインイベント。クライアントがオンラインになった際にパブリッシュされるメッセージ
${clientid}/disconnectedオフラインイベント。クライアントがオフラインになった際にパブリッシュされるメッセージ

connectedイベントメッセージのペイロードはJSON形式で解析可能です:

bash
{
    "username": "foo",
    "ts": 1625572213873,
    "sockport": 1883,
    "proto_ver": 4,
    "proto_name": "MQTT",
    "keepalive": 60,
    "ipaddress": "127.0.0.1",
    "expiry_interval": 0,
    "connected_at": 1625572213873,
    "connack": 0,
    "clientid": "emqtt-8348fe27a87976ad4db3",
    "clean_start": true
}

disconnectedイベントメッセージのペイロードもJSON形式で解析可能です:

bash
{
    "username": "foo",
    "ts": 1625572213873,
    "sockport": 1883,
    "reason": "tcp_closed",
    "proto_ver": 4,
    "proto_name": "MQTT",
    "ipaddress": "127.0.0.1",
    "disconnected_at": 1625572213873,
    "clientid": "emqtt-8348fe27a87976ad4db3"
}

クライアントのサブスクライブ・アンサブスクライブイベント

これらのイベントはデフォルトで無効です。有効化する場合は sys_topics.sys_event_messages をご参照ください。

$SYSトピックのプレフィックス:$SYS/brokers/${node}/clients/

トピック説明
${clientid}/subscribedサブスクライブイベント。クライアントがトピックをサブスクライブした際にパブリッシュされるメッセージ
${clientid}/unsubscribedアンザブスクライブイベント。クライアントがトピックのサブスクライブを解除した際にパブリッシュされるメッセージ

subscribedイベントメッセージのペイロードはJSON形式で解析可能です:

bash
{
    "username":"foo",
    "ts":1625572213878,
    "topic":"/the/best/mqtt/broker/is/emqx",
    "subopts":{
        "sub_props":{},
        "rh":0,
        "rap":0,
        "qos":0,
        "nl":0,
        "is_new":true
    },
    "protocol":"mqtt",
    "clientid":"emqtt-8348fe27a87976ad4db3"
}

unsubscribedイベントメッセージのペイロードもJSON形式で解析可能です:

bash
{
    "username":"foo",
    "ts":1625572213899,
    "topic":"/the/best/mqtt/broker/is/emqx",
    "protocol":"mqtt",
    "clientid":"emqtt-8348fe27a87976ad4db3"
}

統計情報

システムトピックのプレフィックス:$SYS/brokers/${node}/stats/

クライアント統計

トピック説明
connections/count現在のクライアント総数
connections/maxクライアントの最大数

サブスクリプション統計

トピック説明
suboptions/count現在のサブスクリプションオプション数
suboptions/max最大サブスクリプションオプション数
subscribers/count現在のサブスクライバー数
subscribers/max最大サブスクライバー数
subscriptions/count現在のサブスクリプション総数
subscriptions/max最大サブスクリプション数
subscriptions/shared/count現在の共有サブスクリプション総数
subscriptions/shared/max最大共有サブスクリプション数

トピック統計

トピック説明
topics/count現在のトピック総数
topics/max最大トピック数

ルート統計

トピック説明
routes/count現在のルート総数
routes/max最大ルート数

topics/counttopics/max は数値的に routes/countroutes/max と同じです。

スループット(バイト/パケット/メッセージ)統計

システムトピックのプレフィックス:$SYS/brokers/${node}/metrics/

送受信バイト統計

トピック説明
bytes/received累積受信バイト数
bytes/sent累積送信バイト数

送受信MQTTパケット統計

トピック説明
packets/received累積受信MQTTパケット数
packets/sent累積送信MQTTパケット数
packets/connect/received累積受信CONNECTパケット数
packets/connack/sent累積送信CONNACKパケット数
packets/publish/received累積受信PUBLISHパケット数
packets/publish/sent累積送信PUBLISHパケット数
packets/publish/errorPUBLISHエラーパケットの累積処理数
packets/publish/auth_errorPUBLISH拒否パケットの累積数
packets/publish/droppedPUBLISHドロップパケットの累積数
packets/puback/received累積受信PUBACKパケット数
packets/puback/sent累積送信PUBACKパケット数
packets/puback/inuse累積ドロップPUBACKパケット数
packets/puback/missed累積見逃しPUBACKパケット数
packets/pubrec/received累積受信PUBRECパケット数
packets/pubrec/sent累積送信PUBRECパケット数
packets/pubrec/inuse累積ドロップPUBRECパケット数
packets/pubrec/missed累積見逃しPUBRECパケット数
packets/pubrel/received累積受信PUBRELパケット数
packets/pubrel/sent累積送信PUBRELパケット数
packets/pubrel/missed累積見逃しPUBRELパケット数
packets/pubcomp/received累積受信PUBCOMPパケット数
packets/pubcomp/sent累積送信PUBCOMPパケット数
packets/pubcomp/inuse累積ドロップPUBCOMPパケット数
packets/pubcomp/missed累積見逃しPUBCOMPパケット数
packets/subscribe/received累積受信SUBSCRIBEパケット数
packets/subscribe/errorSUBSCRIBEエラーパケットの累積処理数
packets/subscribe/auth_errorSUBSCRIBE拒否パケットの累積数
packets/suback/sent累積送信SUBACKパケット数
packets/unsubscribe/received累積受信UNSUBSCRIBEパケット数
packets/unsuback/sent累積送信UNSUBACKパケット数
packets/pingreq/received累積受信PINGREQパケット数
packets/pingresp/sent累積送信PINGRESPパケット数
packets/disconnect/received累積受信DISCONNECTパケット数
packets/disconnect/sent累積送信DISCONNECTパケット数
packets/auth/received累積受信AUTHパケット数
packets/auth/sent累積送信AUTHパケット数

MQTT送受信メッセージ統計

トピック説明
messages/received累積受信メッセージ数
messages/sent累積送信メッセージ数
messages/qos0/receivedQoS 0の累積受信メッセージ数
messages/qos0/sentQoS 0の累積送信メッセージ数
messages/qos1/receivedQoS 1の累積受信メッセージ数
messages/qos1/sentQoS 1の累積送信メッセージ数
messages/qos2/receivedQoS 2の累積受信メッセージ数
messages/qos2/sentQoS 2の累積送信メッセージ数
messages/publish累積PUBLISHメッセージ数
messages/droppedドロップされたメッセージの総数
messages/dropped/expiredドロップされたメッセージの総数(期限切れ)
messages/dropped/no_subscribersドロップされたメッセージの総数(サブスクライバーなし)
messages/forwardノードによって転送されたメッセージの総数
messages/retained累積保持メッセージ数
messages/delayed累積遅延メッセージ数
messages/delivered累積配信済みメッセージ数
messages/acked累積アック済みメッセージ数

アラーム - システムアラーム

システムトピックのプレフィックス:$SYS/brokers/${node}/alarms/

トピック説明
activate新規発生したアラーム
deactivate解消されたアラーム

Sysmon - システムモニタリング

システムトピックのプレフィックス:$SYS/brokers/${node}/sysmon/

トピック説明
long_gcガベージコレクションに時間がかかりすぎている
long_scheduleプロセススケジューリングに時間がかかりすぎており、スケジューラーのタイムスライスを多く消費している
large_heapプロセスのメモリ使用量が多すぎる
busy_portプロセスがビジーポートにメッセージを送信し、プロセスがハングしている
busy_dist_portノード間通信に使用される分散通信ポートがビジーで、プロセスがハングしている