N1盒子折腾日记 篇一:尝试在N1盒子上部署UBNT Unifi控制器
创作立场声明:本文的安装方法参考了国外博客Hiscorebob里的一些安装方法,在这里对原作者表示感谢~
Intro
闲来无事,这几天弄了一个斐讯的N1盒子来折腾~ 考虑到ARM64架构上跑基于Java的应用更有优势,顺便迁移一下Unifi控制器,之前的小服务器实在是拉不动这个基于Java的庞然大物。今天我就尝试一下折腾N1盒子,安装一下Java运行环境和Unifi控制器。
系统安装和更新源的更换在这里就不做更多的说明啦,有需要的话可以自行搜索站内的其他文章,方法和其他Linux系统大同小异,直接进入正题吧~
准备工作要做好~
在Linux下安装软件最麻烦的一点不是安装这个软件本身,而是解决这个软件的依赖问题。根据UBNT官方的说明,Unifi控制器可以在多个系统上运行,其中支持最好的就是Linux系统——因为官方的控制器Unifi Cloud Key实际上就是一个小型的Linux盒子。Unifi控制器的本体是基于Java运行的,在Linux下依赖mongo数据库保存有关信息。
知道这些以后,可以直接开始操作了,这里参考了国外的一些资料(主要是Hiscorebob的博客,原文是在Dietpi上安装Unifi控制器),在这里对原作者表示感谢~
这里演示采用的是基于Ubuntu内核的armbian以及apt包管理器,如果是基于centOS内核的可以使用yum install进行相关软件的安装。
首先是Linux安装软件之前的基本操作——更新软件源缓存,由于默认就在root用户下进行操作,直接执行下面的命令就行。
apt update(如果是centOS的话用yum makecache)
执行之后如果输出的是下面类似的信息,那就可以继续进行下一步操作;如果有报错信息的话就单独解决。
Java运行环境的安装
执行完成之后先安装Java8和相关依赖,执行命令,等待一阵子就可以安装好Java运行环境了。
apt install libcommons-daemon-java openjdk-8-jre-headless ca-certificates-java binutils jsvc -y
安装好后执行
java -version
如果显示的是下面的输出信息,那就证明Java运行环境部署正常,系统具备运行Java程序的环境了。
mongodb-server的安装(手动安装)
之后就是安装mongo数据库的时间了,由于mongo官方并没有适配N1盒子,但是mongo数据库本身是可以在arm架构上运行的,所以我们可以采用手动安装的方法或者给apt添加源的方法安装,两种方法都是可以运行的,可以根据自己的实际情况进行选择。 我个人比较习惯手动安装的方法,下面就演示一下手动的步骤~
首先是下载好对应版本的安装包,在官网可以找到,然后选择社区版下载:传送门
注意选择的时候选择tgz压缩包的版本下载,Platform那里选择和自己系统内核最接近的,比如我用的就是基于Ubuntu 18.04内核的armbian,所以选择图上的版本。下载好之后用WinSCP或者其他软件传输到N1盒子上,解压缩安装就行了。
在这里为了方便起见,重命名文件名为mongodb.tgz,接下来的演示都是基于这个文件名进行的。
首先执行
tar -xvzf mongodb.tgz && mv mongodb /usr/local/mongodb
执行完以后文件被解压并且被移动到/usr/local/mongodb目录下,之后我们进入这个目录
cd /usr/local/mongodb
进入目录之后我们需要建立几个文件夹用来存放配置文件之类的,执行
mkdir conf data log
然后给刚才的文件加上权限
chmod -R +x conf data log
之后配置环境变量
export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin
配置完成之后执行一下下面的命令使得新配置的环境变量生效
source /etc/profile
然后编写启动配置文件,执行
nano /usr/local/mongodb/conf/mongodb.conf
然后添加以下内容
dbpath = /usr/local/mongodb/data/db
logpath = /usr/local/mongodb/log/mongodb.log
port = 27017
fork = true
bind_ip = 0.0.0.0
然后按下Ctrl+X保存退出就行。
然后执行以下命令启动mongodb,如果没什么异常的话应该是直接在后台运行mongod守护进程了。
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongodb.conf
然后这个时候我们可以运行mongodb的shell程序检查一下是不是能连接上数据库,可以运行
/usr/local/mongodb/bin/mongo --host 127.0.0.1
如果显示的是下面的界面就代表安装成功了。
这里会出现一些WARNING的信息,主要是因为我们安装完毕后没有设置登陆方式和一些安全方面的内容,所以会有WARNING。如果只是内网用的话,可以忽略不计;但是要开放外网访问的话就需要设置一下验证之类的了。
确认无误后直接输入exit,然后回车就能退出了。
真正的主角现身啦~
以上的步骤结束以后就可以准备安装Unifi控制器的本体了,我们可以在官网下载控制器的安装包:传送门
不知道为什么ubnt国内的官网的版本比美国官网慢了一个小版本号,而且几个月过去了还没更新。。。这里直接去美国官网下载最新的6.2.26版,直接下载UniFi Network Application 6.2.26 for Debian/Ubuntu Linux and UniFi Cloud Key就行。
下载好后把unifi_sysvinit_all.deb传输到N1盒子上就行,然后执行
dpkg -i unifi_sysvinit_all.deb
如果安装的时候出现依赖问题的话,直接运行
apt install -f -y
修复一下依赖就可以,修复完成之后会继续完成上一次没完成的安装,耐心等一下就好~
安装完毕之后执行命令
systemctl status unifi
检查一下unifi服务是否正常运行了,如果显示的是下面的样子,就可以开始配置了。
按Ctrl+C退出,就可以关闭服务器了,服务端的配置结束,之后访问下面的地址就可以开始配置Unifi控制器,这一部分跟着向导走就行了。
配置地址:http://盒子IP:8080
配置完成的话应该可以看到下面这样的界面(默认是新版的界面,我改回旧版了)
至此配置就基本结束了。
一点点小的优化
Mongodb自启动配置
配置结束并不代表整个的安装流程的结束,我们之前用的是手动安装mongodb的模式,mongodb在这样的情况下并不会自动启动,所以我们得在rc.local里添加一些东西,先用nano编辑/etc/rc.local:
nano /etc/rc.local
然后添加一句
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/conf/mongodb.conf
保存退出就行了。
之后可以重启系统试试看,如果没有问题的话unifi服务和mongod应该是可以随着系统自动启动的。
Unifi控制器内存优化配置
Unifi控制器的默认内存占用比较高,N1盒子只有2G的RAM,如果留着默认值的话可能会导致内存占用太高,其他事情几乎干不了。这里我们可以优化一下Unifi控制器的内存占用。
用nano编辑system.properties,添加以下内容就行
unifi.G1GC.enabled=true
unifi.xms=256
unifi.xmx=256
这三句分别是启用Java高性能垃圾回收器,限制内存占用为256M。保存好之后可以执行
systemctl restart unifi
等一阵子新的设置就生效了,内存占用应该有明显改善。
正常运行的话N1盒子的CPU利用率应该不会很高的,几乎都在10%以下,之前在Windows上跑的时候占用了很多CPU的资源,相比之下还是ARM比较适合这种大型的Java程序。。。。
喵了个咪83
校验提示文案
值友6110966028
校验提示文案
嘿嘿嘿嘿嘿哈哈
校验提示文案
myhaba
校验提示文案
fightingsea
校验提示文案
值友9437509709
校验提示文案
piku
校验提示文案
灵KOYB
校验提示文案
MocII
校验提示文案
zw9566
校验提示文案
无形之刃
校验提示文案
值友2202572762
校验提示文案
Champstar
校验提示文案
pandasunny
校验提示文案
iguixi
校验提示文案
谜乱
校验提示文案
crysiswen
校验提示文案
值友6150583852
校验提示文案
值友6150583852
校验提示文案
值友2202572762
校验提示文案
crysiswen
校验提示文案
MocII
校验提示文案
灵KOYB
校验提示文案
piku
校验提示文案
值友9437509709
校验提示文案
fightingsea
校验提示文案
无形之刃
校验提示文案
myhaba
校验提示文案
嘿嘿嘿嘿嘿哈哈
校验提示文案
谜乱
校验提示文案
值友6110966028
校验提示文案
喵了个咪83
校验提示文案
iguixi
校验提示文案
pandasunny
校验提示文案
zw9566
校验提示文案
Champstar
校验提示文案