There are multiple ways to easily deploy Skydive, in this section we are going to explain the most common ways.
The easiest way is to download one of the statically binary of Skydive. There are two kind of binary, one is built each time a feature of a bug fix is available (continous binary) , the others are provided for each releases .
Since Skydive uses the same binary for all its component, one can use it as agent, analyzer or client.
This mode start an analyzer and an agent at once.
Agent and Analyzer separately
You can use Vagrant to deploy a Skydive environment with one virtual machine
running both Skydive analyzer and Elasticsearch, and two virtual machines with the
Skydive agent. This
Vagrantfile, hosted in
contrib/vagrant of the Git
repository, makes use of the
libvirt Vagrant provider] and uses Fedora as the box image.
A Docker image is available on the Skydive Docker Hub account .
To start the analyzer :
To start the agent :
can also be used to automatically start an Elasticsearch container,
a Skydive analyzer container and a Skydive agent container. The service
definition is located in the
contrib/docker folder of the Skydive sources.
Skydive provides a DevStack plugin that can be used in order to have Skydive Agents/Analyzer set up with the proper probes by DevStack.
For a single node setup adding the following lines to your local.conf file should be enough.
The plugin accepts the following parameters:
The classical two nodes deployment
devstack folder of the
there are two local.conf files that can be used in order to deployment two Devstack with Skydive.
The first file will install a full Devstack with Skydive analyzer and agent. The second
one will install a compute Devstack with only the skydive agent.
For Skydive to create a TOR object that links both Devstack, add the following line to your local.conf file :
devstack2 are the hostnames of the two nodes followed
by their respective public interface.
Skydive will be set with the probes for OpenvSwitch and Neutron. It will be set to use Keystone as authentication mechanism, so the credentials will be the same than the admin.
Client & WebUI
Skydive client can be used to interact with Skydive Analyzer and Agents. Running it without any command will return all the commands available.
Specifying the subcommand will give the usage of the subcommand.
If an authentication mechanism is defined in the configuration file the username
and password parameter have to be used for each command. Environment variables
SKYDIVE_PASSWORD can be used as default value for the
username/password command line parameters.
Skydive uses the Gremlin traversal language as a topology request language. Requests on the topology can be done as following :
Refer to the Gremlin section for further explanations about the syntax and the functions available.
To access to the WebUI of agents or analyzer :
History and Datastore
In order to activate the history we need first to define the storage in the configuration file
storage: myelasticsearch: driver: elasticsearch host: 127.0.0.1:9200
Then we need to use it as topology backend:
topology: backend: myelasticsearch
and as Flow backend
flow: backend: myelasticsearch
In order to use the Grafana datasource plugin we need to use a data store, please see the upper section.
A docker image with the datasource plugin available can be use as following:
docker run -d --name=grafana -p 3000:3000 skydive/skydive-grafana-datasource
For further information, please see the plugin README