Skip to content

Dashboard 配置

在 EMQX 中, Dashboard 是一个基于 Web 的图形界面,用于实时管理和监控 EMQX 及连接的设备。

EMQX Dashboard 配置包括很多配置项,例如,为 Dashboard 配置 swagger_support 和一个监听器以接受所有传入连接。除此以外,还有以下常用的配置项:

  • listeners
  • token_expired_time
  • password_expired_time
  • hwmark_expire_time
  • cors
  • default_password
  • unsuccessful_login_max_attempts
  • unsuccessful_login_duration
  • unsuccessful_login_interval
  • sso

以下为 Dashboard 配置示例:

bash
dashboard {
  listeners {
    http {
      bind = "0.0.0.0:18083"
      max_connections = 512
    }
    https {
      # set 'bind = 0' will disable this listener
      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 = {
    # Normally, only one of `ldap`, `oidc`, or `smal` can be active at a time. Below is for the demonstration purposes.
    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"

    用于设置监听器绑定的网络地址和端口号。在以上示例中,监听器将绑定到所有可用的网络接口(0.0.0.0)上的端口 18083

  • max_connections = 512

    用于设置监听器将接受的最大并发连接数。在以上示例中,最大连接数设置为 512

  • ssl_options.certfile

    指向包含 PEM 格式证书的文件。文件中第一个证书必须是服务器证书,紧接着是签发这个证书的中间 CA 证书,依次罗列到根 CA 证书为止。(根 CA 证书可选)。

  • ssl_options.keyfile

    指向包含 PEM 格式的私钥文件。

  • token_expired_time

    JWT Token 的过期时间,等同于“浏览器会话过期时间”。用户登录后,EMQX 会生成一个 JWT Token 和一个刷新 Token。会话会在到期前自动续期。默认值为 60m

  • hwmark_expire_time

    最高水印过期时间。默认值为 7d。过期后,Dashboard 将找到自过期时间到当前时间为止的最高水印。

  • password_expired_time

    设置用户用于登录 Dashboard 的密码的过期时间,比如 1h。超过此时间,用户在登录 Dashboard 时必须修改密码。默认值 0 表示密码永不过期。

  • cors

    是否支持跨域资源共享(CORS)。如果您希望从其他域(如自定义前端)访问 Dashboard 的 API,可将此项设置为 true

  • swagger_support = true

    用于启用所有与 swagger 相关的功能,如生成 Swagger API 文档。默认情况下,其值始终为 true,您可以将值设置为 false 以禁用它。

  • default_password

    用于为 admin 用户初始化数据库条目的默认密码。注意:一旦 EMQX 初次启动成功,修改这个密码将不再不起作用。初始化后,密码必须在控制台或者命令行进行修改。

  • unsuccessful_login_max_attempts

    指定在特定时间内允许的最大登录失败次数。如果用户超过此限制,账户将被暂时锁定。默认值为 5

  • unsuccessful_login_duration

    设置达到最大失败登录次数后账户被锁定的持续时间。默认值为 10 分钟。

  • unsuccessful_login_interval

    定义了一个时间窗口,在该时间窗口内,失败的登录尝试会被计入限制。例如,如果设置为 5,则系统将在5分钟内跟踪失败的登录尝试次数。默认值为 5 分钟。

  • sso

    配置单点登录(SSO) 选项。ldapoidcsaml 三者中只能启用一个。如需详细的配置说明,请参阅配置手册中的 SSO 部分。

TIP

EMQX 提供了更多配置项以更好地满足定制化需求。详情请参见 EMQX 企业版配置手册