今天给家里的Unifi设备安装控制器,由于笔记本硬盘容量有限,又要保证系统不会因为日志过多而崩溃,所以在分区时就只给根分区分了5G,而给/var/log分了10G
结果,在安装完Unifi之后,发现死活打开不了控制页面。查看端口又发现所有的Unifi端口正在正常监听中。
打开日志,就看到如下几行:
[2018-05-14 20:23:48,054] <launcher> INFO db - waiting for db connection... [2018-05-14 20:23:48,554] </launcher><launcher> INFO db - Connecting to mongodb://127.0.0.1:27117 [2018-05-14 20:26:34,824] <db -server> ERROR system - [exec] error, rc=100 [2018-05-14 20:26:34,824] </db><db -server> INFO db - DbServer stopped</db></launcher>
所以以为是mongodb的问题。一查看,果然监听端口列表里面并没有mongodb,于是试着重启mongodb,还是失败。
于是,又在mongodb的日志里面发现了这几行:
2018-05-14T20:23:49.218+0800 [initandlisten] ERROR: Insufficient free space for journal files 2018-05-14T20:23:49.218+0800 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
原来是mongodb要求最低3GB的空余空间,不然直接拒绝启动。而我的根分区安装完系统后只有不到2G的空间了。
于是,又重新给/var/lib/mongodb挂载了一个5G的分区,这次重启mongodb的确是没有问题了,mongodb默认的27017已经开始监听了。
于是又试着重启unifi,谁知道居然还是不行,一看日志,居然还是最开始那四条错误:
[2018-05-14 20:23:48,054] <launcher> INFO db - waiting for db connection... [2018-05-14 20:23:48,554] </launcher><launcher> INFO db - Connecting to mongodb://127.0.0.1:27117 [2018-05-14 20:26:34,824] <db -server> ERROR system - [exec] error, rc=100 [2018-05-14 20:26:34,824] </db><db -server> INFO db - DbServer stopped</db></launcher>
这也真是见了鬼了,再仔细一看,为什么连的数据库端口是27117?mongodb的默认端口不是27017么?
再一看,/var/log/unifi下面居然还有一个mongod.log,赶紧打开看一看,然后就发现了这个:
2018-05-14T20:23:49.218+0800 [initandlisten] ERROR: Insufficient free space for journal files 2018-05-14T20:23:49.218+0800 [initandlisten] Please make at least 3379MB available in /usr/lib/unifi/data/db/journal or use --smallfiles
我去,原来Unifi Controller居然是自己创建了一个mongodb实例放在/var/lib/unifi/db下面,然后用日志里面的软链指过来。
这要不是我一向惜空间为金,谁还能发现这么一个问题。。。。