在 Rocky Linux 8|AlmaLinux 8 | 上安装 EMQX MQTT 代理在 Rocky Linux 8|AlmaLinux 8 | 上安装 EMQX MQTT 代理在 Rocky Linux 8|AlmaLinux 8 | 上安装 EMQX MQTT 代理在 Rocky Linux 8|AlmaLinux 8 | 上安装 EMQX MQTT 代理
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

在 Rocky Linux 8|AlmaLinux 8 | 上安装 EMQX MQTT 代理

发表 admin at 2025年2月28日
类别
  • 未分类
标签

MQTT 代理是一种使用发布-订阅模式的轻量级消息交换协议。也就是说,MQTT消息代理接收客户端发布的消息,根据主题进行过滤,分发给订阅者。 EMQX 是一个用 Erlang 编写的开源、弹性 MQTT 消息代理。

EMQX 适合海量客户端,具有快速、低延迟的消息路由。由于以下原因,它是高度优选的:

  • 分布式集群:快速低延时的消息路由,单集群支持上万条路由。
  • 稳定承载大规模 MQTT 客户端连接,单服务器节点支持 200 万个连接。
  • 全面的物联网协议支持,包括 MQTT、MQTT-SN、CoAP、LwM2M 和其他基于 TCP/UDP 的专有协议。
  • 高度可扩展:支持自定义插件,例如身份验证等功能。

EMQX 的功能包括:

  • HTTP消息发布接口支持
  • MQTT/WebSocket/SSL 支持
  • TCP/SSL 连接支持
  • 客户端在线状态查询及订阅支持
  • 支持手动、mcast、dns、etcd、k8s等集群发现方式
  • Redis、MySQL、PostgreSQL、MongoDB、HTTP 身份验证集成
  • 支持多种身份验证方法,例如 LDAP、密码等
  • 完整的 MQTT V3.1/V3.1.1 和 V5.0 协议规范支持
  • MQTT 代理桥接支持
  • CoAP协议支持
  • MQTT-SN协议支持
  • 按分区配置节点
  • 连接和消息速率限制
  • 自动网络分区修复
  • 多服务器节点集群(Cluster)
  • 基于客户端 ID、IP 地址、用户名的访问控制 (ACL)

本指南深入介绍了如何在 Rocky Linux 8|AlmaLinux 8|CentOS Stream 8 上安装 EMQX MQTT Broker。本指南涵盖的安装方法包括:

  • 使用脚本自动化方式
  • 从 YUM 存储库安装
  • 在 Docker 容器中运行

入门。

在我们深入研究这个问题之前,强烈建议您将系统软件包更新到最新的稳定版本。

sudo yum update -y

您还需要使用以下命令安装一些其他软件包:

sudo yum install curl vim

在 Rocky Linux 8|AlmaLinux 8|CentOS Stream 8 上安装 EMQX MQTT 代理

本指南深入演示了每种概述的安装方法。

方法一-一键安装shell脚本

有一种在 Linux 系统上自动安装 EMQX 的方法。这使得在 Rocky Linux 8|AlmaLinux 8|CentOS Stream 8 上安装 EMQX MQTT Broker 变得非常容易。

使用以下命令下载并运行脚本:

curl https://repos.emqx.io/install_emqx.sh | sudo bash

示例输出:

Adding repo from: https://repos.emqx.io/emqx-ce/redhat/centos/8/emqx-ce.repo
emqx-stable                                     1.0 MB/s | 819 kB     00:00    
Dependencies resolved.
================================================================================
 Package      Architecture   Version               Repository              Size
================================================================================
Installing:
 emqx         x86_64         4.3.5-1.el8           emqx-ce-stable          22 M

Transaction Summary
================================================================================
....
Running transaction
  Preparing        :                                                        1/1 
  Running scriptlet: emqx-4.3.5-1.el8.x86_64                                1/1 
  Installing       : emqx-4.3.5-1.el8.x86_64                                1/1 
  Running scriptlet: emqx-4.3.5-1.el8.x86_64                                1/1 
Created symlink /etc/systemd/system/multi-user.target.wants/emqx.service → /usr/lib/systemd/system/emqx.service.

  Verifying        : emqx-4.3.5-1.el8.x86_64                                1/1 
Installed products updated.

Installed:
  emqx-4.3.5-1.el8.x86_64                                                       

Complete!
EMQ X install success

启动并启用该服务。

sudo systemctl start emqx && sudo systemctl enable emqx

检查服务的状态。

