Event Daemon Configuration
The back-end configuration surrounding events is split into two areas: the configuration of eventd itself, and the configuration of events definitions known to Meridian.
Eventd configuration
The overall behavior of eventd is configured in ${OPENNMS_HOME}/etc/eventd-configuration.xml.
This file does not need to be changed in most installations.
| Parameter | Description | Default Value |
|---|---|---|
TCPAddress |
The IP address to which the eventd XML/TCP listener binds. |
127.0.0.1 |
TCPPort |
The TCP port number on the IP address defined by |
5817 |
UDPAddress |
The IP address to which the eventd XML/UDP listener binds. |
127.0.0.1 |
UDPPort |
The UDP port number on the IP address defined by |
5817 |
receivers |
The number of hreads allocated to service the event intake work done by eventd. |
Blank |
queueLength |
The maximum number of events that may be queued for processing. Additional events are dropped. |
Unlimited |
getNextEventID |
A SQL query statement that is used to retrieve the ID of the next new event. Changing this setting is not recommended. |
|
socketSoTimeoutRequired |
Whether to set a timeout value on the eventd socket. |
no |
socketSoTimeoutPeriod |
The socket timeout, in milliseconds, to set if |
Blank |
logEventSummaries |
Whether to log a simple (terse) summary of every event at the |
Event configuration storage
Meridian stores event definitions in the database, enabling dynamic management without requiring system restarts. This architecture provides several key benefits:
-
No restart required: Changes to event configurations take effect immediately without restarting eventd or Meridian.
-
Dynamic management: Add, modify, enable, or disable events through the UI or REST API.
-
Version control: Each event source and event definition maintains audit information including creation time, last modification, and the user who made changes.
-
Flexible organization: Events are organized by source files, allowing logical grouping by vendor or functionality.
Core OpenNMS events
Core Meridian events are pre-loaded in the database and are essential for system operation. These events handle internal Meridian functionality such as node discovery, service monitoring, and alarm management.
Core OpenNMS event configuration cannot be deleted.
It ships managed by the system and stays adjustable across upgrades, so the API refuses to delete opennms-vendor sources and their events; disable a whole source or individual events instead when you do not want them matched.
The opennms.catch-all.events source is additionally pinned as the last source evaluated.
|
Vendor event files
Vendor-specific event definitions for third-party devices are available in ${OPENNMS_HOME}/etc/examples/events/.
This directory contains pristine, unmodified event configuration files for hundreds of vendors including:
-
Network equipment (Cisco, Juniper, Arista, etc.)
-
Storage systems (NetApp, EMC, etc.)
-
UPS and power systems (APC, Eaton, etc.)
-
Server hardware (Dell, HP, IBM, etc.)
-
And many more
These files are provided as examples and can be uploaded to Meridian as needed for your environment. You only need to upload the event files relevant to the devices in your network.
Migrating event files after upgrade
During the upgrade to the database-backed event configuration, your existing event files from ${OPENNMS_HOME}/etc/events/
are moved to ${OPENNMS_HOME}/etc_archive/events/ and are not automatically imported into the database.
If you have customized vendor event files (for example, with adjusted severities, custom UEIs, or local additions),
upload those files from ${OPENNMS_HOME}/etc_archive/events/ into the database through the UI or the
POST /api/v2/eventconf/upload REST endpoint to preserve your customizations.
If you did not modify the vendor event files, you can upload the pristine versions from
${OPENNMS_HOME}/etc/examples/events/ instead.
Event sources
Event definitions are organized into sources. Each source typically corresponds to a single event configuration file and contains one or more event definitions. Sources have the following properties:
| Property | Description |
|---|---|
Name |
The name of the source (typically the original filename). |
Vendor |
The vendor associated with this event source (e.g., "Cisco", "OpenNMS"). |
Description |
A description of the events contained in this source. |
Enabled |
Whether events from this source are active. |
Event Count |
The number of event definitions in this source. |
A word about severities
When setting event severities, it is important to consider each event in the context of your infrastructure as a whole.
Events whose severity is critical at the zoomed-in level of a single device may not merit a Critical severity in the zoomed-out view of your entire enterprise.
Since an event with Critical severity can never have its alarms escalated, you should usually reserve this highest severity level for events that unequivocally indicate a truly critical impact to the business.
Rock legend Nigel Tufnel offered some wisdom on the subject.
| Name | Description | Numerical Code |
|---|---|---|
Critical |
Indicates a severe service-affecting event has occurred. |
7 |
Major |
Indicates serious disruption or malfunction of a service or system. |
6 |
Minor |
Used for troubles that have no immediate effect on service or system performance. |
5 |
Warning |
An event has occurred that may require action. This severity indicates a condition that should be logged, but does not require immediate action. |
4 |
Normal |
Informational message. No action required. |
3 |
Cleared |
Reserved for use in alarms to indicate that they describe self-clearing error conditions that have been corrected, and service is restored. Never use this severity in event definitions. Use "Normal" severity for events that clear an alarm. |
2 |
Indeterminate |
No severity could be associated with this event. |
1 |
Event matching order
An incoming event is matched against the event definitions in evaluation order, and the first matching definition wins. It is possible, and often useful, to have several event definitions that could match variant forms of a given event; for example, based on the values of SNMP trap variable bindings.
The order has two levels, both stored in the database and shown as the Order columns in the UI:
-
Sources carry an evaluation order: order 1 is evaluated first, and the
opennms.catch-all.eventssource is always evaluated last, so your vendor and custom definitions always win over the generic catch-all definitions. -
Events within a source are evaluated in their own order, initially the order they appear in the uploaded file. If your file contains catch-all definitions (generic events that match a broad range of conditions), place them at the bottom of the file so more specific definitions are matched first.
Both levels can be rearranged after upload:
-
In the UI, use Reorder Sources on the Manage Event Configurations page, or Reorder Events on a source’s detail page: drag rows or use the move actions, then save; the new order takes effect immediately.
-
Over REST,
GET /api/v2/eventconf/sources/orderedandPUT /api/v2/eventconf/sources/ordermanage the source order, andGET/PUT /api/v2/eventconf/sources/{sourceId}/events/order(with…/events/orderedfor reading) manage the order within a source. -
Including an
eventconf.xmlin an upload applies a complete source order in one step (see Uploading, below).
| A position change is not a content change: reordering does not touch a source’s or event’s last-modified information. |
Uploading event configurations
You can upload event configurations through the UI or the REST API.
Each uploaded .xml file must conform to the event configuration schema and becomes one event source in the database.
In the UI, drag files or whole folders onto the upload box, or browse for them; selections combine with no count limit, so a directory of vendor files and an eventconf.xml from elsewhere can go into one upload.
Everything is validated and reviewed in place, and nothing is stored until you confirm with the upload button, which states what the upload will do.
| Browsing for a folder triggers the browser’s own "upload files to this site?" confirmation; dragging the folder onto the box does not. |
Setting the source order with an eventconf.xml
A file named eventconf.xml in the upload is not stored as a source: its <event-file> entries define the evaluation order of the sources, first entry evaluated first.
Sources it does not list are evaluated before the listed ones, and the catch-all source always stays last.
This also works as an upload of its own, to apply an order to the sources already in the database — for example to carry over the order of a pre-upgrade eventconf.xml.
The upload report states when a source order was applied.
Replacing existing sources
Uploading a file whose name matches an existing source replaces that source and all of its events — this is the supported way to update a source from a file. The UI flags such files first, so you can rename the file or confirm the replacement (per file, or with Replace all for a re-imported directory). When two files in one upload resolve to the same name, only the first is stored; the report names the files that were dropped.
Single events can also be changed without re-uploading the whole file: edit them in the UI, or use PUT /api/v2/eventconf/sources/{sourceId}/events to update one event identified by its exact UEI and mask (or append it when no match exists).
Managing event configurations
Through the UI
The Meridian web interface provides a comprehensive event configuration management interface where you can:
-
View all event sources and their events.
-
Upload new event configuration files (individual or folder).
-
Enable or disable sources and individual events.
-
Edit event definitions.
-
Reorder the evaluation order of sources and of events within a source.
-
Delete sources or individual events (except the core
opennms-vendor configuration, which can only be disabled). -
Download event sources as XML.
-
Search and filter events by UEI, vendor, or source name.
Through the REST API
The Event Configuration REST API (/api/v2/eventconf) provides programmatic access to all event management functions.
API documentation is available via Swagger UI at http://<opennms-host>:8980/opennms/ui/index.html#/open-api.
Key operations include:
-
POST /api/v2/eventconf/upload- Upload event configuration files (an includedeventconf.xmlsets the source order). -
GET /api/v2/eventconf/filter/sources- List and filter event sources. -
GET /api/v2/eventconf/filter/{sourceId}/events- Get events for a source; omittinglimit(or passing 0) returns every match in one page. -
GET /api/v2/eventconf/sources/{sourceId}/events?uei=…- Resolve events by their exact UEI, with ids and XML content. -
PUT /api/v2/eventconf/sources/{sourceId}/events- Create or update one event by its identity (exact UEI plus equal mask). -
GET /api/v2/eventconf/sources/orderedandPUT /api/v2/eventconf/sources/order- Read and replace the source evaluation order. -
GET/PUT /api/v2/eventconf/sources/{sourceId}/events/ordered|order- Read and replace the event order within a source. -
PATCH /api/v2/eventconf/sources/status- Enable/disable sources. -
DELETE /api/v2/eventconf/sources- Delete event sources (refused for the catch-all andopennms-vendor sources).
A few tips
-
Only upload vendor event files that are relevant to devices in your network to keep the event configuration manageable.
-
Use descriptive vendor names when uploading events to make filtering and searching easier.
-
Disabled events remain in the database but are not used for event matching, allowing you to temporarily turn off noisy events without losing the configuration.
-
When creating custom event files, place catch-all definitions at the bottom of your file to ensure specific events are matched first — and remember the order can be adjusted after upload with the reorder tools.
Karaf shell
Use the opennms:show-event-config command to render the event definition for one or more event UEIs (matching a substring) to XML.
This command is useful for displaying event definitions that may not be easily accessible on disk, or verifying that particular events were actually loaded.
$ ssh -p 8101 admin@localhost
...
admin@opennms()> opennms:show-event-config -u uei.opennms.org/alarms
Legacy file-based configuration
| The file-based event configuration approach described below is deprecated. Event definitions are now managed through the database and can be uploaded via the UI or REST API. The legacy configuration files remain for reference but changes to them will not be reflected in the running system. |
The legacy approach used ${OPENNMS_HOME}/etc/eventconf.xml with <event-file> elements pointing to tributary files.
This method required restarting eventd after changes.
All event management should now be done through the database-backed system described above.
At level DEBUG, eventd will log a verbose description of every event it handles to ${OPENNMS_HOME}/logs/eventd.log.
On busy systems, this setting may create so much noise as to be impractical.
In these cases, you can get terse event summaries by setting eventd to log at level INFO and setting logEventSummaries="yes" in ${OPENNMS_HOME}/etc/eventd-configuration.xml.
Note that changes to eventd-configuration.xml require a full restart of Meridian.