Contents Previous Next

Integração do SNMP com o MTMON

Para monitoração de Storages, Tape libraries e outros dispositivos, podemos usar o snmptrap.

Instalação do SNMP em servidor Centos, Fedora e Red-Hat

Instalar os pacotes net-snmp e net-snmp-utils usando o comando abaixo :

# yum install net-snmp net-snmp-utils

Após a instalação, configurar no arquivo /etc/snmp/snmptrapd.conf as linhas abaixo (se o arquivo não existir, pode criar) :

authCommunity log public
disableAuthorization yes
traphandle default /bin/bash /usr/local/Multitask/mtmon/bin/trapHandle.sh -debug

Reinicie o daemon do snmptrap :

# service snmptrapd restart

Não esqueça de alterar os script de inicialização do Linux, para que o start do SNMP seja executado no boot, usando o ntsysv ou o comando abaixo :

chkconfig --level 345 snmptrapd on

Instalação do SNMP em servidor SuSE Linux

Instalar o pacote net-snmp usando o comando abaixo :

# zypper install net-snmp

Após a instalação, configurar no arquivo /etc/snmp/snmptrapd.conf as linhas abaixo (se o arquivo não existir, pode criar) :

authCommunity log public
disableAuthorization yes
traphandle default /bin/bash /usr/local/Multitask/mtmon/bin/trapHandle.sh -debug

Incluir no arquivo /etc/init.d/boot.local para que o servidor de trap SNMP seja iniciado no boot :

/usr/sbin/snmptrapd -C -Lf /var/log/net-snmptrapd.conf -c /etc/snmp/snmptrapd.conf 

Execute o comando acima no prompt para iniciar o daemon do SNMP trap.

Verificação de funcionalidade

Execute o comando abaixo :

# snmptrap -v 1 -c public 127.0.0.1 '1.2.3.4.5.6' '192.193.194.195' 6 99 '55' 1.11.12.13.14.15  s "Teste de MTMON"

Consulte o arquivo /usr/local/Multitask/mtmon/log/trapHandle.AAAAMM.log e veja se foi incluida uma entrada semelhante :

23/05/2013 16:49:36 MTMON - snmptrap
localhost
UDP: [127.0.0.1]:55648->[127.0.0.1]
DISMAN-EVENT-MIB::sysUpTimeInstance 0:0:00:00.55
SNMPv2-MIB::snmpTrapOID.0 iso.2.3.4.5.6.0.99
iso.11.12.13.14.15 "Teste MTMON"
SNMP-COMMUNITY-MIB::snmpTrapAddress.0 192.193.194.195
SNMP-COMMUNITY-MIB::snmpTrapCommunity.0 "public"
SNMPv2-MIB::snmpTrapEnterprise.0 iso.2.3.4.5.6

Se o teste acima não resultar no log esperado, verificar se o SELINUX ou IPTABLES não estão bloqueando o acesso às portas configuradas.

Para configurar o SELINUX para permitir o recebimento de traps do SNMP, execute o comando abaixo :

# setenforce 0
# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /selinux
Current mode:                   permissive
Mode from config file:          enforcing
Policy version:                 24
Policy from config file:        targeted

Depois altere o arquivo /etc/selinux/config com a linha abaixo :

SELINUX=permissive

Assim, após o reboot, o servidor já estará com o SELINUX desativado.

Filtragem de mensagem

As mensagens recebidas de SNMP contém informações que devem ser ignoradas. Para isso, podemos filtrar estas mensagens da mesma forma que a usada no mtmon_checklog.conf.

O arquivo de configuração neste caso é o mtmon_snmp.conf.

Em casos mais complexos, podemos criar um script chamado /usr/local/Multitask/mtmon/bin/trapHandle.sh, que conterá a lógica para o tratamento do trap recebido.

Podemos neste script ajustar alguns parametros de criação do evento no MTMON, como no exemplo abaixo :

$C_grep -q -i \
        -e 'ErrorClass: 21; Number 07; Reference clock on' \
        -e 'ErrorClass: 21; Number 08; Reference clock off' \
        $tmpFile
[ $? = 0 ] && exit 0

case "$Nome" in
ibm*) LOCAL_options='--notifica aix' ;;
jve2k*) LOCAL_options='--notifica windows' ;;
esac

No exemplo acima temos 2 casos:

O script trapHandle.local recebe as seguintes variáveis :

O script trapHandle.local poderá gerar os seus próprios eventos e finalizar o processamento ou devolver o controle para o script trapHandle.sh que chamará o plugin mtmon_snmp.pl que processará a mensagem.


Contents Previous Next