Skip to content
An open paper logbook and a pen on a dark desk, a small switch with green lights blurred behind it

Field manual

Events, alarms and severities: reading what the console tells you

Every monitoring system, whatever its vocabulary, keeps two kinds of record. One is a running log of things that happened. The other is a list of things that are wrong right now. Mixing the two up is behind most confusing consoles, so this guide keeps them apart: events first, then alarms, then the severity labels attached to both.

An event is a fact with a timestamp

An event records that something was observed at a particular moment. It does not last; it happened. Events arrive from four places:

  • Pollers: a check found a state or value different from last time. An interface went from up to down, disk usage crossed 90 percent, a web check started returning 503.
  • SNMP traps: a device reported something on its own (see SNMP traps and informs).
  • Logs: a syslog line matched a rule, such as a configuration change or a failed SSH login (see turning syslog lines into events).
  • The monitor itself: a poller ran late, the database disk filled up, a notification failed to send.

That last group is easy to forget. If the monitor cannot tell you it is struggling, you find out when the graphs have a hole in them.

The fields an event carries

Products name them differently, but almost every event model has the same core. If you write a script that feeds events in, aim to fill all of these.

Field Example Why it matters
Time 2026-03-12 03:15:42 UTC Ordering, correlation, retention. Store UTC, display local
Host dist-sw2.example.net Must match the inventory name, or the event floats unattached
Object Gi1/0/24, /var, an HTTPS check The thing on the host: interface, filesystem, service, sensor
Type link state, threshold, config change, login Picks the template, default severity and whether an alarm may open
State down, up, warning, ok What the object is now; drives opening and clearing alarms
Severity critical, warning, info How loudly to show it
Message Gi1/0/24 down (was up), uplink to ap-3f-east What a person reads at 3 a.m.
Source poller, trap, syslog, internal How much to trust it and where to look next
Extra user backup-svc, value 91.4, trap varbinds Detail that fits nowhere else

Host and object carry most of the weight. An event can only change the state of something if it can be tied to an object the monitor knows. A syslog line saying Interface GigabitEthernet1/0/24, changed state to down does nothing for alarms unless the rule that parsed it produces the same interface name the poller uses. Spend time on naming before you spend it on rules.

Event types

A type groups events that should behave the same way. A sensible starter set:

  • State change: something went up, down, degraded or recovered. These open and close alarms.
  • Threshold: a measured value crossed a line, such as CPU above 90 percent for 10 minutes. These open an alarm and clear when the value falls back below a lower line, so a value hovering at the limit does not flap.
  • Notice: worth recording, with no "fixed" state to return to. A configuration saved, a user logged in.
  • Security: authentication failures, port security violations, an unexpected new MAC address.
  • Internal: the monitor's own health.

Each type sets defaults: a message template with placeholders like {host}, {object} and {state}, a default severity, whether the event shows in the main console or only in the full log, and whether it may open an alarm. Keeping that logic on the type, rather than on each parsing rule, is what keeps a few hundred rules manageable.

Severity scales

Severity is a label for urgency. The trouble is that several scales are in common use, and two of them run in opposite directions.

Syslog, defined in RFC 5424, has eight levels where a lower number is worse:

Code Syslog severity Meaning
0 Emergency System is unusable
1 Alert Action must be taken immediately
2 Critical Critical conditions, such as a hardware fault
3 Error Error conditions
4 Warning Warning conditions
5 Notice Normal but significant
6 Informational Routine messages
7 Debug Debug output

Monitoring tools use their own words. Nagios, and the plugins that follow its convention, report OK, WARNING, CRITICAL and UNKNOWN. Zabbix trigger severities run from Not classified and Information through Warning, Average and High to Disaster. The ITU alarm model (X.733), common in carrier and vendor gear, uses critical, major, minor, warning, indeterminate and cleared. Prometheus has no built-in severity; teams add a severity label by convention.

