Deploying Vector

How to deploy Vector to your target environment
type: tutorialdomain: operations

What good is Vector if you can't deploy it?! Fortunately, deploying Vector is easy. Vector is written in Rust and compiles to a single static binary. Meaning there are no dependencies or runtime, making the actual act of installing Vector as easy as copying the binary to your target host. Beyond that, you'll want to think strategically about how you deploy Vector. This is where the magic lies and this is precisely what this guide will touch on.

Basic Concepts

Before we get into the installation tutorial, let's touch on some basic Vector deployment concepts. We've had the fortunate opportunity of working with many different companies deploying Vector, and all of their approaches can be broken down into two basic concepts: strategies and topologies.

Strategies

Strategies refer to data collection on a single host. It's the very first thing you'll think about when deploying Vector. For example, are you operationally proficient and comfortable installing Vector directly on each of your host? Or are you an app developer only concerned with data collection for your service? Each context requires a different deployment strategy! To solve this, we've broken down deploying Vector into three basic strategies. These are best explained with diagrams, and covered in more detail in our docs.

Vector daemon deployment strategyVector daemon deployment strategy
1. Your service logs to STDOUT
STDOUT follows the 12 factor principles.
2. STDOUT is captured
STDOUT is captured by your platform.
3. Vector collects & fans-out data
Vector collects data from your platform.

Topologies

Topologies refer to the high-level network that your Vector instances create to get data from A to B -- the zoomed out perspective. This, again, is largely dependent on your environment and downstream storages. We've broken these down into three basic examples. Use these as guidelines to form your own topology. These are best explained with diagrams, and covered in more detail in our docs.

Tutorial

Now it's time to get to business! This tutorial will walk through the simple act of deploying Vector within your environment.

DPKG
  1. Download the Vector .deb package

    curl --proto '=https' --tlsv1.2 -O https://packages.timber.io/vector/0.9.X/vector-amd64.deb

    Looking for a different version?

  2. Install the downloaded package

    sudo dpkg -i vector-amd64.deb
  3. Configure Vector

    Where do you want to send your data?
    Console
    cat <<-VECTORCFG > /etc/vector/vector.toml
    [sources.in]
    type = "journald" # required
    [sinks.out]
    # Encoding
    encoding.codec = "json" # required
    # General
    inputs = ["in"] # required
    type = "console" # required
    VECTORCFG
    explain this command
  4. Start Vector

    sudo systemctl start vector