Instruções para construção de um agente

Propaganda
Guia de criação de um Agente.
Criar a sua própria MIB
Deve ser utilizada a ASN.1 para definir a sua própria MIB, ver exemplos da synmib e
mymib.
E executar:
java snmp.util.MibCompiler nome_arquivo.txt
Como saída, vai ter o arquivo MIB.DAT
O agente deverá ter essa cara
import snmp.*;
import snmp.modules.*;
public class MyAgent {
private Agent agent;
private Mib mib;
private MyMethods v1;
public MyAgent(int id, int port) {
mib = new Mib("MIB.DAT","testmib");
v1 = new MyMethods(mib);
agent = new Agent(id,port,mib,v1);
}
public static void main(String args[]) {
new MyAgent(Integer.parseInt(args[0]),Integer.parseInt(args[1]));
}
}
A classe Mib conterá as informações da sua MIB, no momento da sua instanciação, deverá
ser passada o arquivo que contém a definição da MIB (o gerado pelo MibCompiler) e um
arquivo que irá alimentar inicialmente os valores dessa MIB (???).
A classe MyMethods deverá ser assim:
import snmp.*;
import snmp.modules.*;
import snmp.pdu.*;
public class MyMethods extends V1Methods {
public MyMethods(Mib mib) {
super(mib);
}
public Pdu getRequest(Pdu pdu) {
return new V1Pdu(V1Pdu.GET_RESPONSE);
}
public Pdu getNextRequest(Pdu pdu) {
return new V1Pdu(V1Pdu.GET_RESPONSE);
}
public Pdu setRequest(Pdu pdu) {
return new V1Pdu(V1Pdu.GET_RESPONSE);
}
}
Deve estender V1Methods, no construtor chamar super(mib), e definir os métodos de
acordo com as necessidades. Ver a definição dos métodos de V1Methods para entender
como funciona as chamadas para a MIB.
Na definição dos métodos pode-se proceder de duas maneiras. Ou se faz as requisições para
a mib para retornar os valores e inserir na PDU, ou cria-se diretamente variáveis na classe
que irão representar os valores da mib para retornar direto esse valores para poupar tempo.
A classe Agent é a classe do pacote snmp. No momento da sua instanciação, deverá ser
passado para ele o ID, a porta, a mib e os métodos estendidos. E então ficar a espera de
chamadas do Gerente.
Para executar o agente na linha de comando deve-se passar o ID e a porta que ele vai
escutar:
java MyAgent 321 9090
Download