Network Topology field reference
editNetwork Topology field reference
editThis page describes every Elasticsearch field the Network Topology plugin reads or writes, its ECS compliance status, mapping type, and expected values.
ECS status key
edit| Badge | Meaning |
|---|---|
Core ECS |
Defined in the Elastic Common Schema (ECS) and used as specified. |
ECS ext. |
Uses an ECS-defined namespace but with values that extend beyond the official spec. |
Custom |
No ECS equivalent — SNMP-specific data for which ECS does not define field sets. |
Base fields
edit| Field | Type | ECS status | Description | Examples |
|---|---|---|---|---|
|
date |
Core ECS |
Document timestamp — when the SNMP poll was collected. |
|
host.* — Device identity
editECS host fields identify the monitored network device.
| Field | Type | ECS status | Description | Examples |
|---|---|---|---|---|
|
keyword |
Core ECS |
Device hostname (SNMP |
|
|
ip |
Core ECS |
Primary management IP address. |
|
|
keyword |
Core ECS |
Primary MAC address. |
|
|
keyword |
ECS ext. |
Device category — set explicitly in the Logstash collector config. The ingest pipeline infers it from |
|
observer.* — Device classification
editECS observer fields describe the network device as the observed system.
| Field | Type | ECS status | Description | Examples |
|---|---|---|---|---|
|
keyword |
Core ECS |
Vendor name — auto-detected from |
|
|
text |
Core ECS |
Raw SNMP |
|
|
keyword |
Core ECS |
Full OS version string. |
|
network.* — Location and role metadata
editThese fields provide hierarchical location context for the device. The ECS network field set covers protocol and transport data; the site, building, and role fields below extend that namespace.
| Field | Type | ECS status | Description | Examples |
|---|---|---|---|---|
|
keyword |
ECS ext. |
Site or datacenter identifier. Defaults to |
|
|
keyword |
ECS ext. |
Building within the site. |
|
|
keyword |
ECS ext. |
Network tier — used for topology hierarchy. Controls the vertical position of nodes in the topology map. |
|
interface.* — SNMP interface metrics (Custom)
editNo ECS field set covers SNMP interface MIB (IF-MIB, RFC 2863) data. These fields are plugin-defined under a the interface.* namespace.
| Field | Type | ECS status | SNMP MIB OID | Description | Examples |
|---|---|---|---|---|---|
|
keyword |
Custom |
|
Interface name. |
|
|
long |
Custom |
|
Interface speed in bits/sec. |
|
|
keyword |
Custom |
|
Administrative status. |
|
|
keyword |
Custom |
|
Operational status. |
|
|
long |
Custom |
|
Cumulative inbound bytes. |
|
|
long |
Custom |
|
Cumulative outbound bytes. |
|
|
long |
Custom |
|
Inbound error count. |
|
|
long |
Custom |
|
Outbound error count. |
|
These are cumulative counters, not rates. To compute bits/sec, take the delta between two consecutive polls in your collector or use a Kibana scripted field.
arp.* — ARP table entries (Custom)
editPopulated from the IP-MIB ipNetToMediaTable (RFC 1213, OID 1.3.6.1.2.1.4.22). Used to infer Layer 3 adjacency in the topology map.
| Field | Type | ECS status | SNMP MIB OID | Description | Examples |
|---|---|---|---|---|---|
|
ip |
Custom |
|
ARP neighbor IP address. |
|
|
keyword |
Custom |
|
ARP neighbor MAC address. |
|
|
integer |
Custom |
|
Interface on which the ARP entry was learned. |
|
mac_table.* — MAC forwarding table entries (Custom)
editPopulated from the BRIDGE-MIB dot1dTpFdbTable (RFC 1493, OID 1.3.6.1.2.1.17.4.3). Used to infer Layer 2 adjacency between switches in the topology map.
| Field | Type | ECS status | SNMP MIB OID | Description | Examples |
|---|---|---|---|---|---|
|
keyword |
Custom |
|
MAC address in forwarding table. |
|
|
integer |
Custom |
|
Bridge port on which this MAC was seen. |
|
|
keyword |
Custom |
|
Entry type. |
|
ip_addr.* — IP address table entries (Custom)
editPopulated from the IP-MIB ipAddrTable (RFC 1213, OID 1.3.6.1.2.1.4.20). Used to determine which network segments (CIDRs) each device participates in.
| Field | Type | ECS status | SNMP MIB OID | Description | Examples |
|---|---|---|---|---|---|
|
ip |
Custom |
|
Interface IP address — used for CIDR-based segment lookups. |
|
|
keyword |
Custom |
|
Interface subnet mask. |
|
|
keyword |
Custom |
computed |
CIDR block derived from address and netmask — used for segment grouping. |
|
|
integer |
Custom |
computed |
Prefix length derived from netmask. |
|
|
integer |
Custom |
|
Interface index linking this IP to an interface row. |
|
Loopback (127.x), link-local (169.254.x), multicast (>=224), and unspecified (0.x) addresses are filtered out at collection time.
bgp_peer.* — BGP peer sessions (Custom)
editPopulated from the BGP4-MIB bgpPeerTable (RFC 4273, OID 1.3.6.1.2.1.15.3). Used to display BGP peering sessions and create logical overlay links on the topology map.
| Field | Type | ECS status | SNMP MIB OID | Description | Examples |
|---|---|---|---|---|---|
|
ip |
Custom |
|
BGP peer remote IP address. |
|
|
long |
Custom |
|
Remote autonomous system number. |
|
|
long |
Custom |
|
Local autonomous system number. |
|
|
keyword |
Custom |
|
BGP FSM state. |
|
|
long |
Custom |
vendor-specific |
Prefixes received from this peer (not in standard BGP4-MIB). |
|
|
long |
Custom |
vendor-specific |
Prefixes advertised to this peer. |
|
|
long |
Custom |
|
Seconds since the session was established. |
|
|
long |
Custom |
|
BGP UPDATE messages received. |
|
|
long |
Custom |
|
BGP UPDATE messages sent. |
|
Prefix counts (prefixes_received, prefixes_sent) are not part of the standard BGP4-MIB. They are available in vendor-specific MIBs (for example, Cisco CISCO-BGP4-MIB, Juniper jnxBgpM2PrefixCounters) or in BGP4-MIB-V2 (draft). The Logstash filter sets these to 0 when unavailable.
ospf_neighbor.* — OSPF neighbor adjacencies (Custom)
editPopulated from the OSPF-MIB ospfNbrTable (RFC 4750, OID 1.3.6.1.2.1.14.10). Used to display OSPF adjacency state and create interior routing links on the topology map.
| Field | Type | ECS status | SNMP MIB OID | Description | Examples |
|---|---|---|---|---|---|
|
ip |
Custom |
|
OSPF neighbor IP address. |
|
|
ip |
Custom |
|
Neighbor’s OSPF router ID. |
|
|
keyword |
Custom |
|
OSPF FSM adjacency state. |
|
|
keyword |
Custom |
from OID index |
OSPF area identifier. |
|
|
integer |
Custom |
|
DR election priority. |
|
|
integer |
Custom |
configured |
Dead interval in seconds. |
|
|
integer |
Custom |
|
Number of state change events. |
|
OSPF state values: 1=Down, 2=Attempt, 3=Init, 4=2-Way, 5=ExStart, 6=Exchange, 7=Loading, 8=Full. Full means fully adjacent (exchanged LSDBs). 2-Way is normal for DROther routers on broadcast segments.
Document types
editA single SNMP poll cycle produces six document types per device, all indexed into the logs-snmp.topology-default data stream:
| Document type | Distinguishing field | Purpose |
|---|---|---|
Interface metrics |
|
Per-interface status, speed, traffic, errors. |
ARP entry |
|
Layer 3 neighbor discovery. |
MAC table entry |
|
Layer 2 forwarding topology. |
IP address entry |
|
Interface IPs and subnet membership for segment views. |
BGP peer session |
|
BGP peering state, AS numbers, prefix counts, uptime. |
OSPF neighbor |
|
OSPF adjacency state, router ID, area, priority. |
All six share the same host.*, observer.*, and network.* fields to identify which device the data belongs to.
Ingest pipeline: snmp-device-enrichment
editThe ingest pipeline performs the following on every incoming document:
-
Device type default — sets
host.type = "unknown"if the field is absent. -
Site default — sets
network.site = "Ungrouped"if the field is absent. -
Device type inference (fallback) — if
host.typeis still"unknown", performs a keyword match onobserver.sys_descrto sethost.type(router, switch, firewall, ap, server). This is a best-effort fallback; settinghost.typeexplicitly in the collector config is preferred. -
Vendor detection — runs a regex match on
observer.sys_descrto setobserver.vendor. Cisco, Juniper, Arista, Fortinet, Palo Alto, HPE, and Aruba are recognized out of the box, and you can extend the pipeline to recognize additional vendors.
The pipeline is created by the scripts/setup_elasticsearch.sh script in the Network Topology plugin repository.