UNMS – Ubiquiti Network Management System em Debian 9
27 Março 2018Depois 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:
- Rasp V2: raspbian-ua-netinst (raspbian-ua-netinst-v1.x.x.img.bz2)
- Rasp V3: https://www.raspberrypi.org/downloads/raspbian/ [pi|raspberry]
- Rasp V2/3 ubuntu-16.04.2-preinstalled-server-armhf+raspi2.img.xz
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!