# EMQX Dashboard

EMQXは、EMQXクラスターの監視および管理を行い、必要な機能をウェブページ上で設定できる組み込みのDashboard管理コンソールを提供します。新しいDashboardは刷新されたデザインを採用し、使いやすいMQTTブローカー管理UIを提供します。

EMQX Dashboardの新しいUI/UXデザインは、主要なデータやメトリクスの表示と内容を最適化し、視覚的な体験を向上させるとともに、接続、サブスクライブ、パブリッシュの認証および認可管理、データブリッジを用いたデータ統合変換やルールエンジンのサポートなど、より包括的で強力かつ使いやすい組み込み機能を提供します。ブラウザからの迅速かつ簡単なアクセスにより、ユーザーはより便利にEMQXを利用してIoTビジネスの開発を進められます。

![image](./assets/dashboard_preview.png)

## 主な機能

このセクションでは、Dashboardを通じて設定および管理可能なEMQXの各種機能を紹介します。

::: tip
EMQX 6.3.0以降、デプロイメントでは[feature gates](../../get-started/deploy/feature-gates.md)を使用して起動時にオプション機能を無効化できます。機能が無効化されると、Dashboardは該当するメニューやページを非表示にします。
:::

### [監視](./monitoring.md)

稼働中のEMQXクラスター全体の情報を表示します。接続数、サブスクライブされたトピック、メッセージ配信数、インバウンドレート、アウトバウンドレートなどを含みます。さらに、ノードリスト、ノード情報、各種システムメトリクス情報も確認可能です。加えて、クライアント接続やサブスクリプションデータの閲覧および管理も行えます。

### [アクセス制御](./acloverview.md)

EMQXの認証および認可機構を視覚的に追加・設定できます。

### [データ統合](./bridgeoverview.md)

強力なSQLベースのルールエンジンおよびデータ統合機能、またはFlowデザイナーのビジュアル機能を利用して、ローコードでのデータ処理と統合を実現します。これにより、MQTTデータのリアルタイム抽出、フィルタリング、エンリッチメント、変換、保存、検証が可能です。

### 管理

#### クラスター設定

MQTT、ログ、リスナーなどの設定項目をオンラインで変更・更新でき、更新成功後は即時反映されます。

#### 高度なMQTT設定

トピック書き換え、自動サブスクライブ、遅延パブリッシュ、ファイル転送機能の管理と設定を行います。

#### 拡張機能

カスタムプラグイン統合により、組み込みのゲートウェイ管理と設定を通じて接続プロトコルを拡張できます。また、Hooksを利用して関数呼び出しやメッセージ伝達、モジュール間のイベント伝達をインターセプトし、システム機能の変更や拡張も可能です。

### 問題解析と診断

オンラインのMQTT over WebSocketクライアント接続やトピックメトリクスによるデバッグに加え、スロウサブスクリプションやログトレースなどの機能を用いた診断および問題発見もサポートしています。

### システム

ユーザーアカウント、監査ログ、APIキー、ライセンス設定、シングルサインオン機能の管理および設定を行います。

## Dashboardの起動

EMQX Dashboardはウェブアプリケーションで、デフォルトでポート`18083`をリッスンします。EMQXを正常にインストール後、ブラウザで<http://localhost:18083/>（非ローカル環境の場合はlocalhostを実際のIPアドレスに置き換え）にアクセスすることでDashboardを利用できます。

::: tip
Dashboardを有効化しなくてもEMQXは通常通り使用可能です。Dashboardはユーザーが視覚的に操作できるオプションを提供するものです。
:::

### 初回ログイン

EMQXを初めてインストールしたユーザーは、ブラウザでDashboardを開いた後、デフォルトのユーザー名`admin`とパスワード`public`でログインできます。

初回ログイン時、システムはデフォルトのユーザー名とパスワードでログインしていることを自動検知し、Dashboardアクセスのセキュリティ向上のためパスワード変更を強制します。変更後のパスワードは元のパスワードと同じにできず、再度`public`を使用することは推奨されません。

### URLによるトークンベースログイン

EMQX 5.6.0以降、DashboardはURLに認証情報を埋め込むことで直接ログインできるトークンベースのログイン方式をサポートしています。

この機能は、ユーザーが手動で認証情報を入力せずに自動的にログインできるシームレスなリダイレクトや統合シナリオに特に有効です。

#### 利用方法

1. `/login`エンドポイントを使用して認証トークンを取得します。レスポンスにはユーザー名が含まれないため、JSONペイロードにユーザー名を手動で追加してからBase64エンコードする必要があります。

   以下のように、トークン取得、ユーザー名の挿入、Base64エンコードを一括で実行できます。

   ```
   curl -s -X POST "http://127.0.0.1:18083/api/v5/login" \
     -H 'accept: application/json' \
     -H 'Content-Type: application/json' \
     -d '{"username": "admin","password": "public"}' | jq '.username = "admin"' | base64
   ```

2. ログインURLを構築します。DashboardのURLの`login_meta`クエリパラメータにエンコード済み文字列を埋め込みます。例：

   EMQX 5.6.0未満のバージョンの場合：

   ```bash
   http://localhost:18083?login_meta=BASE64_ENCODED_STRING
   ```

   これによりデフォルトのクラスター概要ページにリダイレクトされます。

   EMQX 5.6.0以降の場合：

   ```bash
   http://localhost:18083/#/dashboard/overview?login_meta=BASE64_ENCODED_STRING
   ```

   ログイン後の遷移先ページを指定可能です。

この方式により、EMQX Dashboardへのスムーズな事前認証済みユーザー体験を提供します。トークンは安全に取り扱い、適切な有効期限とスコープ制限を設定してください。

### パスワードリセット

Dashboardのログインパスワードは`admins`コマンドでリセット可能です。詳細は[CLI - admins](../cli.md#admins)を参照してください。

```bash
./bin/emqx ctl admins passwd <Username> <Password>
```

### パスワード有効期限

現在のDashboardログインパスワードの使用期間が設定されたパスワード有効期限（`password_expired_time`）を超えると、ログイン時にパスワード更新を促されます。`password_expired_time`設定の詳細は[Dashboard設定](../configuration/dashboard.md)を参照してください。

「管理者」ロールのユーザーは[REST API](../api.md)を使ってパスワード有効期限を設定することも可能です。

**例**:

```bash
curl -X 'PUT' \
  'http://admin:ppp@localhost:18083/api/v5/configs/dashboard' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{"password_expired_time": "1d"}'
```

この例では、パスワード有効期限を1日に設定しています。

### アカウントロックと解除

セキュリティ強化のため、EMQX Dashboardは「アカウントロックと解除」機構を実装しています。ユーザーが5分間に5回パスワードを誤入力すると、そのアカウントは10分間ロックされます。

「管理者」ロールのユーザーはCLIを使い、ユーザーのパスワードをリセットすることで手動でアカウントのロックを解除できます。10分経過後は自動的にロックが解除され、ユーザーは通常通りログイン可能になります。

管理者はロック時間やロック発動に必要な失敗回数をバックエンド設定で変更可能です。設定の詳細は[Dashboard設定](../configuration/dashboard.md)を参照してください。

## Dashboardの設定

DashboardはデフォルトでHTTPをリッスンし、ポート番号は18083です。ユーザーはHTTPSを有効化したり、リスナーポートを変更したりできます。Dashboard設定の詳細な方法については、[EMQX Enterprise設定マニュアル](https://docs.emqx.com/en/enterprise/v6.3.1/hocon/)を参照してください。
