EMQX服务开启后无法进入18083Dashboard页面

环境

  • EMQX 版本:5.0.15
  • 操作系统版本:Ubuntu 16.04.7 LTS

重现此问题的步骤

  1. 按照ubuntu docker部署的方式部署了emqx服务
sudo docker pull emqx:5.0.15
sudo docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx:5.0.15
  1. 从网页端 http://localhost:18083 无法登陆到web界面

预期行为

之前在其他服务器上部署时,使用同样的emqx版本和步骤,是可以正常访问的,登陆用户名和密码能进入界面。现在访问不了。

请问该如何排查此问题呢?

先看下 docker 的 log,确认下 EMQX 的启动和运行情况

docker应该是启动了

~$ sudo docker ps | grep emqx
3878a84e93a9        emqx:5.0.15                "/usr/bin/docker-ent…"   About an hour ago   Up About an hour    4370/tcp, 0.0.0.0:1883->1883/tcp, 0.0.0.0:8083-8084->8083-8084/tcp, 5369/tcp, 0.0.0.0:8883->8883/tcp, 0.0.0.0:18083->18083/tcp, 11883/tcp   emqx

日志也显示EMQX在运行中

~$ sudo docker logs emqx
WARNING: Default (insecure) Erlang cookie is in use.
WARNING: Configure node.cookie in /opt/emqx/etc/emqx.conf or override from environment variable EMQX_NODE__COOKIE
WARNING: NOTE: Use the same cookie for all nodes in the cluster.
EMQX_RPC__PORT_DISCOVERY [rpc.port_discovery]: manual
EMQX_LOG__FILE_HANDLERS__DEFAULT__ENABLE [log.file_handlers.default.enable]: false
EMQX_LOG__CONSOLE_HANDLER__ENABLE [log.console_handler.enable]: true
EMQX_NODE__NAME [node.name]: emqx@192.168.0.2
Listener ssl:default on 0.0.0.0:8883 started.
Listener tcp:default on 0.0.0.0:1883 started.
Listener ws:default on 0.0.0.0:8083 started.
Listener wss:default on 0.0.0.0:8084 started.
Listener http:dashboard on :18083 started.
EMQX 5.0.15 is running now!

另外我试了一下使用最新的版本EMQX 5.0.20的docker image,好像还是进不了Dashboard。
检查了一下服务器端口应该没有设置额外的权限,不知道为什么就查看不了

  1. 在 docker 内访问下 18083,看下能否正常访问
  2. 确认下网络规则和防火墙设置
  3. 看下 18083 端口被哪个进程占有
  1. 进入docker查看了一下emqx的状态
emqx@3878a84e93a9:/opt/emqx$ emqx_ctl listeners
ssl:default
  listen_on       : 0.0.0.0:8883
  acceptors       : 16
  proxy_protocol  : false
  running         : true
  current_conn    : 0
  max_conns       : 512000
tcp:default
  listen_on       : 0.0.0.0:1883
  acceptors       : 16
  proxy_protocol  : false
  running         : true
  current_conn    : 0
  max_conns       : 1024000
ws:default
  listen_on       : 0.0.0.0:8083
  acceptors       : 16
  proxy_protocol  : false
  running         : true
  current_conn    : 0
  max_conns       : 1024000
wss:default
  listen_on       : 0.0.0.0:8084
  acceptors       : 16
  proxy_protocol  : false
  running         : true
  current_conn    : 0
  max_conns       : 512000
  1. 检查了一下防火墙没打开
~$ sudo ufw status
WARN: /lib/ufw is group writable!
Status: inactive
  1. 18083端口只有我启动docker之后有在监听,没有其他进程使用。
~$ sudo lsof -i tcp:18083
COMMAND      PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
docker-pr 243421 root    4u  IPv6 4084073820      0t0  TCP *:18083 (LISTEN)

进程中TYPE:IPv6,这个不知道会不会有影响

在docker中使用curl指令访问端口及其返回信息如下

root@3878a84e93a9:/opt/emqx# curl 127.0.0.1:1883
curl: (52) Empty reply from server
root@3878a84e93a9:/opt/emqx# curl 127.0.0.1:8083
root@3878a84e93a9:/opt/emqx# curl 127.0.0.1:8084
curl: (1) Received HTTP/0.9 when not allowed

root@3878a84e93a9:/opt/emqx# curl 127.0.0.1:18083
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="static/emq.ico"><title>EMQX Dashboard
...

这个应该不影响,我按照你的步骤测试了下,并没有遇到你说的问题,我咨询下其他同事看看。

请问关于这个问题有合理的解释了吗?
虽然我再使用其他的服务用同样的emqx版本和部署流程搭建的broker是没有问题的,不过我想确认一下这个问题是否可以解释得通,因为我不确认它是否还会再出现。

目前并没有复现你遇到的情况,暂时猜测可能是你的网络相关设置导致的。

你是指启动docker时端口相关的设置还是服务器本身的网络设置?或者是本机与docker的映射出现了问题?

我也遇到了相同的问题,楼主最终找到原因了吗?
我在本地虚拟机上测试搭建好emqx并可以访问dashboard。
然后,部署到腾讯云服务器
docker pull emqx/emqx:5.1.4
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.1.4
使用MQTTX软件可以连接成功,但打开dashboard失败。

只是dashboard失败的话,大概率是18083的网络端口权限没开通,可以检查一下防火墙和腾讯云平台的端口配置。

已解决。
使用了宝塔面板,经常在面板中操作,里面的防火墙设置了18083不行,关闭都不行。
重装了操作系统,使用纯净版的ubunto,还是不行.
在腾讯云中找原因,发现腾讯云中也有防火墙设置。