Coder Social home page Coder Social logo

nri-network-telemetry's Introduction

Network Telemetry

Build Status Go Report Card GoDoc Release

Network Telemetry Integration for New Relic

Usage

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.

Open Source License

This project is distributed under the Apache 2 license.

What do you need to make this work?

  1. New Relic Insights and the related access to New Relic One.
  2. New Relic Insights Insert API Key
  3. New Relic Account ID
  4. New Relic APM License Key (Optional for integration to report health status)

Deploying

Requirements:

Note: The make command should install all other dependencies, so you must have a properly configured Go Environment including $GOPATH/bin in your $PATH.

Building the Integration

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.

Configuring

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)

Data Augmentation

BGP Peer Names

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.

Network Device Configuration

Sflow

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

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.

Support

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.

Community

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 / Enhancement Requests

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.

Contributing

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].

nri-network-telemetry's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.