$ systemctl status emqx
● emqx.service - emqx daemon
   Loaded: loaded (/usr/lib/systemd/system/emqx.service; enabled; vendor preset>
   Active: active (running) since Sun 2022-03-06 04:20:10 EST; 4s ago
 Main PID: 3044 (run_erl)
    Tasks: 36 (limit: 23544)
   Memory: 116.1M
   CGroup: /system.slice/emqx.service
           ├─3044 /usr/lib/emqx/erts-11.1.8/bin/run_erl -daemon //var/lib/emqx/>
           ├─3073 emqx -P 2097152 -Q 1048576 -e 256000 -spp true -A 4 -IOt 4 -S>
           ├─3352 erl_child_setup 1048576
           ├─3402 sh -s disksup
           ├─3403 /usr/lib/emqx/lib/os_mon-2.6.1/priv/bin/memsup
           ├─3404 /usr/lib/emqx/lib/os_mon-2.6.1/priv/bin/cpu_sup
           ├─3437 inet_gethost 4
           └─3438 inet_gethost 4

方法 2 – 从 YUM 存储库安装 EMQX

EMQX 包也可以从 YUM 包管理器安装。首先安装依赖项。

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

安装后,设置 EMQX 存储库

sudo yum-config-manager --add-repo https://repos.emqx.io/emqx-ce/redhat/centos/8/emqx-ce.repo

现在从存储库安装最新版本的 EMQX。

sudo yum install emqx

示例输出:

Dependencies resolved.
================================================================================
 Package      Architecture   Version               Repository              Size
================================================================================
Installing:
 emqx         x86_64         4.3.5-1.el8           emqx-ce-stable          22 M

Transaction Summary
================================================================================
Install  1 Package

Total download size: 22 M
Installed size: 39 M
Is this ok [y/N]: y

您也可以安装特定版本的 EMQX。首先列出可用的版本。

$ yum list emqx --showduplicates | sort -r
Installed Packages
emqx.x86_64                     4.3.5-1.el8                      emqx-ce-stable 
emqx.x86_64                     4.3.5-1.el8                      @emqx-ce-stable
emqx.x86_64                     4.3.4-1.el8                      emqx-ce-stable 
.... 

继续并安装所需的版本,例如 4.3.4

sudo yum install emqx-<version>

安装后,启动并启用该服务。

sudo systemctl start emqx && sudo systemctl enable emqx

检查服务的状态。

$ systemctl status emqx
● emqx.service - emqx daemon
   Loaded: loaded (/usr/lib/systemd/system/emqx.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2022-03-06 04:24:27 EST; 7s ago
 Main PID: 32792 (run_erl)
    Tasks: 32 (limit: 36433)
   Memory: 110.8M
   CGroup: /system.slice/emqx.service
           ├─32792 /usr/lib/emqx/erts-11.1.8/bin/run_erl -daemon //var/lib/emqx/emqx_erl_pipes/[email / /var/log/emqx exec "/usr/bin>
           ├─32814 emqx -P 2097152 -Q 1048576 -e 256000 -spp true -A 4 -IOt 4 -SDio 8 -- -root /usr/lib/emqx -progname usr/bin/emqx -- -hom>
           ├─33067 erl_child_setup 1048576
           ├─33106 sh -s disksup
           ├─33107 /usr/lib/emqx/lib/os_mon-2.6.1/priv/bin/memsup
           ├─33108 /usr/lib/emqx/lib/os_mon-2.6.1/priv/bin/cpu_sup
           ├─33137 inet_gethost 4
           └─33138 inet_gethost 4

方法 3 – 在 Docker 容器中运行 EMQX

在 docker 容器中运行 EMQX 是最简单的方法。对于那些想要避免安装依赖项的麻烦的人来说,这是要走的路。

在继续之前,请确保您的系统上已安装 Docker。这可以借助以下指南来完成:

  • 如何在 Linux 系统上安装 Docker CE

安装 Docker 后,将您的系统用户添加到 docker 组。

sudo usermod -aG docker $USER
newgrp docker

启动并启用 docker。

sudo systemctl start docker && sudo systemctl enable docker

现在拉取 EMQX 镜像。有两种方法可以拉取 EMQX 镜像。

  • 来自 Docker Hub。
docker pull emqx/emqx

查看拉取的docker镜像

$ docker images
REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
emqx/emqx    latest    445050b808a9   41 hours ago   193MB
  • 从 emqx.io 或 Github 手动加载
wget -O emqx-docker.zip https://www.emqx.com/en/downloads/broker/v<VERSION-URL>.zip
unzip emqx-docker.zip
docker load < emqx-docker-vVERSION-*

使用该镜像,您可以在 Docker 容器中运行 EMQX。首先,创建持久数据路径。

sudo mkdir -p /emqx-data/emqx.lic

将 SELinux 设置为宽容模式。

sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

使用以下命令在 docker 容器中运行 EMQX:

docker run -d \
  --name emqx \
  -p 1883:1883 \
  -p 8081:8081 \
  -p 8083:8083 \
  -p 8883:8883 \
  -p 8084:8084 \
  -p 18083:18083 \
  -v /emqx-data/emqx.lic:/opt/emqx/etc/emqx.lic \
  emqx/emqx

请记住标记正确的图像名称。这里我使用了 emqx/emqx:v4.0.0 docker 镜像

检查容器的状态。

$ docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED         STATUS         PORTS                                                                                                                                                                                                                                                                                              NAMES
b8ed3f30ee24   emqx/emqx:v4.0.0   "/usr/bin/docker-ent…"   7 seconds ago   Up 5 seconds   4369/tcp, 5369/tcp, 6369/tcp, 0.0.0.0:1883->1883/tcp, :::1883->1883/tcp, 0.0.0.0:8081->8081/tcp, :::8081->8081/tcp, 0.0.0.0:8083-8084->8083-8084/tcp, :::8083-8084->8083-8084/tcp, 8080/tcp, 0.0.0.0:8883->8883/tcp, :::8883->8883/tcp, 0.0.0.0:18083->18083/tcp, :::18083->18083/tcp, 11883/tcp   emqx

使用以下命令管理容器:

##Stop EMQX
docker stop emqx

##Start EMQX
docker start emqx

或者使用 Docker-compose,您还可以设置一个简单的静态 EMQX 集群。创建docker-compose.yml文件

vim docker-compose.yml

将以下行添加到文件中:

version: '3'

services:
  emqx1:
    image: emqx/emqx
    environment:
    - "EMQX_NAME=emqx"
    - "EMQX_HOST=node1.emqx.io"
    - "EMQX_CLUSTER__DISCOVERY=static"
    - "[email , [email "
    - "EMQX_ZONE__EXTERNAL__RETRY_INTERVAL=2s"
    - "EMQX_MQTT__MAX_TOPIC_ALIAS=10"
    volumes:
        - /emqx-data/emqx.lic:/opt/emqx/etc/emqx.lic
    healthcheck:
      test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
      interval: 5s
      timeout: 25s
      retries: 5
    networks:
      emqx-bridge:
        aliases:
        - node1.emqx.io

  emqx2:
    image: emqx/emqx
    environment:
    - "EMQX_NAME=emqx"
    - "EMQX_HOST=node2.emqx.io"
    - "EMQX_CLUSTER__DISCOVERY=static"
    - "[email , [email "
    - "EMQX_ZONE__EXTERNAL__RETRY_INTERVAL=2s"
    - "EMQX_MQTT__MAX_TOPIC_ALIAS=10"
    volumes:
        - /emqx-data/emqx.lic:/opt/emqx/etc/emqx.lic
    healthcheck:
      test: ["CMD", "/opt/emqx/bin/emqx_ctl", "status"]
      interval: 5s
      timeout: 25s
      retries: 5
    networks:
      emqx-bridge:
        aliases:
        - node2.emqx.io

  client:
    image: python:3.7.2-alpine3.9
    depends_on:
      - emqx1
      - emqx2
    tty: true
    networks:
        emqx-bridge:

networks:
  emqx-bridge:
    driver: bridge

使用以下命令启动集群:

docker-compose -p emqx up -d

访问 EMQX 仪表板

EMQX 仪表板是一个通过浏览器访问的 Web 应用程序。仪表板默认启用并在端口 18083 上运行。

允许端口通过防火墙。

sudo firewall-cmd --add-port=18083/tcp --permanent
sudo firewall-cmd --add-port=8083/tcp --permanent
sudo firewall-cmd --add-port=1883/tcp --permanent
sudo firewall-cmd --add-port=8081/tcp --permanent
sudo firewall-cmd --add-port=8883/tcp --permanent
sudo firewall-cmd --add-port=8084/tcp --permanent
sudo firewall-cmd --reload

使用 URL http://IP_Address:18083 访问仪表板

默认登录凭据是;用户名 - admin 和密码 - public。可以在文件 /etc/plugins/emqx_dashboard.conf 中进行编辑。成功登录后,您将获得 EMQX 仪表板。

在这里,您可以在上午选项卡下监控服务器和客户端。在这里,您可以获得概述、客户数据等

配置客户端后,您可以发送和接收消息。在本指南中,我们将服务器设置为客户端。导航至工具>Web 套接字选项卡。创建与客户端的新连接。提供如下凭据并连接到客户端。

连接后,订阅主题并向客户端发送消息。

尝试向配置的客户端发送消息。发送和接收的消息将如下所示。

现在您可以在客户选项卡下查看客户信息。

此时,您可以查看节点的主题

您还可以查看主题订阅。

瞧!

这标志着关于如何在 Rocky Linux 8|AlmaLinux 8|CentOS Stream 8 上安装 EMQX MQTT 代理的精彩指南的结束。我希望这对您来说很重要。

查看更多:

  • 在 CentOS 8 上安装 Taiga 项目管理工具
  • 学习 Rabbitmq/Activemq/Zeromq 的书籍
  • 在 Rocky Linux 8|AlmaLinux 8 上配置 Vsftpd FTP 服务器
©2015-2025 Norria support@alaica.com