When several sources land in one console you need one internal scale and a mapping into it. Three rules help:

  1. Map by meaning, not by number. Cisco-style %LINEPROTO-5-UPDOWN messages are syslog level 5, yet a line protocol change on an uplink matters more than a level 3 error from a chatty process.
  2. Keep the scale short. Five levels (critical, major, minor, warning, info) are plenty. Nobody can explain level 6 versus level 7 of a twelve-step scale in the middle of the night.
  3. Set severity by type and by object role. A link down on a desk phone's access port is minor; the same event on a core uplink is critical. Most tools can raise severity by host group or interface tag.

How events open and close alarms

An alarm is a standing condition on one object: this interface is down, this disk is above 90 percent. It has a start time, a current severity and, eventually, an end time. Events open it, update it and close it.

A worked example: a distribution switch uplink that flaps once, then fails properly.

Time Event Alarm on dist-sw2 Gi1/0/24
02:41:07 trap linkDown, state down opened, severity major
02:41:19 trap linkUp, state up cleared after 12 seconds
02:58:30 trap linkDown, state down opened again
03:00:00 poll, ifOperStatus is down(2) unchanged, seen 2 times
03:05:00 poll, still down unchanged, seen 3 times
03:22:51 syslog, line protocol up cleared after 24 min 21 s

Three mechanisms are at work there:

  • Matching. Each event is tied to the alarm by host, object and type. The poll result and the syslog line must resolve to the same interface name as the trap, or you get three separate alarms for one cable.
  • De-duplication. Repeat events for an open alarm update it (a count, a last-seen time) instead of adding rows.
  • Clearing. A matching event with a good state closes the alarm. For types with no natural "good" event, such as authentication failures, set an expiry so the alarm closes itself after, say, 30 minutes of quiet.

The 12-second flap at 02:41 belongs in the record but should not wake anyone. Absorbing it is the job of a delay in your triggers, not of the event log.

Acknowledgement

Acknowledging an alarm means "a person has seen this and owns it". It should record who, when and a short comment ("ticket 4471, sending someone to the site"). It should not clear the alarm, because the problem is still there. In most tools an acknowledgement also stops repeat notifications, which is the main reason operators use it.

Two habits worth copying from good systems: drop the acknowledgement if severity rises, since a minor problem that became critical deserves fresh eyes, and show acknowledged alarms dimmed rather than hidden. Hiding is a job for filters, chosen on purpose.

Retention

Events pile up. A few hundred devices with chatty syslog can produce hundreds of thousands a day. A plan that suits most small and mid-sized networks:

  • Raw events in the live database: 30 to 90 days, purged nightly at a quiet hour.
  • Alarm history (open time, close time, object, severity): at least 13 months, so you can compare a month with the same month last year and build availability reports.
  • Anything you must keep longer goes to a log store or compressed archive files, not the live tables.

Index on time, and on host plus time. Most slow consoles are slow because a query scans months of events to show the last hour. Purge jobs and database care are covered in running the system day to day.

A severity map for common events

A starting point; adjust by host role.

Event Severity Opens an alarm Notes
Core or WAN link down critical yes Treat single-homed sites as critical too
Uplink or trunk down major yes Check whether its redundant partner is still up
Access port down info no Desks and printers come and go all day; alarm only on tagged ports
Host unreachable (ICMP and SNMP both fail) critical yes Suppress everything behind it
Unplanned reboot (coldStart, uptime reset) major yes, auto-expires Find out why
CPU above 90 percent for 10 minutes warning yes Short spikes are normal
Filesystem above 90 percent warning yes Critical at 95 percent
Fan or power supply failed major yes Redundancy is gone, service is not yet
Temperature above vendor limit critical yes Check the room, not only the box
Configuration saved info no Keep for audit and change review
Authentication failure minor yes, expires after 30 minutes Raise on a burst from one source
BGP or OSPF neighbor down critical yes
Poller overrun or monitor error major yes The monitor is blind somewhere
TLS certificate expires within 14 days warning yes Critical within 3 days

If you remember one thing from this page: an event is a line in the diary, an alarm is an item on the to-do list. Keep the diary long, keep the to-do list short, and make sure every event that should touch the list can find the right item on it.