Install Axolet
Axolet is the agent software for Axoflow. Its primary purpose is to discover the log collector services that are running on the host (for example, AxoSyslog or SC4S), and report their operating statistics (counters) to Axoflow.
It is simple to install Axolet on individual hosts, or collectively via orchestration tools such as chef or puppet.
What the install script does
When you deploy Axolet, you run a command that installs the required software packages, configures them and sets up the connection with Axoflow.
The installer script installs the axolet packages, then executes the configure-axolet
command with the right parameters. (If you’ve installed the packages in advance, the installer script only executes the configure-axolet
command.)
The configure-axolet
command is designed to be run as root (sudo), but you can configure axolet to run as a non-root user. The configure-axolet
command is executed with a configuration snippet on its standard input which contains a token required for registering into the management platform.
The script performs the following main steps:
- Generates a unique identifier (GUID).
- Initiates a cryptographic handshake process to Axoflow.
- Creates the initial configuration file for Axolet under
/etc/axolet/
. - Installs a statically linked executable to
/usr/local/bin/axolet
. - Creates the systemd service unit file
/etc/systemd/system/axolet.service
, then enables and starts that service. - The service waits for an approval on Axoflow. Once you approve the host registration request, Axoflow issues a client certificate to Axolet.
- Axolet starts to send telemetry data to Axoflow, and keeps sending them as long as the agent is registered and the certificate is valid.
Prerequisites
Axolet should work on most Red Hat and Debian compatible Linux distributions. For production environments, we recommend using Red Hat Enterprise Linux 9.
Network access
The hosts must be able to access the following domains related to the Axoflow Console:
<your-tenant-id>.cloud.axoflow.io
: HTTPS traffic on TCP port 443, needed to download the binaries for Axoflow software (like Axolet and AxoRouter).kcp.<your-tenant-id>.cloud.axoflow.io
: HTTPS (mutual TLS) traffic on TCP port 443 for management traffic.telemetry.<your-tenant-id>.cloud.axoflow.io
: HTTPS (mutual TLS) traffic on TCP port 443, where Axolet sends the metrics of the host.us-docker.pkg.dev
: HTTPS traffic on TCP port 443, for pulling container images (AxoRouter only).
Install Axolet
To install Axolet on a host and onboard it to Axoflow, complete the following steps. If you need to reinstall Axolet for some reason, see Reinstall Axolet.
-
Open the Axoflow Console at
https://<your-tenant-id>.cloud.axoflow.io/
. -
Select Provisioning > Select type and platform.
-
Select Edge > Linux.
The
curl
command can be run manually or inserted into a template in any common software deployment package. When run, a script is downloaded that sets up theAxolet
process to run automatically at boot time viasystemd
. For advanced installation options, see Advanced installation options. -
Copy the deployment one-liner and run it on the host you are onboarding into Axoflow.
Note Running the provisioning command withsudo
would mask environment variables of the calling shell. Either start the whole procedure from a root shell, or let the install script call sudo when it needs to. In other words: don’t add thesudo
command to the provisioning command.Example output:
Do you want to install Axolet now? [Y] y % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 31.6M 100 31.6M 0 0 2127k 0 0:00:15 0:00:15 --:--:-- 2075k Verifying packages... Preparing packages... axolet-0.40.0-1.aarch64 Created symlink /etc/systemd/system/multi-user.target.wants/axolet.service → /usr/lib/systemd/system/axolet.service. Now continue with onboarding the host on the Axoflow web UI.
-
On the Axoflow Console, reload the Provisioning page. A registration request for the new host should be displayed. Accept it.
-
Axolet starts sending metrics from the host. Check the Topology page to see the new host.
-
Continue to onboard the host as described for your specific log collector agent.
Manage Axolet
This section describes how to start, stop and check the status of the Axolet service on Linux.
Start Axolet
To start Axolet, execute the following command. For example:
systemctl start axolet
If the service starts successfully, no output will be displayed.
The following message indicates that Axolet can not start (see Check Axolet status):
Job for axolet.service failed because the control process exited with error code. See `systemctl status axolet.service` and `journalctl -xe` for details.
Stop Axolet
To stop Axolet
-
Execute the following command.
systemctl stop axolet
-
Check the status of the Axolet service (see Check Axolet status).
Restart Axolet
To restart Axolet, execute the following command.
systemctl restart axolet
Reload the configuration without restarting Axolet
To reload the configuration file without restarting Axolet, execute the following command.
systemctl reload axolet
Check the status of Axolet service
To check the status of Axolet service
-
Execute the following command.
systemctl --no-pager status axolet
-
Check the
Active:
field, which shows the status of the Axolet service. The following statuses are possible:-
active (running)
-axolet
service is up and running -
inactive (dead)
-axolet
service is stopped
-
Upgrade Axolet
To upgrade Axolet, re-run the installation script.
Run axolet as non-root
You can run Axolet as non-root user, but operators must have access to the following commands:
-
/usr/bin/systemctl * axolet.service
: Controls theaxolet.service
systemd unit. Usually*
isstart
,stop
,restart
,enable
, andstatus
. Used by the operators for troubleshooting. -
/usr/local/bin/configure-axolet
: Creates initialaxolet
configuration and enables/starts theaxolet
service. Executed by the bootstrap script. -
Command to install and upgrade the
axolet
package. Executed by the bootstrap script if the packages aren’t already installed.- On RPM-based Linux distributions:
/usr/bin/rpm -Uv axo*.rpm
- On DEB-based Linux distributions:
/usr/bin/dpkg -i axo*.deb
- On RPM-based Linux distributions:
You can permit the syslogng
user to run these commands by running on of the following:
sudo tee /etc/sudoers.d/configure-axoflow <<A
syslogng ALL=(ALL) NOPASSWD: /usr/local/bin/configure-axolet
syslogng ALL=(ALL) NOPASSWD: /bin/systemctl * axolet.service
# for rpm installation:
syslogng ALL=(ALL) NOPASSWD: /usr/bin/rpm -Uv axo*.rpm
A
sudo tee /etc/sudoers.d/configure-axoflow <<A
syslogng ALL=(ALL) NOPASSWD: /usr/local/bin/configure-axolet
syslogng ALL=(ALL) NOPASSWD: /bin/systemctl * axolet.service
# for deb installation:
syslogng ALL=(ALL) NOPASSWD: /usr/bin/dpkg -i axo*.deb
A