문제

PDU pdu = new PDU();
pdu.setType(PDU.SET);

pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.100.1.1"), new Counter64(System.currentTimeMillis())));
pdu.add(new VariableBinding(new OID("1.3.6.1.4.1.100.2.1"), new OctetString("some string")));

TransportMapping transport = null;
Snmp snmp = null;

try {
    transport = new DefaultUdpTransportMapping();
    transport.listen();

    snmp = new Snmp(transport);
    snmp.send(pdu, getCommunityTarget());
} catch (Exception e) {
    // error occurred
}

이것이 제가 SNMP 트랩을 보내서 알람을 높이는 방법입니다. SNMP 에이전트로 변형을 설정하고 MIB 브라우저에서 찾아보십시오. PDU 유형을 pdu.trap으로 설정하면 무엇을 알고 싶습니다. 161이 아닌 포트 162에서 작동하며 MIB 브라우저를 볼 수는 없지만 트랩 수신기에서 볼 수 없습니다. 차이점은 무엇입니까? pdu.trap을 사용하는 목표는 무엇입니까? 내 에이전트가 어떻게 잡을 수 있습니까? 경보를 높이고 클리어하기위한 모범 사례는 무엇입니까?

도움이 되었습니까?

해결책 2

SNMP 엔티티를 구현할 때는 간단한 "트랩 송신기"대신 소위 "트랩 지시 폴링"개념을 구현하는 것이 좋습니다. 후자의 경우 Snmp4J는 상자 외부에서 사용할 수 있습니다. 첫 번째 SNMP4J-Agent를 사용할 수 있습니다. 이것은 Apache 2 오픈 소스 라이센스에 따라 라이센스가 부여됩니다.

트랩이 네트워크에서 손실 될 수 있으므로 트랩 지향적 인 패널 접근 방식은 에이전트 부품을 구현하기 위해 더 많은 노력이 필요하지만 많은 장점이 있습니다.

원래 질문에 대해 :

  • SET PDU를 보낼 때 Command Responder (Agent)에 엔티티에 대한 정보를 변경하도록 요청합니다.
  • 트랩 또는 더 나은 알림 PDU를 보낼 때 명령 생성기 (Manager)에 이벤트에 대해 알려고합니다. 트랩 지시 된 폴링 개념을 사용하면 명령 생성기는 명령 응답자의 MIB의 특정 (Crictical) 하위 트리의 데이터 변경을 효과적으로 감지하기 위해 *최후의 교환 된 객체에 대한 GET 요청을 정기적으로 (예 : 5 분마다) 보냅니다. 변경 사항이 감지되면 (알림 PDU 또는 폴링을 통해, 변경된 데이터는 명령 생성기가 COMAMND 응답자에게 요청합니다.

다른 팁

차이점은 역할에 있습니다. 세트는 에이전트에 대한 관리자가 관리자에 의해 실행되며 트랩은 반대입니다. 기본 SNMP4J는 SNMP 관리자의 구현 만 지원합니다. 그것 ~이다 에이전트의 일부 측면을 구현할 수는 있지만 사소한 것은 아닙니다. 그래도 실제로 구현하려는 두 가지 중 어느 쪽을 말하기는 어렵습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top