Partha Host Agent Installation
The Gyeeta Host Agent (named partha
) has to be installed on each Linux host that needs to be monitored.
The Agent is a lightweight process and uses max 10% of one CPU core and less than 300 MB Memory RSS.
Host Requirements to install partha
Minimum Linux Kernel and CPU Requirements
The partha
Host Agent requires a Linux Kernel with minimum kernel version of 4.4.
partha
currently supports only x86_64 processors. Also, only Intel/AMD processors released after 2012 are supported as
partha
is compiled with avx instruction support.
Requirement of Kernel Headers for older kernels
The partha
agent needs Kernel Headers package to be installed on older kernels for eBPF support. Users need to ensure that the Kernel Headers
package is installed on the hosts to be monitored as otherwise partha
will not run.
Older Distributions where Kernel Headers package required
- Ubuntu 18, 19, 20
- Debian 10, 11
- RHEL / CentOS 8.x, Rocky Linux 8.x
- Amazon Linux 1 and 2
- Fedora Linux 35 and below
Newer Distributions include eBPF CO-RE BTF (BPF Type Format) Support and do not require Kernel Headers for eBPF based applications.
On Google Container Optimized OS (COS), the partha
container will itself download the currently running Kernel's Headers and so,
the Kernel Package is not needed.
Command to install Kernel Headers (needed for older Distributions only) :
- Ubuntu / Debian
- RHEL / Rocky Linux / Amazon Linux
- SuSE / OpenSuSE
- Fedora Linux
sudo apt update && sudo apt-get -y install linux-headers-$(uname -r)
sudo yum -y install kernel-devel-$(uname -r)
sudo zypper -n dist-upgrade && sudo zypper -n install kernel-default-devel-$(uname -r | awk -F- '{print $1}')
sudo dnf install -y kernel-devel-$(uname -r)
In case the Kernel Headers package is not found using the commands above, please try updating the package list for example using sudo apt update / sudo yum distro-sync / sudo dnf distro-sync and retrying the commands.
In rare cases, a host reboot may be needed.
Partha Host Agent priviliged process
The Host Agent partha
needs to be run as a priviliged process with sys_admin
, net_admin
and other Linux capabilities as it utilizes
eBPF and other monitoring methods.
If partha
is run as a container, partha
needs to be a priviliged container. Also partha
needs to run in the Host Network Namespace
and Host PID Namespace.
Serverless monitoring not supported
Currently Gyeeta does not support monitoring of Serverless environments such as AWS Lambda and Fargate.
GKE Support
Gyeeta supports Google Kubernetes Engine (Standard) mode only. GKE Autopilot is not supported.
Network Connectivity Requirements
The partha
Host Agent needs to connect to shyama
Central server and a shyama
assigned madhava
Intermediate server. The partha
Agent will
not listen on any port and no incoming connection firewall rules need to be set. It will just act as a TCP client and connect
to remote shyama
and madhava
servers.
Installation Instructions
Different Install Options exist :
- Install using Shell Script
- Install using Kubernetes Helm Chart
- Running as a Docker container
- Install using native rpm or deb packages
- Manual Tar Package install
Except for Kubernetes installs, please ensure that the the Partha Config file in JSON format is ready as per Partha Config.
Install using Shell script
Users can download a shell script that takes care of the installation and configuration of the Partha Agent.
Before installing Partha, users need to create a JSON config file as per the Partha Config.
Also, although this install script will try installing the Kernel Headers, if not present, users are advised to first install the Linux Kernel Headers before running this script if running on an older Linux distro. Please refer to Kernel Headers.
curl -o /tmp/install-gyeeta-partha.sh -s https://gyeeta.io/packages/install-gyeeta-partha.sh
# Then run the install script as :
# sudo bash /tmp/install-gyeeta-partha.sh <Path to Partha Config file in JSON format>
# Example Install Command (Please configure the /tmp/partha.json config file first) :
sudo bash /tmp/install-gyeeta-partha.sh /tmp/partha.json
The install script SHA256 can be checked before installing. The SHA256 of the install script is available at SHA256 file
Stopping/Starting/Uninstalling the Partha Agent
sudo systemctl stop gyeeta-partha
sudo systemctl start gyeeta-partha
Command to uninstall Partha Agent
- Ubuntu / Debian
- RHEL / Rocky Linux / Amazon Linux
- SuSE / OpenSuSE
- Fedora Linux
sudo systemctl disable gyeeta-partha; sudo apt-get remove gyeeta-partha
sudo systemctl disable gyeeta-partha; sudo yum erase gyeeta-partha
sudo systemctl disable gyeeta-partha; sudo zypper remove gyeeta-partha
sudo systemctl disable gyeeta-partha; sudo dnf remove gyeeta-partha
Install using Kubernetes Helm Chart
Kubernetes 1.19 or higher is needed along with Helm v3.
Refer to Partha Helm Chart for a detailed explanation on installing Partha Agents in Kubernetes.
A short explanation is shown below :
helm repo add gyeeta https://gyeeta.io/helmcharts
helm repo update
helm show values gyeeta/partha > /tmp/partha.yaml
# Thereafter you can edit the /tmp/partha.yaml file if you need to change any option.
# After editing the /tmp/partha.yaml, install the partha Helm chart using :
helm install --namespace gyeeta --create-namespace partha1 gyeeta/partha -f /tmp/partha.yaml
On Older Linux Distributions, users are required to first install the Linux Kernel Headers before running the Partha Helm Chart. Please refer to Kernel Headers.
Running as a Docker container
Before running the Docker container, users running older Linux distributions need to install the Kernel Headers as per Install Kernel Headers link.
The partha container needs to be run as a priviliged
container and also needs to be in the Host Network and PID Namespace.
A JSON config file needs to be created first as per partha Config
In the example command below, /tmp/partha.json config file has already been created on the main host.
The docker container will only run as a root user.
docker run -td --rm --name partha --read-only --privileged --env CFG_JSON_FILE=/tmp/partha.json --network=host --pid=host --cgroupns=host -v /proc:/proc -v /sys/:/sys/ -v /tmp/partha.json:/tmp/partha.json:ro ghcr.io/gyeeta/partha
Install using native rpm or deb packages
Gyeeta native rpm or deb packages are available. The install is to be followed by Partha configuration.
- Ubuntu / Debian
- RHEL / Rocky Linux / Amazon Linux
- SuSE / OpenSuSE
- Fedora Linux
curl https://pkg.gyeeta.workers.dev/pgp-key.public | sudo gpg --yes --dearmor --output /usr/share/keyrings/gyeeta-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/gyeeta-keyring.gpg] https://pkg.gyeeta.workers.dev/apt-repo stable main" | sudo tee /etc/apt/sources.list.d/gyeeta.list
sudo apt-get update
sudo apt-get install -y gyeeta-partha
sudo rpm --import https://pkg.gyeeta.workers.dev/pgp-key.public
sudo curl -s -o /etc/yum.repos.d/gyeeta.repo https://pkg.gyeeta.workers.dev/rpm-repo/gyeeta.repo
sudo yum -y update
sudo yum install -y gyeeta-partha
sudo rpm --import https://pkg.gyeeta.workers.dev/pgp-key.public
sudo curl -s -o /etc/zypp/repos.d/gyeeta.repo https://pkg.gyeeta.workers.dev/rpm-repo/gyeeta.repo
sudo zypper -q -n install gyeeta-partha
sudo rpm --import https://pkg.gyeeta.workers.dev/pgp-key.public
sudo curl -s -o /etc/yum.repos.d/gyeeta.repo https://pkg.gyeeta.workers.dev/rpm-repo/gyeeta.repo
sudo dnf -y update
sudo dnf install -y gyeeta-partha
Although this install package will try installing the Kernel Headers, if not present, users on older Linux distributions are advised to first install the Linux Kernel Headers before installing the package. Please refer to Kernel Headers.
partha Configuration post Installation
After the deb or rpm package has been installed, the Partha config file /opt/gyeeta/partha/cfg/partha_main.json
needs
to be edited as per Partha Config.
# After editing the /opt/gyeeta/partha/cfg/partha_main.json config file
sudo systemctl start gyeeta-partha
sudo systemctl enable gyeeta-partha
Stopping/Starting/Uninstalling the Partha Agent
sudo systemctl stop gyeeta-partha
sudo systemctl start gyeeta-partha
Command to uninstall Partha Agent
- Ubuntu / Debian
- RHEL / Rocky Linux / Amazon Linux
- SuSE / OpenSuSE
- Fedora Linux
sudo systemctl disable gyeeta-partha; sudo apt-get remove gyeeta-partha
sudo systemctl disable gyeeta-partha; sudo yum erase gyeeta-partha
sudo systemctl disable gyeeta-partha; sudo zypper remove gyeeta-partha
sudo systemctl disable gyeeta-partha; sudo dnf remove gyeeta-partha
Manual Tar Package install
If none of the above options can be used to install the Gyeeta Partha agent, a manual tarball extract and configure can be used to install.
Before running the Manual Tar install, users on older Linux distributions need to install the Kernel Headers as per Install Kernel Headers link.
mkdir ~/gyeeta
cd ~/gyeeta
curl -L https://github.com/gyeeta/gyeeta/releases/download/$( curl https://api.github.com/repos/gyeeta/gyeeta/releases/latest -s | grep tag_name | awk -F\" '{print $4}' )/partha.tar.gz | tar xzf -
cd ./partha
# Set Partha capabilities : needs sudo
sudo ./setperm.sh
# Thereafter create the cfg/partha_main.json partha config file and then start the partha server as
./runpartha.sh start