EMQ集群搭建

## 1. EMQ安裝搭建

- https://docs.emqx.cn/broker/v2.0/

### 1.1 EMQ 下載安裝

```bash

# 注: 對(duì)應(yīng)系統(tǒng)版本二進(jìn)制包

# [https://www.emqx.com/zh/downloads?product=broker](https://www.emqx.com/zh/downloads?product=broker)

sudo mkdir -p /opt/apps; sudo cd /opt/apps

sudo curl -OL https://www.emqx.com/zh/downloads/broker/2.3.11/emqttd-centos7-v2.3.11.zip

sudo unzip emqttd-*.zip

sudo ln -snf /opt/apps/emqttd-* /usr/lib/emqtt-current

```

### 1.3 安裝配置

- 創(chuàng)建外部日志、數(shù)據(jù)目錄

```bash

sudo mkdir -p /mnt/disk1/emqtt

sudo cp -r emqttd/data/* /mnt/disk1/emqtt/? # 重要(erlang opt 的數(shù)據(jù)庫(kù))璧针,否則起不來(lái)

```

- 修改日志及數(shù)據(jù)目錄: `$EMQ_HOME/bin/emqttd`

- 將 `RUNNER_LOG_DIR=$RUNNER_ROOT_DIR/logs` 改為? `RUNNER_LOG_DIR=/mnt/disk1/log/emq`

- 將 `RUNNER_DATA_DIR=$RUNNER_ROOT_DIR/data` 改為 `RUNNER_DATA_DIR=/mnt/disk1/emq/data`

### 1.4 運(yùn)行配置

- 配置集群策略嚷炉、節(jié)點(diǎn)、日志目錄等探橱,`$EMQ_HOME/etc/emq.conf`申屹,以節(jié)點(diǎn)1為例:

- [EMQ FQDN 節(jié)點(diǎn)](https://docs.emqx.cn/broker/v2.0/cluster.html#emq-r2-分布集群設(shè)計(jì))

```conf

## 集群相關(guān)配置

cluster.name = emqcl

## Default: manual

cluster.discovery = static? # 【重要】默認(rèn) mamual 模式

## Node list of the cluster.

cluster.static.seeds = emq@10.111.0.111,emq@10.111.0.112? # 這里簡(jiǎn)單簡(jiǎn)單實(shí)用IP的方式,也可使用FQDN

## Default: emqx@127.0.0.1

node.name = emq@10.111.0.111? #【重要】

## 日志相關(guān)配置

## Crash dump log file.

node.crash_dump = /mnt/disk1/log/emq/crash.dump

## Sets the log dir.

log.dir = /mnt/disk1/log/emq

## The file where error logs will be writed to.

log.error.file = /mnt/disk1/log/emq/error.log

## The file for crash log.

log.crash.file = /mnt/disk1/log/emq/crash.log

```

### 1.5 服務(wù)配置

```bash

sudo cat <<-'EOF' >/etc/systemd/system/emqtt.service

#!/bin/bash

# Copyright (c) 2017 ~ 2025, the original author wangl.sir individual Inc,

# All rights reserved. Contact us wanglsir<wangl@gmail.com, 983708408@qq.com>

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an "AS IS" BASIS,

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

# See the License for the specific language governing permissions and

# limitations under the License.

#

# @see: https://docs.emqx.cn/broker/v2.0/

# @see: https://blogs.wl4g.com/archives/705

[Unit]

Description=EMQTT Server

After=network.target

[Install]

WantedBy=multi-user.target

[Service]

Type=forking

User=root

Group=root

ExecStart=/usr/lib/emqtt-current/bin/emqttd start

ExecReload=/bin/kill -s HUP

StandardOutput=journal

StandardError=journal

# Cannot set too large to exceed the maximum system limit, otherwise an error will be reported: 'Failed at

# step LIMITS spawning: Operation not permitted'. e.g: /etc/security/limits.conf

LimitNOFILE=65535

LimitNPROC=65535

LimitCORE=infinity

TimeoutStartSec=10

TimeoutSec=600

Restart=always

PermissionsStartOnly=true

RuntimeDirectoryMode=755

PrivateTmp=false

EOF

sudo systemctl daemon-reload

sudo systemctl enable emqtt

sudo systemctl restart emqtt

sudo systemctl status emqtt

sudo journalctl -u emqtt -f # logs

```

### 1.6 重啟EMQ集群

拷貝到各個(gè)節(jié)點(diǎn)隧膏,然后啟動(dòng).

```bash

ssh collect-node1 "sudo mkdir -p /mnt/disk1/"

scp -r /mnt/disk1/emq/ collect-node2:/mnt/disk1/

scp -r /opt/apps/emqtt* collect-node2:/opt

ssh collect-node1 "sudo ln -snf /opt/apps/emqtt* /usr/lib/emqtt-current"

```

- 驗(yàn)證是否啟動(dòng)成功

```bash

netstat -nlpt|grep 1883

```

若看到如圖附件2則說(shuō)明啟動(dòng)成功哗讥,然后在瀏覽器訪問(wèn)控制臺(tái)(可使用chrome代理內(nèi)網(wǎng)訪問(wèn)):`http://127.0.0.1:18083/#/`

- 從 EMQ 控制臺(tái)查看到集群所有節(jié)點(diǎn),最終效果見(jiàn)附件3胞枕;

### 1.7 若在1.6.1中未啟動(dòng)成功杆煞,則將$EMQ_HOME/data目錄拷貝至 /mnt/disk1/emq/data

(因?yàn)樵诖薲ata目錄中有一些emq啟動(dòng)必須加裝項(xiàng)配置)

