Skip to content
This repository has been archived by the owner on Jul 19, 2024. It is now read-only.

Latest commit

 

History

History
56 lines (41 loc) · 2.56 KB

README.md

File metadata and controls

56 lines (41 loc) · 2.56 KB

docker-junos-datadog

Docker container to convert Juniper Telemetry streaming data into Datadog The contaimer is designed to work in pair with the datadog container

How does it works

Juniper devices are able to stream statistics periodically to a collector. Various format are supported : UDP/TCP, JSON or GPB

This project support

  • JSON over UDP send by QFX5100 (analyticsd)

2 Containers per device are needed to convert the Juniper format and send it to datadog

  • Juniper container running Fluentd that will accept Juniper Format and convert it into Statsd
  • Datadog container running the datadog agent that accept Statsd as input, this container is provided by datadog

This repo explain how to :

  • Configure QFX5100 to stream data
  • Create the Juniper container
  • Configure the datadog container

Deployment Guideline

Each Juniper device require 2 containers to send data to datadog.
Because container are lightweight and flexible there are multiple possible deployment scenario :

  • Containers running on each Juniper device inside a Guest VM that support Docker,
  • Containers for all devices deployed on a central server, each device will send data to a different port.

Juniper Container

The Juniper container is running Fluentd with 2 specifics plugins

Both containers are available on Docker cloud :

Installation Guide

How to configure Juniper devices

A configuration example is provided for QFX5100 inside juniper_templates directory

Start the Datadog Container

docker run -d --name dd_qfx5100 -e API_KEY={your_api_key_here} -h "{device_hostname}"  datadog/docker-dd-agent dogstatsd

Start the Juniper Container

docker run --link dd_qfx5100:dogstatsd -p 51020:51020/udp -d juniper/junos-dogstatsd /sbin/my_init

TODO

  • Add instruction to have multiple QFX supported on the same server
  • Add ansible playbook to automate deployment