I have been using Oracle Enterprise Manager (OEM or Cloud Control) since it was a client application. (I’m not sure whether it was in the era of Oracle 7 or Oracle 8). In the early stages, OEM was compared to other central monitoring systems (at the time, it was HP OpenView, CA Unicenter, and the like). As a DBA who was responsible for dozens of Oracle databases, I needed a main system like this. Since we had the OEM for “free” as part of a site license, we used it heavily.
The problem was that the main IT monitoring tool in our company was another system that already monitored appliances, networks, and applications. So, we decided to keep the OEM to the DBAs and send notifications to this system. (It was monitored 24/7 by a control center.) Like today, we could send alerts by email, run an external script, or send an SNMP trap. We chose the SNMP trap since it is in the core of most monitoring systems and simple to define.
OEM needed a lot of attention and maintenance, and most DBAs didn’t want to waste time setting this tool. Over the years I worked as an OEM integrator and specialist for installing and defining metrics and reports for other companies.
In my current company, we have an appliance that can send SNMP traps to a central monitoring system. Usually we are being asked to send an SNMP trap to a “normal” system, which does not need any adjustments or development for receiving the events. Recently, a customer asked us to send the traps to OEM. I thought it should be just to set up a target IP and port and maybe to load the MIB file (a translation of the ID of the traps to messages).
Oracle has enhanced the OEM significantly in each version, and now it is lighter and simpler and has connectivity to many systems. I believe that now it can replace other systems. For connecting external systems, you can use plug-ins like Microsoft SQL Server, Apache Tomcat, and Juniper Netscreen Firewall. (A full list can be found here: https://www.oracle.com/technetwork/oem/grid-control/system-monitoring-connectors-082031.html). And if you don’t have it, build your own plug-in. Receiving SNMP from an external system can be defined as part of a plug-in definition.
I tried to follow the latest documentation. I realized that there are separate sections for a plug-in and for SNMP receivelets (the part that receives the SNMP and maps it into OEM columns) that are not correlated. I used the same examples from the documentation and couldn’t make it work. The most detailed document, with all information in one place, was published by Oracle for version 9!! I looked for a cookbook where maybe someone already documented the steps, and I found nothing. I’ve posted some questions in several forums and have not gotten a response. I opened an SR, and the support representative could not find anybody to help me ☹. Is nobody using this feature???
Fortunately, at the last OpenWorld, I met the product manager of OEM, who helped me and guided me with several of his employees and colleagues.
On this adventure I learned the world of SNMP, traps, MIB files, and of course the OEM plug-in development environment.
These days I am working on writing all the steps on how to receive SNMP to OEM. I hope I will make others’ experience simpler.