## EMQ 客戶端(傳感器/物聯(lián)網(wǎng)設(shè)備)認(rèn)證

step1:新增賬號(hào)test

```bash

vim $EMQ_HOME/etc/plugins/emq_auth_username.conf

auth.user.1.username = admin

auth.user.1.password = public

auth.user.2.username = test

auth.user.2.password = test

```

step2:禁止匿名認(rèn)證(重要)

vim $EMQ_HOME/etc/emq.conf

將 `mqtt.allow_anonymous = true` 改為 `mqtt.allow_anonymous = false`

step3:命令行加載emq_auth_username插件(也可以在Dashdoard/pugins啟用加載,此插件對(duì)應(yīng) 配置文件$EMQ_HOME/etc/plugins/emq_auth_username.conf? )

```bash

sh $EMQ_HOME/bin/emqttd_ctl plugins load emq_auth_username

```

step4:? 重啟EMQ(貌似若restart后任不生效腐泻,則執(zhí)行kill -9? 然后啟動(dòng)即可)

```bash

sh $EMQ_HOME/bin/emqttd restart

```

附件1:

![](https://blogs.wl4g.com:443/wp-content/uploads/2021/07/emq1-300x179.webp)

附件2:

![](https://blogs.wl4g.com:443/wp-content/uploads/2021/07/emq2-300x21.webp)

附件3:

![](https://blogs.wl4g.com:443/wp-content/uploads/2021/07/emq3-300x144.webp)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末决乎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子派桩,更是在濱河造成了極大的恐慌构诚,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铆惑,死亡現(xiàn)場(chǎng)離奇詭異唤反,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)鸭津,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門彤侍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人逆趋,你說(shuō)我怎么就攤上這事盏阶。” “怎么了闻书?”我有些...
    開(kāi)封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵名斟,是天一觀的道長(zhǎng)脑慧。 經(jīng)常有香客問(wèn)我,道長(zhǎng)砰盐,這世上最難降的妖魔是什么闷袒? 我笑而不...
    開(kāi)封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮岩梳,結(jié)果婚禮上囊骤,老公的妹妹穿的比我還像新娘。我一直安慰自己冀值,他們只是感情好也物,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著列疗,像睡著了一般滑蚯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上抵栈,一...
    開(kāi)封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天告材,我揣著相機(jī)與錄音,去河邊找鬼古劲。 笑死斥赋,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的绢慢。 我是一名探鬼主播灿渴,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼洛波,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼胰舆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蹬挤,我...
    開(kāi)封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缚窿,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后焰扳,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體倦零,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年吨悍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扫茅。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡育瓜,死狀恐怖葫隙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情躏仇,我是刑警寧澤恋脚,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布腺办,位于F島的核電站,受9級(jí)特大地震影響糟描,放射性物質(zhì)發(fā)生泄漏怀喉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一船响、第九天 我趴在偏房一處隱蔽的房頂上張望躬拢。 院中可真熱鬧,春花似錦灿意、人聲如沸估灿。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)馅袁。三九已至,卻和暖如春荒辕,著一層夾襖步出監(jiān)牢的瞬間汗销,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工抵窒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留弛针,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓李皇,卻偏偏與公主長(zhǎng)得像削茁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子掉房,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355