Quickstart¶
This example runs a BMP collector with an in-memory RIB and an HTTP interface on localhost. You will need a router or exporter that sends BMP data to it.
Install Netom¶
The release workflow builds DEB and RPM packages for amd64 and arm64, plus versioned container images. Published assets appear on the GitHub releases page. If no release is available yet, build from source:
git clone https://github.com/FastNetMon/netom.git
cd netom
cargo build --locked --release --bin netom --bin netom-cli
Use the Rust toolchain pinned in
pkg/targets.toml.
For distribution dependencies and container-based package builds,
see local builds. The commands below use binaries
on PATH; after a source build, use ./target/release/netom and
./target/release/netom-cli instead.
Create a configuration¶
Save the following as netom.conf:
log_level = "info"
log_target = "stderr"
http_listen = ["127.0.0.1:8080"]
[units.bmp-in]
type = "bmp-tcp-in"
listen = "0.0.0.0:11019"
[units.rib]
type = "rib"
sources = ["bmp-in"]
[targets.null]
type = "null-out"
sources = ["rib"]
BMP listens on TCP port 11019. Restrict access to the routers and exporters that should connect. The HTTP API is unauthenticated and unencrypted, so this example binds it to loopback. See CLI security before making it accessible from another host.
Start and inspect the collector¶
netom --config netom.conf
Configure your BMP exporter to connect to the collector’s address on port 11019. In another terminal, inspect the running instance:
netom-cli --url http://127.0.0.1:8080 show ip bgp summary
curl http://127.0.0.1:8080/metrics
An empty routing table is expected until an exporter connects and sends routes. The RIB is held in memory; restarting Netom requires routes to be learned again. Press Ctrl-C to stop this foreground instance.
Run an installed package as a service¶
DEB and RPM packages include a systemd unit and an example configuration.
Create /etc/netom/netom.conf from the configuration above, or copy
/etc/netom/netom.conf.example and review its listeners before starting.
Once the configuration is in place:
sudo systemctl enable --now netom
sudo journalctl -u netom -f
The service runs as the netom account. Ensure any files referenced by the
configuration are readable by that account.