Skip to content

YetiCloud Client#

The YetiCloud client is a single-binary executable that collects system data, watches for events, and takes action based on those events.

Installation#

The client can be installed through your system's package manager with the appropriate package, or as a pre-compiled binary. Both are available from YetiCloud.

Package Installation#

To install from a package, simply install the package as you would any other package:

# RHEL / Fedora / CentOS
yum localinstall <path_to_package>

# Ubuntu / Debian
apt install ./<path_to_package>

Manual Installation#

Alternatively you can install the pre-compiled binary manually:

mkdir /opt/yeticloud
tar -xf <path_to_tar> -C /opt/yeticloud

If you are using systemd, be sure to copy the yeti-agent.service file to your systemd units directory:

cp /opt/yeticloud/yeti-agent.service /etc/systemd/system/.
systemctl daemon-reload
systemctl enable yeti-agent
systemctl start yeti-agent

Note: Non-SystemD systems are not fully supported and we do not provide a SysV init script, but you are welcome to write your own. Some functionality will be lost as the client integrates with SystemD for certain actions.

Configuring the Client#

Client configuration can be accoplished in two ways: a file called config.yaml or environment variables. While we strongly encourage you to use a configuration file, there are situations (such as containers) where using environment variables are preferred.

Below is a refernce config.yaml showcasing all possible options, their default values, and the equivelent environment variables for each:

# config.yaml

yeticloud:
  # URL to send metrics to. For on-prem installs, 
  # change this to the IP or FQDN of your UI server
  url: api.yeticloud.com:8443

  # use HTTPS for transport; will use HTTP when set to false
  https: true

  # do not verify HTTPS certificates, set to false when 
  # using self-signed certs   # that are not present on 
  # the local machine
  https_insecure: false

client:
  # event sampling ensures that multiple events of the 
  # same type/event do not get sent to the server
  # disable to send all, even duplicate, events. dropped 
  # events are written to a local "dropped_events.log"
  # ENV: TASKFIT_SAMPLE_EVENTS
  sample_events: true

  # time between sampled events
  #ENV: TASKFIT_SAMPLE_TIMEOUT
  sample_timeout: 120

  # dropped events are logged to <install_dir>/dropped_events.log 
  # for reference/debugging
  # ENV: TASKFIT_LOG_DROPPED_EVENTS
  log_dropped_events: true

  # development mode enabled more verbose 
  # logging and some diagnositc output on stdout
  # ENV: TASKFIT_DEVELOPMENT
  development: false

  # path to your plan definitions, relative to install directory
  # ENV: TASKFIT_TASK_PATH
  plan_path: /opt/yeticloud/plans

  # path to the client cache, relative to the install directory
  # ENV: TASKFIT_CACHE_PATH
  cache_path: .cache

  # hours to wait until unused cache items are considered stale. 
  # lowering this can have unintended consequenses
  # ENV: TASKFIT_EXPIRE_CACHE
  expire_cache: 72

account:
  # your account key
  # ENV: TASKFIT_ACCOUNT_KEY
  key: ed2812ffe8fd7bc8a8e8d01f3fe4553451e7936f

# tags used to tag the host in the UI
# ENV: TASKFIT_TAGS 
# Tags are supplied via envronment variable as a string 
# of KEY=VALUE;KEY=VALUE... pairs
# Example: TASKFIT_TAGS="some_tag=some_value;other_tag=other_value"
tags:
  # KEY: VALUE
  some_tag: some_value

NOTE: Any changes to the config.yaml file require a client restart; changes to plan files do not.

Next Steps#

Now that the client is up and running, its time to give it some work to do.