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.
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 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.
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.
Now it's time to get to business! This tutorial will walk through the simple act of deploying Vector within your environment.
Download the Vector
.debpackagecurl --proto '=https' --tlsv1.2 -O https://packages.timber.io/vector/0.9.X/vector-amd64.deb
Install the downloaded packagesudo dpkg -i vector-amd64.deb
Configure Vectorcat <<-VECTORCFG > /etc/vector/vector.toml[sources.in]type = "journald" # required[sinks.out]# Encodingencoding.codec = "json" # required# Generalinputs = ["in"] # requiredtype = "console" # requiredVECTORCFGexplain this command
Start Vectorsudo systemctl start vector