Dúvidas com SNMP?

E ai pessoal,

Estou precisando desenvolver um software de gerenciamento SNMP em java. Nunca desenvolvi nada relacionado a isso, e pelo que olhei por ai, achei muitos poucos exemplos que eu pudesse entender bem o funcionamento. O computador pelo qual vou precisar monitorar vai possuiu MIBS privadas, ou seja, alguns agentes (serviços) vão poder responder seus estados de funcionamento e enviar traps para o gerenciador.

A API SMNP4J, pelo jeito parece ser legal, mesmo pq preciso que rode na V3 que já possui nível criptografia na comunidade do SNMP.
Alguém que já trabalhou com isso poderia me ajudar postando alguns exemplos ou dicas de como fazer?

Desde já agradeço…

vlw

Olá Cego,

Eu ja trabalhei por um tempo com SNMP, as empresas de telecom usam muito para verificação em rede. Bem, de inicio posso te indicar uma aplicação feita ate mesmo em java é o "AdventNet Agent Toolkit Java Edition - MIB Editor 6 ", voce pode criar trap’s e até mesmo codifica-las, ou seja, pode interpretálas, monta toda a árvora correspondente.
Exemp:

– File Name : (nomeProjeto)
– Date : Thu Sep 11 10:59:25 BRT 2008
– Author : AdventNet Agent Toolkit Java Edition - MIB Editor 6

RelatWap DEFINITIONS ::= BEGIN
IMPORTS
MacAddress, TimeInterval, TruthValue, TestAndIncr, RowStatus, DisplayString, StorageType, DateAndTime
FROM SNMPv2-TC
DisplayString
FROM RFC1213-MIB
enterprises, MODULE-IDENTITY, OBJECT-TYPE, TimeTicks, IpAddress, Gauge32, Counter32, Counter64, NOTIFICATION-TYPE
FROM SNMPv2-SMI;

telefonica	MODULE-IDENTITY
	LAST-UPDATED	"200809101518Z"
	ORGANIZATION	"OI,VIVO,CLARO,TIM"--ou qualquer outro nome
	CONTACT-INFO	"Enter Contact Information"
	DESCRIPTION		"MIB do nomeProjeto"
	REVISION		"200809101518Z"
	DESCRIPTION		"Versao Inicial"
	::=  {  enterprises  12511  }

org	OBJECT IDENTIFIER
	::=  {  iso  3  }

dod	OBJECT IDENTIFIER
	::=  {  org  6  }

internet	OBJECT IDENTIFIER
	::=  {  dod  1  }

private	OBJECT IDENTIFIER
	::=  {  internet  4  }

enterprises	OBJECT IDENTIFIER
	::=  {  private  1  }

relatwap	OBJECT IDENTIFIER
	::=  {  telefonica  42  }

erro	OBJECT IDENTIFIER
	::=  {  nomeProjeto1  }


descricao	OBJECT-TYPE	
	SYNTAX			OBJECT IDENTIFIER
	MAX-ACCESS			accessible-for-notify
	STATUS			current
	DESCRIPTION		"Descricao do erro"
	::=  {  erro  1  }

severidade	OBJECT-TYPE	
	SYNTAX			OBJECT IDENTIFIER
	MAX-ACCESS		accessible-for-notify
	STATUS			current
	DESCRIPTION		"severidade do erro"
	::=  {  erro  2  }

notificationGroup	OBJECT IDENTIFIER
	::=  {  nomeProjeto2  }

nomeMódulo1 TRAP-TYPE
ENTERPRISE notificationGroup
DESCRIPTION “Aplicacao converter”–descrição
::= 1

nomeMódulo2 TRAP-TYPE
ENTERPRISE notificationGroup
DESCRIPTION “Aplicacao converter Arquivos”
::= 2

nomeMódulo3 TRAP-TYPE
ENTERPRISE notificationGroup
DESCRIPTION "Aplicacao PreSumarizacao "
::= 3

nomeMódulo4 TRAP-TYPE
ENTERPRISE notificationGroup
DESCRIPTION “Aplicacao PreSumarizacao Arquivos”
::= 4

nomeMódulo5 TRAP-TYPE
ENTERPRISE notificationGroup
DESCRIPTION “Aplicacao ZTE Converter”
::= 5

