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/maxroutes/countroutes/max と数値的に同じです。

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

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

送受信バイト統計

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

送受信MQTTパケット統計

トピック説明
packets/received累積受信MQTTパケット数
packets/sent累積送信MQTTパケット数
packets/connect/receivedCONNECTパケットの累積受信数
packets/connack/sentCONNACKパケットの累積送信数
packets/publish/receivedPUBLISHパケットの累積受信数
packets/publish/sentPUBLISHパケットの累積送信数
packets/publish/errorPUBLISHエラーパケットの累積処理数
packets/publish/auth_errorPUBLISH拒否パケットの累積数
packets/publish/droppedPUBLISHドロップパケットの累積数
packets/puback/receivedPUBACKパケットの累積受信数
packets/puback/sentPUBACKパケットの累積送信数
packets/puback/inusePUBACKドロップパケットの累積数
packets/puback/missedPUBACKミスパケットの累積数
packets/pubrec/receivedPUBRECパケットの累積受信数
packets/pubrec/sentPUBRECパケットの累積送信数
packets/pubrec/inusePUBRECドロップパケットの累積数
packets/pubrec/missedPUBRECミスパケットの累積数
packets/pubrel/receivedPUBRELパケットの累積受信数
packets/pubrel/sentPUBRELパケットの累積送信数
packets/pubrel/missedPUBRELミスパケットの累積数
packets/pubcomp/receivedPUBCOMPパケットの累積受信数
packets/pubcomp/sentPUBCOMPパケットの累積送信数
packets/pubcomp/inusePUBCOMPドロップパケットの累積数
packets/pubcomp/missedPUBCOMPミスパケットの累積数
packets/subscribe/receivedSUBSCRIBEパケットの累積受信数
packets/subscribe/errorSUBSCRIBEエラーパケットの累積処理数
packets/subscribe/auth_errorSUBSCRIBE拒否パケットの累積数
packets/suback/sentSUBACKパケットの累積送信数
packets/unsubscribe/receivedUNSUBSCRIBEパケットの累積受信数
packets/unsuback/sentUNSUBACKパケットの累積送信数
packets/pingreq/receivedPINGREQパケットの累積受信数
packets/pingresp/sentPINGRESPパケットの累積送信数
packets/disconnect/receivedDISCONNECTパケットの累積受信数
packets/disconnect/sentDISCONNECTパケットの累積送信数
packets/auth/receivedAUTHパケットの累積受信数
packets/auth/sentAUTHパケットの累積送信数

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ノード間通信に使われる分散通信ポートがビジーで、プロセスがハングしている