Relevância e necessidade do SNMP [fechado]

1

Editar: Estou no processo de projetar uma ferramenta de monitoramento baseada em Java que enviará "verificações de saúde" periódicas de um aplicativo Java implementado em um cluster de servidores GlassFish. Eu estou tentando descobrir o melhor protocolo para esta ferramenta de monitoramento para enviar informações de volta para o servidor de monitoramento.

Após um esforço inicial de pesquisa da minha parte, parece que o SNMP é apenas um protocolo para aplicativos do tipo monitor comunicarem o "status de integridade" de algo (uma parte de uma rede, um servidor, um cluster, um aplicativo, etc.) para o resto da rede.

  • Se o acima estiver incorreto, corrija-me !!!

Assumindo que a generalização é mais ou menos precisa, minha próxima pergunta é: por que isso é um protocolo!?!?

Na era dos protocolos REST / SOAP / TCP, por que existe a necessidade de um protocolo padronizado que só se encaixa em um tipo de aplicação (monitoramento)? Em outras palavras, se eu sou um desenvolvedor designado para construir uma nova ferramenta de monitoramento que periodicamente pesquisa um servidor e informa sobre sua CPU e memória disponível, que vantagens o SNMP me dá apenas enviando para uma API RESTful via plain? ole HTTP?

Estou certo estou perdendo alguma coisa aqui - eu só preciso de alguém para ajudar a conectar os pontos! Obrigado antecipadamente!

    
por pnongrata 07.04.2012 / 04:47

3 respostas

3

a necessidade de um protocolo padronizado ... Porque é padronizado? Também é anterior ao HTTP (1988 vs 1991). REST teria sido com HTTP 1.0, 1996. Uma vez que algo está em uso, muitas vezes é mais fácil ficar com ele, mesmo que apenas por suporte legado.

Em resposta à sua edição: Você deseja / precisa de outras ferramentas preexistentes para poder se comunicar com seu aplicativo? Se não, você pode usar o método que quiser, mas precisará usar suas próprias ferramentas de monitoramento. Se sim, você precisará usar algo que já é comumente suportado, como SNMP.

    
por 07.04.2012 / 04:56
1

Longe de ser um especialista nisso, eu sugeriria o seguinte:

O SNMP possui uma Base de Informações de Gerenciamento fixa contendo hierarquias de classes de informação (por exemplo, largura de banda real das interfaces). Assim, você pode adicionar facilmente nós à rede que está monitorando, sem muita configuração.

Ainda mais algumas máquinas às quais você pode não ter acesso. (Por causa de permissões ou porque são roteadores simplistas.) Nesse caso, o SNMP será a maneira mais fácil de obter e definir parâmetros de configuração.

    
por 24.04.2012 / 18:43
1
RESTful API via plain 'ole HTTP

Isso tem as seguintes dependências:

  • um servidor HTTP
  • um processo de backend invocado por esse servidor que mantém o estado
  • recursos suficientes de memória, largura de banda e armazenamento para lidar com todas as possíveis tentativas de conexão simultâneas sobre o que o dispositivo deve estar fazendo (presumimos que você queira que seu dispositivo faça outras coisas além de responder a solicitações de status)
  • e as subdependências de todas as estruturas necessárias para implementar o acima, se as estruturas forem usadas (ou seja, se o processo de back-end for escrito em Perl, serão necessários mais recursos, etc.)

O que precede é trivial hoje em dia (e muitos dispositivos, etc. possuem servidores HTTP construídos atualmente), mas quando o SNMP foi desenvolvido não foi.

O SNMP é muito mais simples e pode ser facilitado por dispositivos incorporados com poucos recursos (pense em comutadores antigos, etc.), e o software que responde a solicitações SNMP pode ser escrito com menos possibilidades de vulnerabilidades de segurança.

    
por 24.04.2012 / 20:12

Tags