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 ルールを変更する場合は、ファイル認可 を参照してください。

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/count と topics/max は routes/count と routes/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/error累積処理中の PUBLISH エラーパケット数
packets/publish/auth_error累積拒否された PUBLISH パケット数
packets/publish/dropped累積ドロップされた PUBLISH パケット数
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/error累積処理中の SUBSCRIBE エラーパケット数
packets/subscribe/auth_error累積拒否された SUBSCRIBE パケット数
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/received累積受信 QoS 0 メッセージ数
messages/qos0/sent累積送信 QoS 0 メッセージ数
messages/qos1/received累積受信 QoS 1 メッセージ数
messages/qos1/sent累積送信 QoS 1 メッセージ数
messages/qos2/received累積受信 QoS 2 メッセージ数
messages/qos2/sent累積送信 QoS 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ノード間通信に使用される分散通信ポートがビジーで、プロセスがハングしている