divadpoc
divadpoc

Reputation: 933

enable SNMP monitoring for Java app with existing MBeans

I'm looking for an example to expose the methods already exposed via MBean server with SNMP.

I read that since Java6 this is already supported in the JDK, but I also found snmp4j as a library. But I couldn't find any example that fits my scenario, or would be helpful.

I already have MBeans registered to the MBeanServer, and I'm looking for a way to enhance the classes I already have in order to make them suitable for SNMP. I can't use mibgen, as it would be the other way around.

Maybe someone can give me an example on what I need to do in order to be able to monitor my application via some SNMP manager.

An example MBean would be

public interface ExporterMXBean {
public static String BEANNAME = "exporter:type=Exporter,name=Exporter";
String getOutputDirectory();
void setOutputDirectory(String outputDirectory);
void startExport();
    int getNumberOfThreadsWorking();
}

What would I need to add to the implementation of the interface, how would I register this to a MIB, and how would it be exposed/viewable to a Manager?

Thanks in advance.

Upvotes: 1

Views: 1086

Answers (1)

ooSNMP
ooSNMP

Reputation: 377

I would recommend using SNMP4J-AgentJMX on top of SNMP4J-Agent and SNMP4J like the in the example of SNMP4J-AgentJMX called JvmManagementMibInst.java.

With this approach you do not modify your existing classes (MBeans). Instead your programm or generate a mapping which makes use of the above APIs.

A basic How-To on the necessary steps to create a SNMP agent based on some MBeans of a MBean server is described in the SNMP4J-AgentJMX HowTo

Upvotes: 1

Related Questions