How to build
Skydive relies on two main components:
- skydive agent, has to be started on each node where the topology and flows informations will be captured
- skydive analyzer, the node collecting data captured by the agents
Dependencies
Minimal
- Go >= 1.11
- libpcap (dev)
- libxml2 (dev)
- libvirt (dev)
- protoc >= 3.0
- protobuf
- npm
Installation
Dependencies
Below how to install the minimal required dependencies for Fedora and Ubuntu.
Fedora
Ubuntu
Build
Create a dedicated GOPATH.
For example:
then get and build Skydive
eBPF support
Skydive can leverage eBPF
programs for topology and flow capture. This provides
a lightweight solution for retrieving topology information such as process socket information
and for packet processing within the kernel.
Some extra dependencies are required :
- llvm
- clang
- kernel-headers / linux-libc-dev
- bcc / bcc-devel
To enable the eBPF support :
DPDK flow capture support
Skydive support flow capture from DPDK NICs. This allows starting flow capture on-demand on DPDK interface like any other interface.
Some extra dependencies are required :
- numactl-devel
- kernel-devel
To enable the DPDK support :
The DPDK probe requires some configuration adjustments. Below the DPDK configuration section :
Ports to be used need to be un-commented or added.
Third Parties
Collectd plugin
Skydive Project
provides a Collectd
plugin which allows to expose Collectd
metrics to the Skydive
topology. The plugin has to be
started on the same host than Skydive
agents and will update the Host
node of the Skydive
topology.
In order to compile the Skydive Collectd plugin
one need to have the Collectd sources.
This will generate a shared object (skydive.so
) that can be placed in the collectd plugin folder.
In order to use it, it has to be copied in the collectd plugin folder. In order to configure it the following section
has to be added to the collectd
config file.
Address
is theSkydive
agent addressUsername
Skydive
cluster authentication user namePassword
Skydive
cluster authentication password
Example:
In order to get memory metrics from Collectd
:
All the Collectd
metrics are currently reported in a Collectd
sub-key of the Host
topology node.