The YetiCloud client is a single-binary executable that collects system data, watches for events, and takes action based on those events.
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.
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>
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.
Now that the client is up and running, its time to give it some work to do.