物聯網交流羣:651219170
功能說明
運行的環境(系統版本,mosquitto版本,redis版本)
1.centos6.5 及以上.
2.mosquitto-1.4.9
3.redis 3.0.1
部署準備(外部依賴)
1.openssl
2.c-ares-devel
3.libc-ares2
4.libuuid-devel
5.gcc
6.cmake
7.hiredis
配置文件的說明
部署環境搭建步驟
0.安裝redis
wget http://download.redis.io/releases/redis-3.0.1.tar.gz
tar xzf redis-3.0.1.tar.gz
cd redis-3.0.1
make && make install
mkdir /etc/redis && cp redis.conf /etc/redis/6379.conf
後臺啓動
vim /etc/redis/6379.conf
修改文件
daemonize yes
修改 redis 的啓動腳步
vim utils/redis_init_script
把原註釋替換爲
#!/bin/sh
# chkconfig: 2345 90 10
# description: Redis is a persistent key-value database
#
設置開機啓動
cp utils/redis_init_script /etc/init.d/redisd
chkconfig redisd on
1.安裝外部依賴
1.1 yum 安裝依賴
yum install openssl-devel
yum install c-ares-devel
yum install libuuid-devel
yum install gcc*
1.2 編譯安裝hiredis客戶端
1.2.1 下載tar.gz文件
wget https://github.com/redis/hiredis/archive/v0.13.3.tar.gz
1.2.2 解壓編譯安裝
tar -zxvf v0.13.3.tar.gz
cd hiredis-0.13.3
make -j8
make install
2.安裝mosquitto實例:
2.1 下載tar.gz文件
wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
2.2 解壓
tar -zxvf mosquitto-1.4.9.tar.gz
2.3 進入安裝目錄
cd mosquitto-1.4.9
2.4 編譯
sudo make
sudo make install
2.5 加載.so.1文件
vim /etc/ld.so.conf.d/user.conf
加入內容:
/usr/local/lib
加載以上配置
ldconfig
2.6 更新動態鏈接庫
sudo ldconfig
2.7 增加mosquitto用戶
adduser mosquitto
2.8 測試mosquitto安裝
啓動mosquitto
mosquitto -c mosquitto.conf
使用"功能驗證建議"中的工具進行連接測試
3.安裝redis認證插件
3.1 下載tar.gz
wget https://github.com/jpmens/mosquitto-auth-plug/archive/0.1.2.tar.gz
3.2 解壓,修改配置
tar -zxvf 0.1.2.tar.gz
cd mosquitto-auth-plug-0.1.2
cp config.mk.in config.mk
3.3 編輯config.mk指定開啓redis,mosquitto源碼目錄
vim config.mk
修改如下配置項:
BACKEND_MYSQL ?= no
BACKEND_REDIS ?= yes
MOSQUITTO_SRC = /usr/local/mosquitto-env/mosquitto-1.4.9/src
編譯
make
3.4 mosquitto目錄下創建plugin目錄
mkdir plugin
3.5 將插件中的.so文件複製到plugin目錄下
cp auth-plug.so mosquitto/plugin
3.6 修改mosquitto的配置文件
vim mosquitto.conf
修改如下配置項
allow_anonymous false
在這一行下新增
auth_plugin /usr/local/mosquitto-env/mosquitto-1.4.9/plugin/auth-plug.so
auth_opt_backends redis
auth_opt_redis_host 192.168.25.162
auth_opt_redis_port 6379
auth_opt_redis_userquery GET %s
3.7 在認證插件中使用np.c文件生成密碼(例如,密碼是admin的加密方式如下)
./np -p admin
得到輸出: PBKDF2$sha256$901$lzMxwbgXSoPWfG3U$J/UVQWp39U8AQWpaOZhO/Rf6hlqVogm0
3.8 將用戶名和加密後的密碼添加到redis中
set admin PBKDF2$sha256$901$lzMxwbgXSoPWfG3U$J/UVQWp39U8AQWpaOZhO/Rf6hlqVogm0
相關注意事項
功能驗證建議
1.根據如下url下載不同操作系統下的mosquitto圖形化客戶端工具
https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/1.1.1/
2. 新建連接
連接地址:tcp://url:port(默認端口爲1883)
輸入用戶名密碼 admin admin
連接,連接成功即完成搭建