UNMS – Ubiquiti Network Management System em Debian 9

27 Março 2018 Por Adriano Afonso

Depois de trabalhar com as UniFi e o seu respectivo controlador, fiquei seriamente a aguardar por um controlador que fizesse algo similar para as Nano e para as Rocket, igualmente para poder observar o tráfego e fazer a manutenção mais facilmente. Esta semana estava exatamente a actualizar algumas antenas e reparei que no novo firmware fazia menção ao UNMS. Obviamente cliquei e fui pesquisar. Como não podia deixar de ser deixo-vos aqui as instruções de instalação desta ferramenta que já faz algumas coisas bastante úteis, mas que alerto que ainda se encontra em versão beta.

Servidor/Maquina Virtual

Para este tipo de servidores utilizo quase sempre uma distribuição Debian, neste caso a versão 9, que vou buscar à pagina de download do Debian, e preferencialmente as versões netinstall. Nesta implementação estou a utilizar um novo servidor VMWare ESXi 6.5. Aproveito para deixar já aqui uma dica, em muitas distribuições estão disponíveis os pacotes Open VM Tool que permitem a interacção do host directamente com o VMWare ESXi. Isto permite algumas funcionalidades extra de gestão, configuração e administração dos hosts. Em Debian, depois da instalação, basta fazer:

apt-get install open-vm-tools

Raspberry Pi v2/v3

Para esta implementação não estou a usar nenhum Raspberry, mas podem usar varias distros, as quais deixo abaixo:

Quem já me segue já sabe que para este tipo de solução é desaconselhável a utilização do Rasp v1. Para escrever para o SD, usar o Win32Disk Imager. Não esquecer de usar uma partição/formatar o SD em primeiro em FAT32.

Instalação Debian

Durante a instalação do Debian, nas opções de instalação de pacotes, aconselho apenas a instalação do servidor SSH, pois os pacotes de instalação do UNMS já trazem todas as dependências agregadas.

Locals

É sempre bom, antes de iniciar a configuração do servidor, dizer geograficamente onde é que ele está, para que as horas batam certo. Pessoalmente apenas reconfiguro a Time Zone (tzdata), pois prefiro que o SO esteja sempre em inglês.

dpkg-reconfigure locales
dpkg-reconfigure tzdata

Configuração de rede Debian

IP Fixo

Visto que este irá ser um servidor empresarial convém o mais possível que o IP seja fixo (até porque vão precisar dele fixo mais tarde). Usei a ajuda da Debian para o fazer, disponível aqui. Esta configuração é aplicável também em Ubuntu e todas as distros Debian based. Para definir o IP fixo, editar:

nano /etc/network/interfaces

E depois definir à eth0 os seguintes valores (substituir pelos vossos):
PS: No Ubuntu14.x e Debian 8/9 é provável que encontrem algum texto novo, colocar a configuração estática debaixo de: “source-directory /etc/network/interfaces.d”.

auto eth0
iface eth0 inet static
        address 10.0.0.55/24
        gateway 10.0.0.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 10.0.0.1
        dns-search <network.local>

Recordar que, podem incluir duas, ou mais, configurações de IP, especialmente quando estão a trabalhar em duas redes distintas. É só adicionar a partir de iface. A seguir convém sempre reiniciar a placa de rede para ela poder assumir o IP atribuído:

ifdown eth0
ifup eth0

DNS’s

Em alguns casos será também boa ideia definir os servidores de resolução de nomes:

nano /etc/resolv.conf

E adicionar os seguintes, OpenDNS e Google DNS, respectivamente alterado:

nameserver 208.67.222.222
nameserver 8.8.8.8
nameserver 208.67.220.220
nameserver 8.8.4.4

Preparar o servidor SSH

Debian8/9

Por defeito o servidor SSH não vem instalado. Se não o instalaram no inicio, para continuarem a configuração no conforto do “sofá” basta seguir a help do Debian e:

apt-get install openssh-server

E em principio já podem aceder remotamente a partir da vossa rede interna. No entanto, no Debian 8 o acesso SSH remoto está desactivado por defeito. Para o activar, aceder a

nano /etc/ssh/sshd_config

e depois alterar a secção de “Authentication” para:

LoginGraceTime 1m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
MaxSessions 5

Para quem como eu tive alguns problemas de acesso através do putty, em que passado algum tempo, a conexão era dropada, alterar, mais abaixo, no ficheiro de configuração (apenas descomentar):

TCPKeepAlive yes

E não esquecer depois de ativar o serviço no arranque e reiniciar o servidor de SSH

update-rc.d ssh enable
service ssh restart

Instalar o pacotes necessários

Para correr o script de instalação, é necessário primeiro instalar os pacotes curl e bash:

apt-get install curl bash htop
apt-get redis-server

Instalar o Controlador UNMS

Seguindo as instruções do sítio oficial, depois do servidor preparado, correr o seguinte script:

curl -fsSL https://unms.com/install > /tmp/unms_inst.sh && bash /tmp/unms_inst.sh

Este irá instalar o controlador e os respectivos pacotes necessários. Depois da instalação basta aceder ao servidor pelo IP via https://10.0.0.55. A pagina que é apresentada deverá em tudo ser similar a esta:

Basta agora apenas preencher os campos necessários, e a instância será criada automaticamente. Adicionar os equipamentos pode ser feio de duas maneiras, ou através do Discovery Manager, ou no próprio equipamento, através da introdução das chaves criadas durante a criação da instância. De qualquer das formas foi extremamente fácil a criação dos Sites, e respectiva atribuição dos equipamentos a cada site. A partir daí, passamos a aceder às estatísticas, bem como à possibilidade de actualizar os firmwares.

Optimizações

Adicionalmente, é recomendável realizar as seguintes alterações no servidor, segundo a Redis database documentation:

echo "vm.overcommit_memory=1" >>/etc/sysctl.conf
sysctl -p

Actualizações

Em principio, depois da versão 0.7.14 (estou a instalar a 0.11.3 e a versão 0.12 já está disponível online como demo) basta apenas utilizar o botão em Settings > Maintenance > Check for updates. No entanto, se foram mais curiosos como eu, está disponível na pagina do GitHub (que aconselho a consultar regularmente enquanto beta) o comando para a actualização manual:

curl -fsSL https://raw.githubusercontent.com/Ubiquiti-App/UNMS/master/install.sh > /tmp/unms_install.sh && bash /tmp/unms_install.sh --update

Troubleshooting

Já me aconteceu por diversas vezes, o servidor onde o UNMS está instalado ter-se desligado por falta de energia. Numa delas, o UNMS deixou de funcionar. Apenas me aparecia a seguinte mensagem na página:

UNMS is starting. This should not take more than a minute.

Muito provavelmente, se vos acontecer o mesmo, isto deve-se ao ficheiro de registo que ficou corrompido. Para resolver, correr os seguintes comandos, um a um. É provável que o reds-check-aof faça algumas perguntas!

~unms/app/unms-cli stop
redis-check-aof --fix ~unms/data/redis/appendonly.aof
~unms/app/unms-cli start

Nota para a instalação do redis-server nos pacotes necessários, que agora é bastante útil!