Observium em Debian 9

5 Abril 2018 Por Adriano Afonso

À procura de uma solução de monitorização de redes, depois de já ter testado Zabbix (nota para a possibilidade de descarregar maquinas virtuais já pré-configuradas para testes), e com o intuito de ter uma ferramenta simples e fácil de usar, sem necessidade de grandes detalhes e relatórios profundos, optei desta vez por testar o Observium.

Actualmente o Observium consiste em duas versões principais, a versão Community e a versão Profissional. A versão Profissional é uma versão de subscrição e garante o acesso às mais recentes actualizações, bem como a uma linha de suporte. Já a versão Community, de utilização gratuita, apenas dá acesso às actualizações de 6 em 6 meses e sem acesso a uma serie de funcionalidades avançadas que neste momento não me interessam.

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

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.

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

Alguns pacotes que costumo instalar por defeito:

apt-get install htop

Instalar o Observium

Na documentação oficial está explicado que a instalação poderá ser feita de forma manual, ou apenas correndo um script. Visto que o objectivo é testar, decidi ir pela segunda opção e ver até que ponto o script me ajuda. Facto é que apenas me pede a password do root para o MySQL (excelente), e de resto a configuração é feita por si só. Depois de finalizar a instalação, apenas me pede para criar o username e a password de acesso ao sistema.

O processo até foi relativamente rápido para a quantidade de (512Mb) RAM e para o (2) processador que atribuí à maquina virtual.

wget http://www.observium.org/observium_installscript.sh
chmod +x observium_installscript.sh
./observium_installscript.sh

Depois da instalação, a adição dos dispositivos é relativamente simples, desde que o SNMP v2c esteja activo nos equipamentos.

Actualizar o Observium

Sempre que sair uma nova versão para a versão community, há que actualizar manualmente. Para o fazer, basta seguir o manual:

service cron stop
service apache2 stop
cd /opt
mv observium observium_old
wget -Oobservium-community-latest.tar.gz http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz
mv /opt/observium_old/rrd observium/
mv /opt/observium_old/*log* observium/
mv /opt/observium_old/config.php observium/

Não esquecer de actualizar o schema da base de dados:

/opt/observium/discovery.php -u

Se a actualização não é feita há mais de 12 meses, convém forçar a descoberta de todos os activos de rede:

/opt/observium/discovery.php -h all

Por fim, eliminar todos os ficheiros antigos:

rm observium-community-latest.tar.gz
rm -rf observium_old

E reactivar o cron e o Apache

service cron start
service apache2 start

Instalar o SNMP deamon (Debian) nos hosts GNU/Linux

Normalmente o Observium configura automaticamente o o servidor onde está instalado/localhost para que fique disponível nos Devices. Para os restantes hosts/devices, é necessário instalar o snmpd, que é a aplicação que permite o envio da informação SNMP de uma máquina GNU/Linux para a rede.

apt-get install snmpd

Depois de instalado, há que optimizar o ficheiro de configuração. O meu conselho é não mexer no actual e criar um novo:

mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.orig
touch /etc/snmp/snmpd.conf
nano /etc/snmp/snmpd.conf

Desta forma, com um ficheiro novo, basta introduzir as seguintes configurações:

###############################################################################
#
# AGENT BEHAVIOUR
#
# Listen for connections from the local system only
#agentAddress udp:127.0.0.1:161
# Listen for connections on all interfaces (both IPv4 *and* IPv6)
agentAddress udp:161,udp6:[::1]:161


###############################################################################
#
# Observium
#
rocommunity <community> 10.0.0.0/24
syslocation <your_locaion>
syscontact <your_email>

com2sec readonly default <community>

group <community> v1 readonly
group <community> v2c readonly
group <community> usm readonly
view all included .1 80
access <community> "" any noauth exact all none none

# This line allows Observium to detect the host OS if the distro script is installed
extend .1.3.6.1.4.1.2021.7890.1 distro /usr/bin/distro

# This line allows Observium to collect an accurate uptime
extend uptime /bin/cat /proc/uptime

# This line enables Observium's ifAlias description injection
#pass_persist .1.3.6.1.2.1.31.1.1.1.18 /usr/bin/ifAlias_persist

###############################################################################

Onde <communiy> deve ser alterado para o nome da community configurada. Por fim, devemos reiniciar o deamon para que as informações sejam actualizadas:

service snmpd restart

Se tiverem sugestões ou melhorias deixem em comentário.

Script /usr/bin/distro nos hosts GNU/Linux

Este script serve essencialmente para que o Observium mostre a versão de GNU/Linux correcta.

wget https://gitlab.com/joewholden/distroscript/raw/master/distro
mv distro /usr/bin/distro
chmod 755 /usr/bin/distro

Agora, o ficheiro de configuração o SNMP deamon já consegue ir buscar a informação necessária!

Testar SNMP trap para hosts GNU/Linux

Sempre que for necessário testar as conexões de SNMP nos hosts, pode ser executado o seguinte comando na maquina onde está instalada o Observium:

snmpwalk -v2c -c <community> <host/ip> .1.3.6.1.4.1.2021.7890.1

Onde <community> deve ser preenchido com a community configurada e o respectivo nome de host ou IP.

Alterar/Renomear um device

Ainda não é possível alterar na própria interface web, mas é extremamente simples alterar a partir da linha de comandos. Na versões mais recentes, basta aceder à pasta do Observium, e executar o seguinte comando:

cd /opt/observium/
php rename_device.php old_device_name new_device_name

Os *_devices_name, poderão ser simplesmente os IP’s dos equipamentos.

Activar o SNMP no VMware ESXi

Para activar o SNMP no VMware ESXi, pelo menos na versão 6.x que é a que estou a usar actualmente, primeiro há que activar o acesso SSH em Host > Manage > Services > TSM-SSH, seleccionar > Actions > Start. Agora basta efectuar o acesso via SSH e correr as seguintes linhas:

esxcli system snmp set -r
esxcli system snmp set -c <community>
esxcli system snmp set -p 161
esxcli system snmp set -L "<your_locaion>"
esxcli system snmp set -C <your_email>
esxcli system snmp set -e yes

Activar o SNMP no Windows Server 2012

Retirado deste tutorial, estão aqui os passos para configurar e activar o serviço de SNMP no Windows Server 2012.

Abrir o Menu Iniciar/Start > Administrative Tools > Server Manager > Manage > Add Roles and Features. A partir daqui, em Features, seleccionar > SNMP Services > e clicar em > Next.

Se o serviço for instalado com sucesso, Menu Iniciar/Start > Administrative Tools > Services > procurar o serviço > SNMP Service > clicar com o botão direito do rato e aceder a > Properties > [tab] Security > clicar em Add > seleccionar READ ONLY em Community rights e definir em Community Name o nome da community. Na [tab] Agent > pode ser feita a configuração do Contact e do Location.

Activar o SNMP no Windows Server 2008/R2

Retirado igualmente deste tutorial, estão aqui os passos para configurar e activar o serviço de SNMP no Windows Server 2008/R2.

Abrir o Menu Iniciar/Start > Administrative Tools > Server Manager > Manage > Add Roles and Features. A partir daqui, em Features, seleccionar > SNMP Services > e clicar em > Next.

Se o serviço for instalado com sucesso, Menu Iniciar/Start > Administrative Tools > Services > procurar o serviço > SNMP Service > clicar com o botão direito do rato e aceder a > Properties > [tab] Security > clicar em Add > seleccionar READ ONLY em Community rights e definir em Community Name o nome da community. Na [tab] Agent > pode ser feita a configuração do Contact e do Location.