作为一名电子科大物联网专业大二的学生,由于参与的智能寝室项目需要利用mqtt传输传感器数据,因此希望能够在云服务器上搭建属于自己的mqtt服务器。通过咨询周围的大佬,得知阿里云服务器不仅稳定安全,同时也对大学生提供“飞天加速计划·高校学生在家实践”活动,因此通过本活动获得了一台ECS用于项目实验。
本次选用的镜像为CentOS 8.5 64位官方镜像,使用mosquitto搭建mqtt服务器。在正式使用SSH连接服务器进行安装之前需要注意:mqtt协议通常使用1883/8883端口进行未加密/加密数据传输,因此在服务器所属的安全组中要添加相应的端口,例如本次我添加了1883端口:
在使用ssh远程登陆到系统后,我们就可以开始安装了。
- 使用yum获得mosquitto
在命令行中输入下列命令寻找市场中是否有mosquitto软件包
yum search mosquitto
通过查找可以发现,市场中存在mosquitto与mosquitto-devel两款软件包,在这里,我们选择全部安装:
yum install mosquitto mosquitto-devel
在确认之后系统便会自动安装。不大一会,当出现“Installed:……Complete!”字样时mosquitto便安装好了。
- 配置mosquitto
安装完成之后,所有配置文件会被放置于/etc/mosquitto/目录下,其中最重要的就是Mosquitto的配置文件,即mosquitto.conf,其中详细说明了配置参数。在本次设置中,我将自己的设置另外单独保存在my.conf文件中,其内容如下:
#my config file for mosquitto# General configuration#允许匿名登录allow_anonymous true# Listeners#监听1883端口,无此命令无法与外网通信listener 1883# Logging#在窗口中输出日志log_dest stdou #选择日志记载内容log_type debug log_type error log_type warning log_type notice log_type information log_type subscribe log_type unsubscribe #在日志前添加指定格式时间戳log_timestamp_format %Y-%m-%dT%H:%M:%S #将日志写入指定文件log_dest file /var/log/mosquitto.log
其中需要注意的是,程序本身无法自动生成日志文件,需要在指定位置主动创建一个空文件,同时要设置写权限,防止程序出现权限不足,无法启动的现象。
vi /var/log/mosquitto.log #保存并退出后更改权限设定chmod666 mosquitto.log #如果不设置,在程序启动后会出现下列字样:Error: Unable to open log file /var/log/mosquitto.log for writing.
完成上列操作后,服务器就可以使用了,输入指令后,服务器便会在屏幕上打印出日志,此时,我们便可使用其他设备通过公网ip进行通信了。
mosquitto -c /etc/mosquitto/my.conf #-c指令用于使用指定配置文件,使用-d命令可以在后台运行
用过这次安装过程,我掌握了linux中对文件的操作,多进程处理等多种方法。在这次安装过程中让我体会最大的是linux开放的特性使得软件的安装方式更多地依赖于用户对于系统的理解,需要手动操作的部分也成倍增加。对于刚刚接触linux的菜鸟来说,充分利用网络资源,多逛逛开发者社区、各大论坛是解决种种问题的一大法宝。