nomeMódulo6 TRAP-TYPE
ENTERPRISE notificationGroup
DESCRIPTION “Aplicacao ZTE Converter Arquivos”
::= 6

nomeMódulo7 TRAP-TYPE
ENTERPRISE notificationGroup
DESCRIPTION “Aplicacao ZTE Converter Periodicidade de recebimento de arquivos”
::= 7

nomeMódulo8 TRAP-TYPE
ENTERPRISE notificationGroup
DESCRIPTION “Aplicacao ZTE Converter conexao FTP”
::= 8

END

Isso é o que chamamos de MIB / TRAP, para envio de mensagens pela rede, para saber se a aplicação está sinalizando corretamente, dentre outras coisas.

Esse arquivo .xml voce configura a trap para ser processada.

As TAGs do arquivo já dão uma dica do valor que ela armazena, a TAG habilitado informa se a aplicação enviará traps ou não, a TAG ip-gerente-snmp é o IP do destinatário das traps, a TAG porta-gerente-snmp possui a porta do destinatário das traps, a TAG ip-aplicação possui o ip da aplicação remetente da trap, a TAG porta-aplicação possui a porta que o remetente ouvirá para receber o retorno da TRAP, a TAG notification-group possui a identificação da aplicação remetente dessas TRAPs, as TAGS dsc_oid e severidade_oid possuem os identificadores da descrição da TRAP e da severidade respectivamente. Após este cabeçalho comum, segue uma listagem de entidades que indicam os eventos que são sinalidados via trap, neste caso o arquivo está configurado para enviar 2 TRAPs uma para sinalizar o ciclo de vida da aplicação já a outra sinaliza a existência de arquivos com problema de processamento.

<?xml version="1.0"?>
<ip-gerente-snmp>111.0.0.0</ip-gerente-snmp>
<porta-gerente-snmp>222</porta-gerente-snmp>

<ip-aplicacao>222.0.0.3</ip-aplicacao>
<porta-aplicacao>1088</porta-aplicacao>

<enterprise_oid>1.3.6.1.4.1.12511.27.1.1</enterprise_oid>
<dsc_oid>1.3.6.1.4.1.12511.27.1.1.1</dsc_oid>
<severidade_oid>1.3.6.1.4.1.12511.27.1.1.2</severidade_oid>


<trap entity="geral">
	<type>1</type>
	<clear>Aplicacao "nomeAplicação"rodou com sucesso</clear>
	<error>ERRO Aplicacao "nomeAplicação"terminada com erro!</error>
</trap>

<trap entity="arq_problema">
	<type>2</type>
	<clear>Nao existem arquivos com problema de processamento</clear>
	<error>ERRO Existem arquivos .PROBLEMA no diretorio da aplicacao!</error>
</trap>

Obrigado pela ajuda amartins…

Mas o meu processo não será simplesmente esse… Eu tenho alguns serviços feitos em java que precisam gravar na mib as informações de status e os traps de erro em suas execuções. Por outro lado, precisarei de outro agente java no gerente para que possa fazer uma negociação com as mensagens snmp recebidas, seja ela de status ou alertas trap.

Pra esse modelo, você acha que esse programa serviria?
Como estou trabalhando com linux, ubuntu 9.04, deixaria o smnpd puro dele rodando mesmo, só registrando as variaveis na mib as informações de status que posso disponibilizar. Será que isso dá certo?

Vlw

Veja se esta biblioteca te atende…

http://snmp.westhawk.co.uk/

[quote=cego]Obrigado pela ajuda amartins…

Mas o meu processo não será simplesmente esse… Eu tenho alguns serviços feitos em java que precisam gravar na mib as informações de status e os traps de erro em suas execuções. Por outro lado, precisarei de outro agente java no gerente para que possa fazer uma negociação com as mensagens snmp recebidas, seja ela de status ou alertas trap.

Pra esse modelo, você acha que esse programa serviria?
Como estou trabalhando com linux, ubuntu 9.04, deixaria o smnpd puro dele rodando mesmo, só registrando as variaveis na mib as informações de status que posso disponibilizar. Será que isso dá certo?

Vlw[/quote]