2. André (Luis Boni) Déo
Mestre em Gestão de Redes de Telecomunicações
Administrador de Redes – Gabinete do Reitor (Unicamp)
Professor Universitário há 10 anos
http://andredeo.blogspot.com
andredeo@gmail.com
@deoandre
3. Co-Autor do Livro de A a Zabbix
Revisor Técnico do Livro Gerência de configuração com Puppet
8. Overview SNMP
● O Modelo de Gerenciamento OSI/ISO divide as Tarefas/Processos de
Gerenciamento em cinco áreas funcionais:
9. Overview SNMP
● Gerenciamento de Falhas – Fault Management;
● Gerenciamento de Configuração – Configuration Management;
● Gerenciamento de Contabilização – Accounting Management;
● Gerenciamento de Desempenho – Performance Management;
● Gerenciamento de Segurança – Security Management.
10. Overview SNMP
● Ambiente Gerenciado: O que vamos monitorar.
● Mecanismo Gerenciado: Hardware ou Software que apresenta
necessidade e condições de ser gerenciado.
● Sistema de Gerenciamento de Redes: Grupo de ferramentas
utilizadas para monitoramento e controle da rede (Zabbix).
11. Overview SNMP
● SNMP (Simple Network Management Protocol) é um protocolo da
camada de aplicação que tem como objetivo principal coletar
informações de dispositivos gerenciáveis.
● Interações sem conexão:
● Mensagens em UDP/IP;
● Portas 161 e 162.
12. Overview SNMP
● Gerente: Servidor SNMP.
● Agente: Cliente SNMP.
● Operações de Gerenciamento: Ação de ler e escrever em variáveis da
MIB de cada Agente.
13. Overview SNMP
● MIB (Management Information Base): Base de Informações de
Gerenciamento
● MIB da Aplicação Gerente conterá a “relação mestre” para as
MIBs de todos os Agentes;
● MIB do Agente é uma coleção de variáveis de interesse, seus
valores dependem das funcionalidades do dispositivo e de quais
recursos ou serviços o agente deverá gerenciar.
16. Overview SNMP
● Informações de Gerenciamento:
● Armazenamento: São armazenadas em MIBs;
● Transporte: São transportadas através do protocolo SNMP;
● OIDs (Object IDentifiers): Nomes dos objetos gerenciados.
17. Overview SNMP
Exemplo de Objeto:
OID value: 1.3.6.1.2.1.1.4
OID description:
sysContact OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..255))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The textual identification of the contact person
for this managed node, together with information
on how to contact this person."
::= { system 4 }
18. Overview SNMP
Campo SYNTAX
Aceita alguns tipos específicos de aplicação:
• IpAddress: OCTET STRING com 4 bytes;
• Counter: inteiro 32 bits;
• TimeTicks: inteiro 32 bits (1/100 de segundo).
19. Overview SNMP
Campo ACCESS
Define a acessibilidade do objeto:
• read only: Somente Leitura;
• read-write: Leitura e Escrita;
• write-only: Somente Escrita;
• not-accessible: Não Acessível.
20. Overview SNMP
Campo STATUS
Situação do objeto na MIB:
• Mandatory: Devem ser implementados por todos os agentes e os
valores contidos devem ser válidos;
• Optional: Pode ou não ser implementado;
21. Overview SNMP
Campo STATUS
Situação do objeto na MIB:
• Deprecated: Foi substituído por novo objeto, mas ainda é válido;
se tornará obsoleto mais tarde;
• Obsolete: Não deve ser considerado.
24. Overview SNMP
Get-Next-Request: Recupera o valor de informações de gerenciamento
existentes após um determinado identificador; Pega o valor da próxima
variável.
30. MIBs
A implementação do protocolo SNMP em Servidores GNU/Linux se dá
geralmente através do net-snmp (http://www.net-snmp.org).
/usr/share/snmp/mibs: Diretório padrão das MIBs, a principio apenas as
default.
Carregar automáticamente todas as MIBs disponíveis no sistema:
# cat /etc/snmp.conf
mibs +ALL
31. MIBs
Eu preciso ter a MIB do equipamento para ler os dados!
# 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
32. # 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)
MIBs
33. # 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"
MIBs
34. MIBs
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::ifOperStatus.3 = No more variables left in
this MIB View (It is past the end of the MIB tree)
35. MIBs
Comando remoto em SNMP?
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.
36. # cat /etc/snmp/snmpd.conf
# /etc/snmp/snmpd.conf - Monitoramento utilizando um
comando customizado com OID personalizada
.
.
#extend OID Nome Commando Parâmetros
extend .1.1.1.1.1 Zabbix /bin/bash /etc/snmp/zabbix.sh
MIBs
43. LLD SNMP
SNMP and Zabbix: https://www.youtube.com/watch?v=fETB-lPosHU
32:03’ → 38:08
44. Processos Zabbix
zabbix_server.conf e zabbix_proxy.conf:
### Option: StartSNMPTrapper
# If 1, SNMP trapper process is started.
#
# Mandatory: no
# Range: 0-1
# Default:
# StartSNMPTrapper=0
45. Onde aprender mais SNMP?
● Apostila do Treinamento Gerenciamento de Redes com SNMP
https://andredeo.blogspot.com/2012/04/apostila-do-treinamento-
gerenciamento.html
● Nas RFCs
https://tools.ietf.org/html/
46. Onde aprender mais SNMP?
● Nas palestras oficiais das Conferencias da Zabbix SIA
https://www.youtube.com/user/ZabbixSIA/playlists
● Nas palestras oficiais do Monitorama
https://www.youtube.com/channel/UCQdmeNw4SE0-XeIu1EGNMsw
48. Dicas e macetes
● Habilite SNMP apenas se for utilizar;
● Utilize a versão 3 com criptografia sempre que possível;
● Evite requisições em lote (snmpbulkwak).