Voc¨º poder¨¢ precisar utilizar o protocolo SNMP para monitorar dispositivos como impressoras, switches, roteadores ou nobreaks que, normalmente, possuem interfaces SNMP habilitadas e onde ¨¦ impratic¨¢vel manter um Áú»¢¶Ä²© Agent funcionando.
Para que o Áú»¢¶Ä²© Server esteja apto a receber dados coletados por um agente SNMP, ele dever¨¢ ser configurado com o suporte SNMP.
As coletas SNMP s?o feitas somente atrav¨¦s do protocolo UDP.
Desde o Áú»¢¶Ä²© 2.2.3 o Áú»¢¶Ä²© Server e o Áú»¢¶Ä²© Proxy tem a capacidade de coletar m¨²ltiplos dados de um dispositivo a partir de uma ¨²nica requisi??o. Isso afeta todos os tipos de itens SNMP (itens normais SNMP, itens SNMP com ¨ªndice din?mico, e o processo de autobusca SNMP) os tornando mais eficientes. Mais detalhes sobre coletas m¨²ltiplas podem ser obtidos. Desde o Áú»¢¶Ä²© 2.4 existe uma op??o chamada "Usar requisi??es em lote" em cada interfce SNMP que permite habilitar ou desabilitar requisi??es em lote naquela interface.
Desde o Áú»¢¶Ä²© 2.2.7 e o Áú»¢¶Ä²© 2.4.2 os processos do Áú»¢¶Ä²© Server e do Áú»¢¶Ä²© Proxy registram de forma similar respostas incorretas do SNMP:SNMP response from host "gateway" does not contain all of the requested variable bindings
Enquanto n?o forem mapeadas todas as situa??es problem¨¢ticas, elas s?o ¨²teis para identificar dispositivos cuja coleta em lote (bulk) pode ser desabilitada.
Desde o Áú»¢¶Ä²© 2.2 os processos do Áú»¢¶Ä²© Server e do Áú»¢¶Ä²© Proxy utilizam o par?metro de 'Timeout' nas requisi??es SNMP. Adicionalmente eles n?o realizam o reteste ap¨®s uma requisi??o que falhar (por 'timeout' ou credenciais erradas). Anteriormente era padr?o que a bibilioteca SNMP tivesse o 'timeout' de 1 segundo e 5 tentativas.
Desde o Áú»¢¶Ä²© 2.2.8 e o Áú»¢¶Ä²© 2.4.2 os processos do Áú»¢¶Ä²© Server e do Áú»¢¶Ä²© Proxy semre ir?o repetir pelo menos uma vez, seja atrav¨¦s do mecanismo interno da biblioteca SNMP ou atrav¨¦s do mecanismo interno de processamento em lote.
Se estiver monitorando dispositivos SNMPv3, certifique-se que o 'msgAuthoritativeEngineID' (tamb¨¦m conhecido como 'snmpEngineID' or "Engine ID") nunca seja repetido entre dois dispositivos. Conforme a (se??o 3.1.1.1) este valor deve ser ¨²nico para cada dispositivo.
Para come?ar a monitora??o atrav¨¦s do SNMP, utilize os passos a seguir:
Criar um host para o dispositivo que possui interface SNMP.
Informe o endere?o IP de sua interface. Voc¨º pode aproveitar um dos templates de SNMP (Template SNMP Device e outros) que s?o fornecidos junto com o Áú»¢¶Ä²©, eles ir?o adicionar automaticamente um conjunto de itens. Entretanto, o dispositivo que voc¨º deseja monitorar poder¨¢ n?o ser compat¨ªvel com eles. Clique em Adicionar para salvar o host.
As requisi??es SNMP n?o utilizam a porta do agente, ela ser¨¢ ignorada.
Descubra o OID que voc¨º deseja monitorar (normalmente na documenta??o do dispositivo).
Para obter uma lista dos OIDs do dispositivo o comando snmpwalk poder¨¢ ser utilizado (ele ¨¦ parte do pacote que voc¨º adicionou durante a instala??o do Áú»¢¶Ä²© Server) ou alguma ferramenta equivalente:
O '2c' utilizado no comando se refere ¨¤ vers?o do SNMP, caso seu dispositivo trabalhe, por exemplo, com a primeira vers?o do protocolo voc¨º pode substitui-lo por '1', para indicar que o 'snmpwalk' dever¨¢ utilizar esta vers?o do protocolo.
Voc¨º dever¨¢ ter como resultado uma lista contendo os nomes dos OIDs, seus tipos e ¨²ltimo valor de cada um. ? poss¨ªvel que o nome de comunidade configurada no dispositivo seja outro que n?o o 'public', neste caso voc¨º dever¨¢ descobrir o nome correto e utiliza-lo.
Voc¨º pode recorrer a esta lista para localizar qual nome de OID que voc¨º deseja monitorar, por exemplo, se voc¨º desejar monitorar o volume em bytes que ¨¦ recebido pela terceira porta do dispositivo, voc¨º poderia utilizar o nome de OID IF-MIB::ifInOctets.3
, conforme o exemplo a seguir:
Agora utilizaremos o comando snmpget para descobrir o n¨²mero associado ao nome de OID selecionado ('IF-MIB::ifInOctets.3'):
Observe que o ¨²ltimo n¨²mero neste nome de OID ¨¦ o n¨²mero da porta que voc¨º deseja monitorar. Mais detalhes em ¨ªndices din?micos do SNMP.
O resultado do comando deve ser algo similar ao texto a seguir:
Novamente, o ¨²ltimo n¨²mero no OID ¨¦ o n¨²mero da porta.
Alguns fabricantes, como a 3COM, preferem nomear as suas portas come?ando no n¨²mero 100, exemplos: porta 1 = porta 101, porta 3 = porta 103. A CISCO (e a maioria dos fornecedores) usa uma sequ¨ºncia simples, exemplo: port 3 = 3.
Alguns dos OIDs mais utilziados s?o traduzidos automaticamente para a representa??o num¨¦rica de forma nativa no Áú»¢¶Ä²©.
No ¨²ltimo exemplo o tipo do valor recebido ¨¦ "Counter32", que corresponde internamente ao tipo ASN_COUNTER. A lista completa de tipos suportados ¨¦: ASN_COUNTER, ASN_COUNTER64, ASN_UINTEGER, ASN_UNSIGNED64, ASN_INTEGER, ASN_INTEGER64, ASN_FLOAT, ASN_DOUBLE, ASN_TIMETICKS, ASN_GAUGE, ASN_IPADDRESS, ASN_OCTET_STR e ASN_OBJECT_ID (desde o Áú»¢¶Ä²© 2.2.8 ou 2.4.3). Estes tipos correspondem, respectivamente, ¨¤: "Counter32", "Counter64", "UInteger32", "INTEGER", "Float", "Double", "Timeticks", "Gauge32", "IpAddress", "OCTET STRING", "OBJECT IDENTIFIER" na saida do snmpget, mas tamb¨¦m podem ser apresentados como "STRING", "Hex-STRING", "OID" ou outro.
Criar o item de monitora??o.
Volte ao Áú»¢¶Ä²© e clique no link Itens da linha do Host SNMP que voc¨º criou mais cedo. Dependendo da associa??o que voc¨º fez, ou n?o fez, com algum template voc¨º poder¨¢ visualizar uma lista com ou sem itens. Neste tutorial estamos trabalhando assumindo que voc¨º criar¨¢ manualmente os itens a partir das informa??es conseguidas pelo 'snmpwalk' e 'snmpget'. Clique em Criar item. No formul¨¢rio de novo item, infomre o nome e se certifique que o campo 'Interface do host' est¨¢ com a configura??o da interface SNMP cadastrada. Informe o nome de comunidade (normalmente 'public') e o n¨²mero do OID que se deseja monitorar, por exemplo: .1.3.6.1.2.1.2.2.1.10.3
Infome a porta SNMP como sendo a 161 e 'chave' como algo significativo, por exemplo: SNMP-InOctets-Bps. Informe o multiplicador que se deseja trabalhar, al¨¦m de informar o 'Intervalo de atualiza??es' e o 'Per¨ªodo de reten??o do hist¨®rico' se voc¨º desejar usar um valor diferente do padr?o. Defina o 'Tipo de informa??o' para Num¨¦rico (fracion¨¢rio) e o campo 'Armazenar valor' para "Delta (altera??es por segundo)" (isso ¨¦ importante, sem esta configura??o voc¨º ter¨¢ o acumulado de valores e n?o ¨¦ isso que se deseja).
Agora salve o item e acesse Monitoramento ¡ú Dados recentes para visualizar a coleta de dados!
Observe que existem op??es espec¨ªficas para o SNMPv3:
Par?metro | Descri??o | |
---|---|---|
Nome do contexto | Informe o nome para identificar o item na subrede SNMP. Suportado desde o Áú»¢¶Ä²© 2.2. Macros de usu¨¢rio s?o aceitas neste campo. | |Nome de seguran?a// |
Infomre o nome de seguran?a. Macros de usu¨¢rio s?o aceitas neste campo. |
N¨ªvel de seguran?a | Selecione o n¨ªvel de seguran?a: noAuthNoPriv - n?o ser¨¢ utilizado nenhum protocolo de privacidade ou autentica??o AuthNoPriv - protocolo de autentica??o ser¨¢ utilizado, de privacidade n?o AuthPriv - ambos os protocolos ser?o utilizados |
|
Protocolo de autentica??o | Selecione o tipo de protocolo de autentica??o - MD5 ou SHA. | |
Senha autentica??o | Informe a frase de autentica??o. Macros de usu¨¢rio s?o aceitas neste campo. |
|
Protocolo de privacidade | Select privacy protocol - DES or AES. | |
Frase privada | Entre om a frase privada. Macros de usu¨¢rio s?o aceitas neste campo. |
Desde o Áú»¢¶Ä²© 2.2, os protocolos SHA e AES s?o suportados para a autentica??o e privacidade SNMPv3, em adi??o ao MD5 e ao DES que j¨¢ eram suportados.
Exemplo geral:
Par?metro | Descri??o |
---|---|
Comunidade | public |
SNMP OID | 1.2.3.45.6.7.8.0 (ou .1.2.3.45.6.7.8.0) |
Chave | <Texto ¨²nico que ser¨¢ utilizado como refer¨ºncia nas triggers> Por exemplo: "my_param". |
Observe que o SNMP OID poder¨¢ ser o n¨²mero ou seu nome. Em alguns casos pode ser que o Áú»¢¶Ä²© n?o consiga resolver o n¨²mero a partir do nome, para estas situa??es recomenda-se utilizar o 'snmpget' para fazer esta resolu??o antes de configurar o item:
Monitora??o atrav¨¦s de SNMP s¨® ¨¦ poss¨ªvel se, durante a configura??o do bin¨¢rio do Áú»¢¶Ä²© Server ou Áú»¢¶Ä²© Proxy, tiver sido utilizado o par?metro --with-net-snmp.
Monitorando o tempo de carga (uptime):
Par?metro | Descri??o |
---|---|
Comunidade | public |
SNMP OID | MIB::sysUpTime.0 |
Chave | router.uptime |
Tipo de informa??o | Num¨¦rico (fracion¨¢rio) |
Unidade | uptime |
Multiplicador | 0.01 |
A partir do Áú»¢¶Ä²© 2.2.3 os processos do Áú»¢¶Ä²© Server e Áú»¢¶Ä²© Proxy tem a capacidade de solicitar v¨¢rios dados atrav¨¦s de SNMP em uma ¨²nica requisi??o. Esta caracter¨ªstica afeta diversos tipos de itens SNMP:
Todos os itens SNMP, com igual intervalo de coletas, s?o agendados para serem coletados juntos. Para os primeiros dois tipos de itens a fila agrupa at¨¦ 128 itens ao mesmo tempo, enquanto as regras de autobusca s?o processadas de forma individual.
No n¨ªvel mais baixo, dois tipos de opera??es s?o feitas para obter os valores: obter m¨²ltiplos objetos e varrer ¨¢rvore OID.
Para a a??o de "obten??o", uma requisi??o 'GetRequest-PDU' ¨¦ utilizada com at¨¦ 128 solicita??es. Para a "varredura", uma requisi??o "GetNextRequest-PDU" ser¨¢ utilizada com o SNMPv1 e uma 'GetBulkRequest' com "max-repetitions" definido como 128 ser¨¢ utilizada com SNMPv2 e SNMPv3.
Os benef¨ªcios de se utilizar o processamento em lote de grandes volumes de itens SNMP s?o listados a seguir:
Entretanto, existem limita??es t¨¦cnicas que fazem com que nem todos os dispositivos sejam capazes de retornar 128 valores por requisi??o. Algumas vezes o dispositivo pode retornar com a mensagem "(1) tooBig" ou n?o responder a todos uma vez que a quantidade ¨¦ superior ao limite do equipamento.
Para definir o m¨¢ximo de objetos para se solicitar a um dispositivo o Áú»¢¶Ä²© In order to find an optimal number of objects to query for a given device, Áú»¢¶Ä²© uses the following strategy: * A primeira requisi??o solicita 1 valor apenas; * Se obteve sucesso, solicita 2 valores; * Se obteve sucesso, solicita 3 valores; * Se obteve sucesso, solicita 4 valores; Obtendo sucesso nas tentativas as pr¨®ximas consultas requisitar?o, respectivamente: 6, 9, 13, 19, 28, 42, 63, 94, 128 (multiplica??o do ¨²ltimo valor bem sucedido por 1,5).
Uma vez que o dispositivo n?o consiga dar uma resposta adequada a uma quantidade de itens simult?neos (por exemplo, 42 valores), o Áú»¢¶Ä²© faz duas coisas.
Primeiro, ele reduz o tamanho do lote que falhou pela metade (no caso 21). Se o dispositivo responder de forma adequada, ser¨¢ feito o ajuste para 28 itens (fator anterior). Entretanto, se a falha persistir, o Áú»¢¶Ä²© voltar¨¢ a solicitar os itens 1 por 1. Se o dispositivo voltar a falhar, o problema n?o ser¨¢ de quantidade de valores simult?neos.
A segunda coisa que ele far¨¢ para os lotes de itens subsequentes ¨¦ come?ar com o ¨²ltimo n¨²mero de valores obtidos com sucesso (28 em nosso exemplo) e continuar¨¢ solicitando valores somando 1 ao limite de requisi??es simult?neas at¨¦ encontrar o limite. Quando descobrir o limite exato o Áú»¢¶Ä²© n?o mais far¨¢ estes testes e passar¨¢ a trabalhar somente com o limite descoberto neste dispositivo.
Se grandes consultas falharem com esta quantidade de valores solicitados, pode significar uma de duas coisas. Os crit¨¦rios exatos que o dispositivo utiliza para limitar a quantidade de valores n?o pode ser descoberta, mas tentamos aproximar o valor. Assim a primeira possibilidade ¨¦ que este ¨¦ o n¨²mero de valores simult?neos que representa algo pr¨®ximo do limite real pois, normalmente, a resposta ¨¦ menor do que o limite. A segunda possibilidade ¨¦ que um pacote UDP, em qualquer dire??o, simplesmente se perdeu. Por estas raz?es o Áú»¢¶Ä²© considera que a consulta falhou e reduz o limite de valores simult?neos para tentar trabalhar numa faixa mais confort¨¢vel para o dispositivo mas, (a partir do 2.2.8) somente at¨¦ duas tentativas.
No exemplo acima, se uma consulta com 32 requisi??es simult?neas falhar, o Áú»¢¶Ä²© ir¨¢ reduzir o contador para 31. Se falhar novamente, reduz para 30. Entretanto, o Áú»¢¶Ä²© n?o ir¨¢ reduzir de 30 pois entender¨¢ que a falha se deve a perda de pacotes UDP e n?o por limite do dispositivo.
Se um dispositivo n?o conseguir trabalhar com requisi??es em lote por outras raz?es, e a eur¨ªstica acima n?o funcionar, desde o Áú»¢¶Ä²© 2.4 existe uma op??o chamada "Usar requisi??es em lote" em cada interface que poder¨¢ ser desativada.