OEM 24ai and OCI Observability Services: Stop Choosing. Start Connecting.
Oracle observability post #2 — picking up from where we left off on the configuration gaps most teams miss after an OEM 24ai install.
There's a debate that comes up in almost every Oracle architecture conversation I have these days.
"Should we use OEM or OCI for monitoring?"
The short answer: both. The right answer: they're not doing the same job.
A quick note on OCI Stack Monitoring: If you've been using OCI Stack Monitoring, you need to know it's officially deprecated with End of Life on January 23, 2027. Oracle's guidance is to migrate to OCI Monitoring (infrastructure metrics), OCI Logging Analytics (log correlation), and OCI Database Management (DB fleet performance) before that date. This post is written against the current OCI Observability stack — the tools you should be building on right now.
Treating OEM 24ai and the OCI Observability suite as alternatives is like choosing between a hospital and an ambulance. One is purpose-built for a specific, deep function. The other gets you connected to a broader system. You need both, and you need them talking to each other.
After 17 years of Oracle deployments — from pure on-prem Oracle estates to hybrid cloud migrations and full OCI lifts — this is one of the architectural decisions I've seen teams get wrong most consistently. And the cost shows up later: blind spots in production, duplicate alerting, and two disconnected dashboards that no one trusts.
Let's fix that.
What OEM 24ai Actually Does Well
Oracle Enterprise Manager 24ai is a deep-stack tool. Its core strength is native Oracle target management at a level nothing else matches.
Where OEM is irreplaceable:
- Oracle Database internals — AWR, ASH, SQL monitoring, blocking sessions, undo usage, buffer cache hit ratios. OEM reads internal Oracle metrics that no third-party tool can access without significant custom work.
- Lifecycle management — Patching, provisioning, compliance standards, gold image management. This is not monitoring, it's management. OCI doesn't do this.
- EM Jobs — Scheduled scripts, backup jobs, RMAN management, DB cloning. These are operational workflows, not just observability.
- Exadata and RAC — Cell server metrics, smart scan offload efficiency, InfiniBand/RoCE interconnect health, ASM disk group monitoring. OEM 24ai has native Exadata awareness no other product can replicate.
- Target hierarchy — OEM's concept of a monitoring hierarchy (RAC → Instance → PDB → Service) with inheritance and override is sophisticated. You can apply a single metric template to 5,000 targets and push threshold changes in minutes.
- EM CLI + REST API — Automation-first. You can script everything: target discovery, job execution, template application, incident management.
If you're running Oracle Database on-prem or on Oracle Cloud Infrastructure Dedicated Infrastructure, OEM 24ai is the right primary tool for that layer. Full stop.
What OCI Observability Services Do That OEM Can't
The OCI Observability and Management suite was designed to answer a different question: How does your full application stack look from the cloud?
The suite covers four distinct functions, each a separate service:
OCI Monitoring handles infrastructure-level telemetry — host CPU, memory, disk, network — through the Management Agent. It's where you create alarms, set thresholds, and wire notifications to PagerDuty, Slack, or OCI Functions. For OCI Compute instances, coverage is near-instant after agent deployment.
OCI Logging Analytics handles log ingestion, parsing, and correlation at scale. If your Oracle Database alert logs, listener logs, OS syslogs, and application logs need to be correlated into a single query surface — this is where that happens. The ML-based anomaly detection finds patterns in log data that threshold-based monitoring misses entirely.
OCI Database Management covers Oracle Database fleet performance from the cloud plane. SQL performance analytics, wait event analysis, AWR data aggregation across multiple databases, and space management — all accessible without needing OEM Console access. For your cloud ops team, this eliminates the need for OEM credentials to diagnose a DB performance issue.
OCI Ops Insights handles capacity analytics and long-range SQL trend analysis. It answers questions like "which databases will run out of tablespace in 90 days" or "which SQL statement has degraded most in the last 30 days across our fleet." This is planning intelligence that OEM generates per-target but doesn't aggregate across the estate the way Ops Insights does.
The key point: none of these services are trying to replace OEM. They're giving you observability above the database layer and around the cloud boundary that OEM was never designed to cover.
The Architecture That Actually Works
Here's how I recommend structuring this for a hybrid Oracle environment — which is 90% of what customers are running today:
On-Premises OCI
───────────────────────────────────── ────────────────────────────────────
Oracle DB (19c/21c/23ai) Oracle DB@Azure / ExaCS / BaseDB
└── OEM 24ai Agent └── OCI Management Agent
│ │
▼ ▼
OEM OMS ───────────────────────────► OCI Monitoring
(OMR on Data Guard) (Infrastructure alarms + notifications)
│ │
▼ ▼
EM CLI / REST API OCI Database Management
(Fleet SQL analytics + wait events)
│
▼
OCI Logging Analytics
(Log correlation + ML anomaly detection)
│
▼
OCI Ops Insights
(Capacity planning + SQL trends)
The bridge is the OCI Management Agent running on your on-prem Oracle hosts. Once deployed, it streams host metrics into OCI Monitoring and enables Database Management's external database feature for on-prem Oracle DBs — giving you cloud-plane visibility into databases that live on-premises.
The Decision Table: Which Tool Monitors What
| Use Case | OEM 24ai | OCI Observability Suite |
|---|---|---|
| Oracle Database AWR/ASH | ✅ Primary | ✅ Database Management |
| DB patching and compliance | ✅ Primary | ❌ |
| Exadata cell server metrics | ✅ Primary | ⚠️ Limited |
| RAC and Data Guard monitoring | ✅ Primary | ✅ Database Management |
| Host infrastructure metrics | ✅ Agent-based | ✅ OCI Monitoring (primary for OCI) |
| OCI-native alerting (Notifications, Events) | ❌ | ✅ OCI Monitoring |
| Log ingestion and correlation | ⚠️ EM Log viewer only | ✅ Logging Analytics (primary) |
| ML-based log anomaly detection | ❌ | ✅ Logging Analytics |
| SQL performance analytics at scale | ✅ SQL Monitor | ✅ Ops Insights + DB Management |
| Capacity planning across cloud+on-prem | ⚠️ Limited | ✅ Ops Insights (primary) |
| Third-party targets (Apache, MySQL, Nginx) | ❌ | ✅ OCI Monitoring (custom metrics) |
| Custom dashboards in OCI Console | ❌ | ✅ All four services |
| Fleet-wide SQL trend analysis | ❌ | ✅ Ops Insights |
The pattern is clear: OEM owns the Oracle stack deeply. The OCI Observability suite owns breadth, log intelligence, fleet analytics, and cloud-native alerting.
Step-by-Step: Connecting Your On-Prem Oracle Targets to OCI Observability
Here's the practical path to get both tools working together. These steps assume you already have OEM 24ai running on-prem.
Step 1: Deploy the OCI Management Agent on Your Oracle Hosts
The Management Agent is distinct from the OEM Agent. It runs alongside it without conflict.
- Download the Management Agent from OCI Console → Observability & Management → Management Agents
- Deploy to your Oracle DB hosts (requires JDK 8u261+ or JDK 11)
- Agent key: each agent registers against an Agent Install Key you generate in OCI — scope this to a compartment that mirrors your on-prem environment
# Example install on Oracle Linux
chmod +x oracle.mgmt_agent-<version>.rpm
sudo rpm -ivh oracle.mgmt_agent-<version>.rpm
sudo /opt/oracle/mgmt_agent/bin/setup.sh -f /tmp/input.rsp
The input.rsp file contains your agent install key and compartment OCID. Scope to the correct compartment — don't use root compartment for production.
Step 2: Enable OCI Database Management for On-Prem Databases
With the Management Agent running, you can connect your on-prem Oracle databases to OCI Database Management as "external databases."
- OCI Console → Observability & Management → Database Management
- Create External Database → Provide connection details and credentials
- Use a read-only monitoring user —
dbsnmpor a custom low-privilege role - Assign the compartment that aligns with your on-prem environment segmentation
Once connected, Database Management gives your cloud ops team AWR summaries, top SQL, wait event analysis, and space trends — without OEM Console access.
Step 3: Set Up OCI Logging Analytics for Oracle Log Ingestion
This is the step most teams skip. Don't.
- OCI Console → Observability & Management → Logging Analytics → Log Sources
- Enable the pre-built Oracle log parsers: Oracle Database Alert Log, Oracle Listener Log, Oracle Audit Log
- Configure log collection via the Management Agent's log collection plugin — edit
/etc/oracle/mgmt_agent/conf/emd.propertiesto include log paths - In Logging Analytics, create a Log Group per environment (prod, non-prod) and assign retention policies
Within 24 hours you'll have correlated log views across your DB tier that would take days to build manually.
Step 4: Align OCI Monitoring Alarms with Your OEM Baselines
This is where most teams skip and regret it later. If OEM already has tuned metric thresholds, align your OCI Monitoring alarms to the same values. Mismatched thresholds = duplicate noise.
In OCI Monitoring: Alarms → Create Alarm → reference the same threshold values you've set in OEM metric templates.
For the same metric (e.g., CPU utilization on the DB host), pick one alerting path:
- OEM → incidents for the Oracle DBA team
- OCI Monitoring → OCI Notifications → ops/cloud team via PagerDuty, Slack, or email
Split by audience, not by metric.
Step 5: Push OEM Incident Data to OCI (Optional but High Value)
If you want a single pane across both environments, use the OEM REST API to forward incident data to OCI Events or a custom endpoint.
OEM 24ai exposes the Incident Manager API at:
https://<OMS_HOST>:7803/em/api/v1/incidents
A simple poller (Python, cron, or OCI Functions) can sync open OEM incidents into an OCI Notifications stream. This isn't a native integration today — it's a custom bridge — but I've implemented it at several enterprise customers and it's worth the 2-day effort. The payoff is one unified incident view for leadership that doesn't require toggling between tools.
What You Get When It's Connected
When OEM 24ai and the OCI Observability suite are both running and your data is bridged, here's what actually changes:
For your DBA team: Nothing changes. OEM is still their primary tool. Same workflows, same console, same EM CLI scripts.
For your cloud ops team: They get Oracle DB health in OCI Console via Database Management — without needing OEM access. Less friction, fewer permissions headaches.
For security and compliance: Logging Analytics ingesting Oracle audit logs gives you a queryable, correlated audit trail across the full estate. No more ad-hoc log file archaeology.
For your leadership: One dashboard showing full-stack health — from Exadata cells to OCI Compute. No more "which screen shows the real status?"
For incident response: When your application degrades, Logging Analytics' correlation view shows you whether the issue is a DB wait event, a listener failure, or an OS-level resource constraint — in one query, not three separate tools.
The Bottom Line
OEM 24ai is the best Oracle database monitoring tool that exists. Nothing comes close for deep Oracle internals, lifecycle management, and Exadata coverage.
The OCI Observability suite — Monitoring, Logging Analytics, Database Management, Ops Insights — is the best stack for infrastructure telemetry, log intelligence, fleet analytics, and cloud-native alerting integration.
If you've been running OCI Stack Monitoring, start planning your migration now. EOL is January 23, 2027, which sounds far away until you're mid-fiscal-year trying to retrofit monitoring architecture in production.
The teams that try to pick one tool end up with gaps. The teams that connect OEM with the full OCI Observability stack end up with the kind of visibility that actually lets you sleep at night.
Start with the Management Agent deployment. It's the lightest-weight step and it unlocks everything else.
Next in this series: Setting up proper incident rules and notification routing in OEM 24ai — because getting an alert is useless if the wrong person gets it at the wrong time in the wrong format.


