Linux Obkio Agent Installation Guide

    What you are going to learn:

  • How to install the Obkio Monitoring Agent on Linux
  • Which Linux Distribution and OS Architectures are supported

The Linux Software Agents are agents installed on Linux Virtual Machines (VM). They differ from Public, Virtual Appliance and Hardware agents because the user must maintain the OS and its security.

Minimum Requirements
Minimum Requirements

The minimum requirements for the Linux Software Agent are:

  • CPU: 2 vCPU
  • Memory: 4 GB
  • Disk: 20 GB

Supported Linux Distribution
Supported Linux Distribution

The Linux Software Agent is supported on the following Linux Distribution:

  • CentOS (7 & 8)
  • Debian (10 & 11)
  • Fedora (36 to 38)
  • Ubuntu (LTS versions from 14.04 to 22.04)

As soon as a distribution is no longer supported by its distributor, it will no longer be supported by Obkio. This doesn't mean that the agent will no longer work, only that is might stop working and a fix might not be possible.

Supported Architecture
Supported Architecture

The supported CPU architecture for the Linux Monitoring Agent are:

  • aarch64 (unsupported for Fedora & CentOS 7)
  • armv7
  • armv8
  • x86_64 (amd64)

Agent Creation
Agent Creation

To install the monitoring agent on your virtual machines, in the Obkio App, go to the Agents page and then click the + button at the top right then Create new agent. The first step is to select the Software agent type. Then, you can enter the settings for the agent. Learn more on each setting at Agent Settings. Next step is to install the agent.

Screencapture Linux Agent Creation

Installation Instructions
Installation Instructions

The Software Agent requires root privilege on the VM. This is required to access some Linux Kernel network timestamps used to get accurate measurements. Since it runs as root, it is recommended to use a dedicated VM for the Linux Software Agent.

If the current user is not root, make sure to create a real root shell using the sudo su - command. The - at the end is important to make sure a new shell is created and the PATH environment variable is set to include /sbin/ and /usr/sbin/ directories.

Before the installation, a new agent must be created in the App. Learn more at Agent Creation.

Screencapture Linux Agent Installation

At the end of the Software Agent creation, a screen will appear with a curl command that needs to be run to install the agent. The command will look like this but with a different AGENT_ID:

curl -sSL https://install.obkio.com | AGENT_ID=123456789 bash

Once installed, the agent will be updated automatically but it's the user's responsibility to maintain the OS secure and up-to-date.

As for the other Agent Types, to allow incoming connections from other agents, the default ports 23999/TCP and 23999/UDP must be open. Learn more at Network Monitoring Sessions.

Firewall Settings
Firewall Settings

As for all other agent types, some firewall configurations might be required if outbound connections are filtered. Refer to the article Firewall Configurations for more details.

Uninstall
Uninstall

The Software Agent is installed by default in /opt/obkio. In that directory, there is a file named uninstall.sh. By running this script as root, it will completely uninstall the Linux Software Agent, including the cron job that is used to update the Software Agent.

sudo /opt/obkio/uninstall.sh

Simulation with Linux Traffic Control commands
Simulation with Linux Traffic Control commands

The Agent is designed to use Kernel-based timestamps to measure the Network Performance metrics (latency, jitter and packet loss). With that design, the timestamps are read directly from the network adapters to increase the precision of the measurements.

On Linux OS, the tc command is often used to simulate network degradation such as increased latency, jitter or packet loss. This technique does not work on the Agent measurements because the command affects packets before they leave the physical network adapter. Since the packets are dropped or buffered before the agent records the timestamps, it has no effect on the measurements.

This is why the Linux tc command has no effect on the measurements that the Agent reports.