Network Telemetry Integration for New Relic
nr1-network-telemetry collects data from network devices that export Sflow or IPFIX network samples. This data can be visualized through the Network Telemetry Nerdpack.
This project is distributed under the Apache 2 license.
- New Relic Insights and the related access to New Relic One.
- New Relic Insights Insert API Key
- New Relic Account ID
- New Relic APM License Key (Optional for integration to report health status)
# Download the latest docker image
docker pull newrelic/nri-network-telemetry
# Run in debugging mode
docker run -it --rm \
-e NEW_RELIC_LICENSE_KEY \
-e NEW_RELIC_ACCOUNT_ID \
-e NEW_RELIC_INSERT_KEY \
newrelic/nri-network-telemetry \
-d -n -t LOG
- GNU Make
- Go 1.13.0+
Note: The make
command should install all other dependencies, so you must have a properly configured Go Environment including $GOPATH/bin
in your $PATH
.
Clone this repository and run the following scripts:
# Clone the repository
git clone https://github.com/newrelic/nri-network-telemetry.git
cd nri-network-telemetry
# By default this will install deps, run lint and test,
# and compile binaries for the current OS / Arch
make
# Binaries are generated by operating system,
# so replace <os> with the correct value
# Test run in debug mode, printing flow data to the console:
./bin/<os>/nri-network-telemetry -d -n -t LOG
Deploy the binary into your environment following your best practices.
The flow collector is configured mostly via Environment variables. This method is to ease the deployment via containerization. Here are the supported and required environment variables:
Env Var | Required | Default | Description |
---|---|---|---|
NEW_RELIC_ACCOUNT_ID |
Yes | - | New Relic Account ID for reporting data |
NEW_RELIC_INSERT_KEY |
Yes | - | New Relic Insights Insert API Key |
NEW_RELIC_LICENSE_KEY |
Yes | - | New Relic APM License Key for reporting metrics (REQUIRED unless NR Agent is disabled) |
BIND_ADDRESS |
No | 0.0.0.0 |
IP Address the service will listen on |
FLOW_BIND_ADDRESS |
No | 0.0.0.0 |
IP Address the Flow Server will listen on |
FLOW_PORT |
No | 6343 |
UDP Port to listen for sflow and IPFIX |
SFLOW_EVENT_TYPE |
No | sflow |
Insights EventType to store sflow data |
IPFIX_EVENT_TYPE |
No | ipfix |
Insights EventType to store ipfix data |
EMIT_TARGET |
No | INSIGHTS |
Target to send collected data (`LOG |
HTTP_PORT |
No | 8080 |
HTTP Port for health checks |
NEW_RELIC_ENABLED |
No | true |
Enable New Relic APM for the integration itself |
SERVICE_NAME |
No | NRNT |
New Relic APM Service Name |
NETWORKS_FILE |
No | - | File containing Network, ASN, AS Organization data (see below) |
To enabled the peerName
attribute in Insights, you'll need create and deploy a csv file with the following format (Excluding the Header):
network,autonomous_system_number,autonomous_system_organization
Sample:
192.168.0.0/16, 65535, My Internal ASNs
10.0.0.0/8, 65534, Another Example ASN
There are multiple sources of this information available both commercially and for free. New Relic does not sponsor or recommend any specific datasource for this information.
This is a sample configuration for Arista to export sflow data to the integration. You will need to use the correct vrf
, destination
, and source-interface
to match your environment. BGP Extension is not required, but supported.
sflow sample 16384
sflow polling-interval 3600
sflow vrf MGMT destination 10.x.x.x
sflow vrf MGMT source-interface Management1
sflow run
!
sflow extension bgp
IPFIX configuration is much more complex than sflow, and varies based on the hardware manufacturer. Please see your specific hardware manufacturers site for instructions on configuring an IPFIX destination.
New Relic has open-sourced this project. This project is provided AS-IS WITHOUT WARRANTY OR SUPPORT, although you can report issues and contribute to the project here on GitHub.
Please do not report issues with this software to New Relic Global Technical Support.
New Relic hosts and moderates an online forum where customers can interact with New Relic employees as well as other customers to get help and share best practices. Like all official New Relic open source projects, there's a related Community topic in the New Relic Explorer's Hub. You can find this project's topic/threads here:
https://discuss.newrelic.com/c/build-on-new-relic/nri-network-telemetry (Note: URL subject to change before GA)
Issues and enhancement requests can be submitted in the Issues tab of this repository. Please search for and review the existing open issues before submitting a new issue.
Contributions are welcome (and if you submit a Enhancement Request, expect to be invited to contribute it yourself 😁). Please review our Contributors Guide.
Keep in mind that when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. If you'd like to execute our corporate CLA, or if you have any questions, please drop us an email at [email protected].