BFD Monitoring
Observium polls Bidirectional Forwarding Detection (BFD) sessions as
BFD Session entities. BFD sessions can be graphed, grouped, placed into
scheduled maintenance and associated with alert checkers in the same way as
other entity types.
BFD collection is performed by the poller. A separate BFD discovery process is not required.
Web interface
The global Routing > BFD page provides:
- Overview for permitted-device health, session states and operating-system distribution.
- Issues for missing sessions, non-up sessions, active fault diagnostics and sessions over the flap threshold.
- Sessions for filtering and sorting the currently collected sessions.
The device BFD tab provides the same session and graph views scoped to one
device. Follow the Session # link in a session row or issue list to open the
engineering detail view. It shows all normalized fields, collection state,
timers, counters, lifecycle data, existing state/interval/packet graphs and
any vendor-specific attributes retained by the poller. The source MIB links
directly to its object reference on
mibs.observium.org.
An explicit detail link can still display a known session which is missing from the current poll; ordinary session lists show current sessions only. For optional booleans and counters, Unsupported means the source MIB did not provide the field, while No or zero is a value actually reported by the device. A diagnostic shown as Historical belongs to an earlier state change and is not itself an active fault.
Alerting
For an active session which is expected to be up, use an ALL checker:
| Text Only | |
|---|---|
1 2 3 | |
bfd_poll_enabled means the session was present in the current SNMP poll.
When a previously known session is not returned, Observium evaluates it with
bfd_poll_enabled = 0 and does not reuse its old operational metrics. A
separate collection/missing-session checker can therefore use:
| Text Only | |
|---|---|
1 | |
An alert delay of one or more polls is recommended for the missing-session checker if a single incomplete SNMP response should be tolerated.
The operational values are up, down, init, adminDown and, on older
Alcatel implementations, failing. Administrative values are enabled,
disabled, adminDown and down.
bfd_diagnostic is the reason for the current or most recent state change on
most implementations. A non-noDiagnostic value can remain after a session
recovers, so it should normally be combined with a non-up operational state
rather than alerted on by itself.
bfd_transition_count counts transitions inside the configured BFD debounce
window and returns to zero when the window expires. bfd_transition_delta and
bfd_flap_event are single-poll signals.
Metrics which the selected MIB does not provide are omitted from alert
evaluation. Use the bfd_mib association attribute when an alert depends on a
vendor-specific metric.
Vendor data
| Source MIB | State and admin status | Diagnostics and liveness | Intervals and counters | Caveats |
|---|---|---|---|---|
BFD-STD-MIB |
Uses bfdSessOperStatus for actual operational status and the per-session administrative status. Falls back to bfdSessState only when the operational object is absent. |
Diagnostic, remote-heard and echo-desired fields are available. | Desired TX, required RX and negotiated TX are available. The standard table does not provide negotiated RX or packet counters. | Source and destination addresses use the standard InetAddress objects. |
EXTREME-IETF-BFD-MIB |
Uses the per-session Extreme administrative and protocol states; the global disabled state takes precedence. | Diagnostic and remote-heard fields are available. Echo state is derived from the operating mode. | Desired TX, required RX, negotiated TX, control-packet counters and session-up count are collected. | The MIB provides no negotiated RX or session-down count. Multipoint session types are represented by the canonical multiHop type while their native type remains available as vendor data. |
CISCO-IETF-BFD-MIB |
Uses the Cisco session state. Per-session admin is not exposed; Observium uses the global disabled state when set and otherwise reports enabled for an existing session. | Current session diagnostic, remote-heard and echo-desired fields are available. | Desired intervals and packet/up counters are collected from the session and performance tables. | Some IOS XE agents report a local address in the peer-address object, so Observium suppresses it as a peer when it resolves locally. Some agents also report remote-heard as false while the session is up; do not alert on that metric alone. No down/change counter is defined by this MIB. |
HUAWEI-BFD-MIB |
Uses the Huawei session state. Admin status is global rather than per-session. | Diagnostic code 9 is normalized as a peer administrative-down indication. Echo state is derived from the operating mode. Remote-heard is not exposed. | Actual TX/RX values are converted from milliseconds and exposed as desired TX/required RX. Packet and session-down counters come from the performance table. | Hop type is inferred from interface binding and may be incomplete on platform-specific session types. |
JNX-BFD-STD-MIB |
Uses the Juniper session state. Admin status is global rather than per-session. | Diagnostic, remote-heard and echo-desired fields are available. | Desired intervals and packet/up counters are available when the performance table is implemented. | The session address may be local or remote; Observium checks local inventory before classifying it. Hop type is inferred from the BFD UDP destination port. |
JUNIPER-BFD-MIB |
Extension only. | No independent session state. | Adds interface and Junos-specific threshold/protocol metadata to JNX-BFD-STD-MIB sessions. |
It is not a standalone session source. |
ALCATEL-IND1-BFD-MIB |
Uses the Alcatel session state, including the legacy failing state. Admin status is global rather than per-session. |
Diagnostic, remote-heard and echo-desired fields are available. | Negotiated intervals are converted from milliseconds; packet and session-up counters are collected from the performance table. | Hop type is inferred from the BFD UDP destination port. Demand/echo operating mode is not treated as hop type. |
Unknown or unmapped operational values are not converted to down. The
affected row is skipped for that poll and becomes eligible for the
bfd_poll_enabled = 0 checker.
Useful association attributes
The most useful BFD association attributes are:
bfd_mibbfd_indexandbfd_uidbfd_session_typebfd_local_addressandbfd_remote_addressbfd_local_portbfd_vrf_nameandvrf_idpeer_device_idandpeer_port_id
The complete metric and attribute list is in the Entity Type Reference.