O documento discute o uso do SNMP (Simple Network Management Protocol) com Zabbix e Net-SNMP. Ele explica como configurar o Net-SNMP para ler dados via SNMP, visualizar dados de diferentes formas e usar máscaras de filtro. Também mostra templates SNMP comuns no Zabbix e dicas para solucionar problemas de leitura de dados.
3. Quem sou eu
André (Luis Boni) Déo
Fundador da Comunidade Zabbix Brasil
Co-Autor do Livro de A a Zabbix
Administrador deRedes, Professor Universitário, Membro da Comunidade
OpenSource.
@deoandre andredeo@gmail.com
http://andredeo.blogspot.com
4. Por que o Zabbix
não lê meus dados?
Início
Você
consegue
ler os
dados via
snmpget?
Revise a
configuração
do
equipamento
Revise a
configuração
do item no
Zabbix
Fim
NãoSim
5. Estrutura do Net-SNMP
/etc/snmpd.conf
Arquivo de configuração principal do Net-Snmp:
Se você especificar um objeto nesse arquivo, como por exemplo,
syslocation, syscontact, sysdescr, etc. Esse objeto se tornará ro (read only).
Man snmpd.conf
/etc/snmp.conf
Arquivo de configurações do ambiente:
Definições de acesso do cliente;
Definições de diretórios padrões;
Definições de mibs;
Definições de saídas padrões de comandos.
Man snmp.conf
6. Estrutura do Net-SNMP
~/.snmp/snmp.conf
Arquivos de configurações do ambiente:
Definições de acesso do cliente;
Definições de saídas padrões de comandos.
Man snmp.conf
/var/lib/net-snmp/snmpd.conf
No momento em que o serviço é iniciado, carrega a configuração do net-
snmpd.conf e as mibs disponíveis no sistema:
Usuários SNMP V3 são armazenados nesse arquivo de forma
criptografada;
Número de vezes que o serviço foi (re)inicializado;
Serial para controlar alterações no arquivo.
9. # snmpget -v2c -c public localhost sysContact.0
SNMPv2-MIB::sysContact.0 = STRING: root@localhost
# snmpget -On -v2c -c public localhost sysContact.0
.1.3.6.1.2.1.1.4.0 = STRING: root@localhost
Eu preciso ter a MIB
do equipamento para ler os dados!
10. # snmpget -v2c -c public localhost sysContact.0
MIB search path:
/root/.snmp/mibs:/usr/share/snmp/mibs
Cannot find module (SNMPv2-MIB): At line 12 in
/usr/share/snmp/mibs/IF-MIB.txt
.
.
.
sysContact.0: Unknown Object Identifier (Sub-id not
found: (top) -> sysContact)
Eu preciso ter a MIB
do equipamento para ler os dados!
11. # snmpget -v2c -c public localhost
.1.3.6.1.2.1.1.4.0
MIB search path:
/root/.snmp/mibs:/usr/share/snmp/mibs
Cannot find module (SNMPv2-MIB): At line 12 in
/usr/share/snmp/mibs/IF-MIB.txt
.
.
.
SNMPv2-SMI::mib-2.1.4.0 = STRING: "root@localhost"
Eu preciso ter a MIB
do equipamento para ler os dados!
12. Mensagem ao final do
snmpwalk. O que significa?
# snmpwalk -v2c -c public localhost
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks:
(159) 0:00:01.59
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: enp0s3
IF-MIB::ifDescr.3 = STRING: enp0s8
IF-MIB::ifAdminStatus.1 = INTEGER: up(1)
IF-MIB::ifAdminStatus.2 = INTEGER: up(1)
IF-MIB::ifAdminStatus.3 = INTEGER: up(1)
IF-MIB::ifOperStatus.1 = INTEGER: up(1)
IF-MIB::ifOperStatus.2 = INTEGER: up(1)
IF-MIB::ifOperStatus.3 = INTEGER: up(1)
IF-MIB::ifOperStatus.3 = No more variables left in
this MIB View (It is past the end of the MIB tree)
13. Existe algum tipo de filtro (Included/Exclued ou Máscara)bloqueando parte
das informações
Mensagem ao final do
snmpwalk. O que significa?
14. # snmpget -v 3 -u user1 -n "" -x DES -l authNoPriv -
a MD5 -A senhateste localhost sysContact.0
SNMPv2-MIB::sysContact.0 = STRING: root@localhost
Utilizo apenas SNMP v3
na minha rede, estou seguro!
28. Comandos SNMP Uteis
snmptranslate
# snmptranslate -On -Ib -Td sysUptime
.1.3.6.1.2.1.1.3
sysUpTime OBJECT-TYPE
-- FROM SNMPv2-MIB
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The time (in hundredths of a second)
since the
network management portion of the system was
last
re-initialized."
::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1)
system(1) 3 }
-On -Ib-Td: Exibe o OIDnumérico de um objetoe sua descrição
30. -Td: Exibea descrição deum OID
Comandos SNMP Uteis
snmptranslate
# snmptranslate -Td .1.3.6.1.2.1.1.3
SNMPv2-MIB::sysUpTime
sysUpTime OBJECT-TYPE
-- FROM SNMPv2-MIB
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION "The time (in hundredths of a second)
since the
network management portion of the system was
last
re-initialized."
::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1)
system(1) 3 }
34. Configurações Uteis
~./.snmp/snmp.conf
# cat snmp.conf
defversion 3
defsecurityname initial
defsecuritylevel authPriv
defauthtype MD5
defauthpassphrase setup_passphrase
defprivtype DES
defprivpassphrase setup_passkey
Permite definir todos os parâmetros de autenticação.
35. # snmpget localhost sysContact.0
# snmpget -v 3 -u initial -n "" -x DES -X
setup_passkey -l authPriv -a MD5 -A setup_passphrase
localhost sysContact.0
Sintaxe dos comandos sem o snmp.conf:
Sintaxe dos comandos com o snmp.conf:
Configurações Uteis
~/.snmp/snmp.conf
37. Configurações Uteis
extend
# cat /etc/snmp
# /etc/snmp/snmpd.conf v3 devidamente configurado -
Monitoramento utilizando um comando customizado com OID
personalizada
.
.
#extend OID Nome comando
Parametros
extend .1.1.1.1.1 Zabbix /bin/bash
/etc/snmp/zabbix.sh
extend – Permite executar um comando com passagem de parâmetros, assim
como o exec, porém me permite especificar em qual OID as informações serão
armazenadas.
39. Configurações Uteis
Máscaras
Máscaras devem ser informadas no formato Hexadecimal;
O caractereseparador da mascara pode ser “.” ou “:”;
A cada bit na máscara indica seos OIDs correspondentes devem coincidir(1)
ou não (0).
40. Configurações Uteis
Máscaras
Um exemplo visual:
.1.3.6.1.2.1.2.2.1.1.1 == interfaces.ifTable.ifEntry.ifIndex.1
1 1 1 1 1 1 1 1 1 0 1 (00000) == (ff.a0)
o índice (the index)
a coluna (the column)
ifEntry
ifTable
42. Visualizando os dados
de maneira variada
# snmpget -Of -v 3 -u initial -n "" -x DES -l
authNoPriv -a MD5 -A setup_passphrase localhost
ifDescr.2
.iso.org.dod.internet.mgmt.mib-
2.interfaces.ifTable.ifEntry.ifDescr.2 = STRING:
enp0s3
Exibição Padrão
-Of: Exibindoo OID CompletoNonimal
# snmpget -v 3 -u initial -n "" -x DES -l authNoPriv
-a MD5 -A setup_passphrase localhost ifDescr.2
IF-MIB::ifDescr.2 = STRING: enp0s3
43. Visualizando os dados
de maneira variada
# snmpget -Oq -v 3 -u initial -n "" -x DES -l
authNoPriv -a MD5 -A setup_passphrase localhost
ifDescr.2
IF-MIB::ifDescr.2 enp0s3
-On: Exibindo o OID Completo Numérico
-Oq: Exibeo OID abreviado;Apenaso finaldoOID
# snmpget -On -v 3 -u initial -n "" -x DES -l
authNoPriv -a MD5 -A setup_passphrase localhost
ifDescr.2
.1.3.6.1.2.1.2.2.1.2.2 = STRING: enp0s3
44. Visualizando os dados
de maneira variada
-Oqn: Exibeo OID abreviado;Apenaso final do OID na forma numérica
# snmpget -Oqn -v 3 -u initial -n "" -x DES -l
authNoPriv -a MD5 -A setup_passphrase localhost
ifDescr.2
.1.3.6.1.2.1.2.2.1.2.2 enp0s3
45. SNMP no Zabbix
Templates
TemplateSNMPGeneric– Itens
sysContact – SNMPv2-MIB
sysDescr –SNMPv2-MIB
sysLocation – SNMPv2-MIB
sysName– SNMPv2-MIB
sysUpTime – SNMPv2-MIB
TemplateSNMPGeneric– Discoveryrules
Não se aplica.
TemplateSNMPGeneric– Item prototypes
Não se aplica.
58. Arquivo
Zabbix SNMP
trapper
(Lê e
interpreta os
dados)
Existe
Interface
Compatível
?
NãoSim
Somente o “IP” ou o “DNS” da interface do host
será utilizado durante a pesquisa.
SNMP no Zabbix: Traps
21 1
59. Existi um
item de
“snmptrap.
fallback”
?
NãoSim
Log de traps
não
corresponden
tes
Existi um
item
compatível
com
snmptrap
[regexp]
NãoSim
O dado da
trap será
enviado para
todos os itens
compatíveis
o valor será
repassado
para ele
SNMP no Zabbix: Traps
21
Pode ser habilitado através da opção
“Registrar traps SNMP não correspondentes”
disponível em:
Administração → Geral → Outros.
Fim
60. Quero saber mais
Apostilado Treinamento Gerenciamento deRedescom SNMP - André Déo
Zabbixand SNMP on Linux– Andrew Nelson – ZabbixConference 2015
GoingDown! Using Low Level Discoveries in Practice –Raymond Kuiper –
Zabbix Conference 2013
Configuração SNMP Trap no Zabbix– ThayaneViana