SNMP lets your Exadata storage cells and database servers push alerts to your monitoring system the moment something goes wrong, so you hear about a failing disk or a hot fan before users feel it.
Out of the box, Exadata does not send these alerts anywhere. Until you tell each component where to send its traps, problems are only visible to someone who logs in and looks.
In this guide, you will learn:
- What SNMP does on Exadata and which components send traps
- The prerequisites to check before you start
- How to configure SNMP on storage cells with CellCLI and on database servers with DBMCLI
- How to secure it with SNMPv3 and verify it with a test trap
- Common problems, their fixes, and best practices to keep alerts flowing
On Exadata, SNMP is mainly used to send traps: one-way alert messages from each component to an SNMP manager such as Oracle Enterprise Manager, Oracle ASR, Nagios, Zabbix or SolarWinds.
Each component type is configured separately, and each one can send traps to several subscribers at the same time.
This guide focuses on storage cells and database servers, because those are the alerts most DBAs need first.
Prerequisites
Have these ready before you change anything:
- SNMP manager details β the hostname or IP address and the trap port it listens on (usually UDP 162)
- SNMP version β v1/v2c with a community string, or v3 with a username and passwords
- Firewall rules that allow UDP traffic from the cells and database servers to the SNMP manager
- Admin access β
celladminorrooton storage cells,rootordbmadminon database servers - Group files β
cell_groupanddbs_groupif you plan to usedcliacross many servers - The current SNMP settings, so you do not overwrite an existing subscriber such as Oracle ASR
Step 1: Check the Current Settings
Log in to the cell and list the existing subscribers and notification settings:
cellcli -e "LIST CELL ATTRIBUTES snmpSubscriber, notificationMethod, notificationPolicy"
Step 2: Add Your SNMP Manager as a Subscriber
cellcli -e "ALTER CELL snmpSubscriber=((host='snmpmgr.example.com', port=162, community='public', type='v2c'))"
ALTER CELL snmpSubscriber replaces the whole subscriber list. If an ASR subscriber already exists, include it again in the same command or you will silently remove it.Example that keeps an existing ASR subscriber:
cellcli -e "ALTER CELL snmpSubscriber=((host='asrmgr.example.com', port=162, community='public', type=ASR), (host='snmpmgr.example.com', port=162, community='public', type='v2c'))"
Step 3: Turn On SNMP Notifications
Choose how alerts are delivered and which severities are sent:
cellcli -e "ALTER CELL notificationMethod='snmp,mail', notificationPolicy='critical,warning,clear'"
Use notificationMethod=' + snmp + ' if you do not use email alerts.
Step 4: Apply to All Cells at Once (Optional)
From a database server with SSH equivalence set up, check every cell first:
dcli -g cell_group -l celladmin "cellcli -e LIST CELL ATTRIBUTES snmpSubscriber"
Then run the ALTER CELL command the same way. Quoting inside dcli can be tricky, so many admins put the command in a script and push it with dcli -x.
Database servers use DBMCLI, and the syntax mirrors CellCLI with DBSERVER in place of CELL.
Step 1: Check the Current Settings
dbmcli -e "LIST DBSERVER ATTRIBUTES snmpSubscriber, notificationMethod, notificationPolicy"
Step 2: Add the Subscriber
Again, include any existing ASR entry in the same command:
dbmcli -e "ALTER DBSERVER snmpSubscriber=((host='snmpmgr.example.com', port=162, community='public', type='v2c'))"
Step 3: Enable Notifications
dbmcli -e "ALTER DBSERVER notificationMethod='snmp', notificationPolicy='critical,warning,clear'"
Step 4: Repeat on Every Database Server
Run the same commands on each database server, or push them with dcli -g dbs_group -l root.
SNMPv1 and v2c send the community string in plain text. Use SNMPv3 in production if your SNMP manager supports it, because it adds authentication and encryption.
Step 1: Set an SNMP Engine ID
This is needed once per cell, and the value must be unique:
cellcli -e "ALTER CELL snmpEngineID='exacel01snmp'"
Step 2: Create an SNMPv3 User
Using * makes CellCLI prompt for each password, so it is not saved in your shell history:
ALTER CELL snmpUser=((name='snmpadmin', authProtocol=SHA, authPassword=*, privProtocol=AES, privPassword=*))
Step 3: Point the Subscriber at That User
ALTER CELL snmpSubscriber=((host='snmpmgr.example.com', port=162, snmpUser='snmpadmin', type=v3))
Step 4: Match the Settings on Your SNMP Manager
Configure the same user, engine ID and protocols on the SNMP manager so it can authenticate and decrypt the traps.
ALTER DBSERVER.Never assume alerts work until you have seen a test trap arrive.
Send a Test Trap from a Cell
cellcli -e "ALTER CELL VALIDATE SNMP"
For an ASR subscriber, use ALTER CELL VALIDATE SNMP type=ASR.
Send a Test Trap from a Database Server
dbmcli -e "ALTER DBSERVER VALIDATE SNMP"
Confirm It Arrived
Check your SNMP managerβs event console, or run snmptrapd in the foreground on a Linux test box to watch for the trap.
Load the Exadata MIB
Import the Exadata MIB into your SNMP manager so traps show readable names instead of raw OIDs. The cell alert MIB ships with the Exadata software on each cell, commonly as cell_alert.mib under /opt/oracle/cell/cellsrv/deploy/config/. The path can vary by release.
If alerts still fail, check that Management Server is running with LIST CELL ATTRIBUTES msStatus and review the MS log under the cellβs diagnostic directory.
Best Practices to Keep SNMP Alerts Healthy
- Use SNMPv3 in production and avoid the default
publiccommunity string on v1/v2c - Always list every subscriber in one
ALTERcommand so you never drop ASR by accident - Keep the configuration identical across all cells and database servers, and check it with
dcliafter patching or adding hardware - Send critical, warning and clear so your monitoring tool can close alerts automatically when a problem clears
- Configure ILOM SNMP too β some hardware faults surface there first
- Re-test after every Exadata software update, since upgrades can change defaults
- Document your SNMP settings β hosts, ports and users β in your runbook
What port does Exadata use for SNMP traps?
UDP 162 by default. You can set a different port in the snmpSubscriber attribute.
Can I send Exadata alerts to more than one SNMP manager?
Yes. List several subscribers inside the same snmpSubscriber value, separated by commas.
What is the difference between SNMP and ASR on Exadata?
ASR (Auto Service Request) is an Oracle service that uses SNMP traps to open support requests with Oracle automatically. A regular SNMP subscriber sends the same alerts to your own monitoring tool.
Does configuring SNMP need a restart?
No. ALTER CELL and ALTER DBSERVER changes take effect immediately.
How do I remove an SNMP subscriber?
Run ALTER CELL snmpSubscriber=(...) again with only the subscribers you want to keep. To clear them all, use ALTER CELL snmpSubscriber=''.
Setting up SNMP on Oracle Exadata comes down to four steps: add your SNMP manager as a subscriber, enable SNMP notifications, secure it with SNMPv3, and confirm it with a test trap. Do this on every storage cell and database server, keep ASR in the subscriber list, and you will hear about hardware and storage problems before they become outages.
Recap: what to take away
- Storage cells use CellCLI and database servers use DBMCLI; each must be configured separately
- Add your SNMP manager with
snmpSubscriberwithout overwriting existing subscribers such as ASR - Set
notificationMethodto include snmp and send critical, warning and clear alerts - Use SNMPv3 with authentication and encryption in production
- Test with VALIDATE SNMP after setup and after every patch or network change
Want more hands-on guides? KP Expert publishes practical, step-by-step guides for infrastructure and certification professionals. Explore KP Expert.