4.0 KiB
Installation
The Fleet application is distributed as a single static binary. This binary serves:
- The Fleet web interface
- The Fleet application API endpoints
- The osquery TLS server API endpoints
All of these are served via a built-in HTTP server, so there is no need for complex web server configurations. Once you've installed the fleet
binary and it's infrastructure dependencies as illustrated below, refer to the Configuration documentation for information on how to use and configure the Fleet application.
Installing the Fleet binary
There are multiple options available for installing the Fleet binary.
Docker container
Pull the latest Fleet docker image:
docker pull fleetdm/fleet
For more information on using Fleet, refer to the Configuration documentation.
Raw binaries
Download the latest raw Fleet binaries with curl
or from the "Releases" page on GitHub.
Unzip the binaries for your platform:
# For a Darwin compatible binary
unzip fleet.zip 'darwin/*' -d fleet
./fleet/darwin/fleet_darwin_amd64 --help
# For a Linux compatible binary
unzip fleet.zip 'linux/*' -d fleet
./fleet/linux/fleet_linux_amd64 --help
For more information on using Fleet, refer to the Configuration documentation.
TLS configuration
In order for osqueryd clients to connect, the connection to Fleet must use TLS. The TLS connection may be terminated by Fleet itself, or by a proxy serving traffic to Fleet.
TLS certificate considerations
- The CNAME or one of the Subject Alternate Names (SANs) on the certificate must match the hostname that osquery clients use to connect to the server/proxy.
- If self-signed certificates are used, the full certificate chain must be provided to osquery via the
--tls_server_certs
flag. - If Fleet terminates TLS, consider using an ECDSA (rather than RSA) certificate, as RSA certificates have been associated with performance problems in Fleet due to Go's standard library TLS implementation.
Infrastructure dependencies
Fleet currently has two infrastructure dependencies in addition to the fleet
web server itself. Those dependencies are MySQL and Redis.
MySQL
Fleet uses MySQL extensively as its main database. Many cloud providers (such as AWS and GCP) host reliable MySQL services which you may consider for this purpose. A well supported MySQL Docker container also exists if you would rather run MySQL in a container. For more information on how to configure the fleet
binary to use the correct MySQL instance, see the Configuration document.
Fleet requires at least MySQL version 5.7.
For host expiry configuration, the event scheduler must be enabled. This can be enabled via the command line, configuration file, or a user with the required privileges.
Redis
Fleet uses Redis to ingest and queue the results of distributed queries, cache data, etc. Many cloud providers (such as AWS and GCP) host reliable Redis services which you may consider for this purpose. A well supported Redis Docker container also exists if you would rather run Redis in a container. For more information on how to configure the fleet
binary to use the correct Redis instance, see the Configuration document.