ダッシュボード設定
EMQXダッシュボードは、EMQXおよび接続されたデバイスのリアルタイム管理と監視を可能にする、ウェブベースのグラフィカルインターフェースです。
EMQXダッシュボードの設定には多くの項目があります。たとえば、swagger_support設定を通じてAPI仕様エンドポイントを有効化したり、EMQXダッシュボードのリスナーを設定してすべての着信接続を受け入れることが可能です。加えて、以下の一般的な設定項目も利用できます:
listenerstoken_expired_timepassword_expired_timehwmark_expire_timecorsdefault_passwordunsuccessful_login_max_attemptsunsuccessful_login_durationunsuccessful_login_intervalsso
以下はダッシュボード設定のサンプルです:
dashboard {
listeners {
http {
# 'bind = 0' を設定するとこのリスナーは無効になります
bind = "0.0.0.0:18083"
max_connections = 512
}
https {
# 'bind = 0' を設定するとこのリスナーは無効になります
bind = "0.0.0.0:18084"
ssl_options {
certfile = "${EMQX_ETC_DIR}/certs/cert.pem"
keyfile = "${EMQX_ETC_DIR}/certs/key.pem"
}
}
}
token_expired_time = 60m
password_expired_time = 0
cors = false
swagger_support = true
default_password = jEdOgGS6vzQ
unsuccessful_login_max_attempts = 5
unsuccessful_login_lock_duration = 10m
unsuccessful_login_interval = 5m
sso = {
# 通常、`ldap`、`oidc`、または `saml` のいずれか一つのみが有効になります。以下はデモ用設定です。
ldap = {
enable = true
backend = "ldap"
query_timeout = "5s"
server = "localhost:389"
pool_size = 8
username = "cn=admin,dc=example,dc=com"
password = "secret"
base_dn = "dc=example,dc=com"
filter = "(& (objectClass=person) (uid=${username}))"
request_timeout = "10s"
}
oidc = {
enable = true
backend = oidc
issuer = "https://issuer.example.com"
clientid = "your-client-id"
secret = "your-client-secret"
scopes = [
"openid"
]
name_var = "${sub}"
dashboard_addr = "http://127.0.0.1:18083"
session_expiry = "30s"
require_pkce = false
preferred_auth_methods = [
"client_secret_post",
"client_secret_basic",
"none"
]
provider = generic
fallback_methods = [
"RS256"
]
}
saml = {
enable = true
backend = "saml"
dashboard_addr = "https://127.0.0.1:18083"
idp_metadata_url = "https://idp.example.com"
sp_sign_request = false
sp_public_key = "Pub Key"
sp_private_key = "SP Private Key"
}
}
}各設定の説明は以下の通りです。
bind = "0.0.0.0:18083"リスナーがバインドするIPアドレスとポート番号です。この例では、リスナーはすべての利用可能なネットワークインターフェース(
0.0.0.0)のポート18083にバインドします。ポート番号を0に設定すると、このリスナーは無効になります。EMQX 6.3.0以降、
dashboard.listeners.http.bindにポート番号のみ(例:18083)を指定した場合、EMQXはnode.default_listener_addressを使って各ノードのアドレスを選択します。この設定がない場合、HTTPリスナーはlegacyセキュリティプロファイルでは全ネットワークインターフェースに、hardenedではループバックにバインドします。上記のように明示的なIPアドレスをbindに指定した場合はそれが優先されます。このデフォルトアドレス設定は、ダッシュボードのHTTPSリスナーには適用されません。対応する値、再起動要件、DockerのデフォルトについてはDefault Listener Addressを参照してください。
max_connections = 512リスナーが受け入れる最大同時接続数です。この例では最大接続数を
512に設定しています。ssl_options.certfilePEM形式の証明書チェーンファイルへのパスです。サーバー証明書を最初に、その発行者証明書、さらにその上位発行者証明書と続きます。ルートCA証明書は任意です。パスのプレフィックス(先頭部分)のみ環境変数を使用可能です。
ssl_options.keyfilePEM形式の秘密鍵ファイルへのパスです。
token_expired_timeJWTトークンの有効期限です。ブラウザのセッション有効期限に相当します。ユーザーがログインすると、EMQXはJWTトークンとリフレッシュトークンを生成し、有効期限前にセッションが自動更新されます。デフォルト値は
60mです。hwmark_expire_time最高ウォーターマークの有効期限時間ウィンドウです。デフォルト値は
7dです。有効期限切れ後、ダッシュボードは有効期限時刻から現在までの間で新しい最高ウォーターマークを検索します。password_expired_timeダッシュボードにログインする際のユーザーのパスワード有効期限を設定します(例:
1h)。この時間を過ぎると、ユーザーはログイン時にパスワード変更が必要です。デフォルト値0はパスワードが期限切れにならないことを意味します。corsクロスオリジンリソースシェアリング(CORS)をサポートします。ダッシュボードAPIを他のドメイン(例:カスタムフロントエンド)からアクセス可能にしたい場合は、これを
trueに設定します。swagger_support = true/api-spec.html、/api-spec.md、/api-spec.json、および完全なOpenAPI仕様を含む/api-docs/swagger.jsonなどのAPIドキュメントエンドポイントを有効にします。後方互換性のため、/api-docsおよび/api-docs/index.htmlは/api-spec.htmlにリダイレクトされます。このオプションをfalseに設定すると、すべてのAPIドキュメントエンドポイントが無効になります。EMQX 6.3.0以降、これらのエンドポイントを通じたAPI仕様コンテンツへのアクセスには認証が必要です。対応する認証方法や未認証時の応答動作についてはAccess API Specification Endpointsを参照してください。
default_passwordadminユーザーのデータベースレコード初期化に使用されるパスワードです。注意:EMQXが初回起動後にこの設定を変更しても反映されません。初期化後は、インストール時に付属するデフォルトパスワードpublicをダッシュボードまたはCLIから変更する必要があります。unsuccessful_login_max_attempts一定期間内に許容される最大のログイン失敗回数を指定します。この回数を超えるとアカウントが一時的にロックされます。デフォルト値は
5です。unsuccessful_login_durationログイン失敗回数の上限に達した後、アカウントがロックされる期間(分単位)を設定します。デフォルト値は
10分です。unsuccessful_login_intervalログイン失敗回数がカウントされる時間ウィンドウを定義します。例えば
5に設定すると、5分間の間に発生したログイン失敗回数を追跡します。デフォルト値は5分です。ssoシングルサインオン(SSO)の設定を行います。
ldap、oidc、samlのうち一つのみが同時に有効になります。詳細な設定説明は設定マニュアルのSSOセクションを参照してください。
TIP
EMQXはよりカスタマイズされたニーズに応えるため、さらに多くの設定項目を提供しています。詳細はEMQX Enterprise Configuration Manual for Enterpriseをご覧ください。