Install Linux forwarder (Manual & Mass Install)
These instructions cover the manual installation for the Stairwell Linux Forwarder.
🔧 Prerequisites
Before installing, ensure you have:
- Stairwell Environment ID
- Stairwell Forwarder Authentication Token - How to generate the token
- auditd daemon installed and enabled
📝 Note: Backscan
The initial scan (the backscan) performs a full physical disk scan and can be resource-intensive for a short period.
We recommend:
- Identify a non-critical system for the initial scan that can tolerate high resource utilization without impacting business operations.
- The machine will return to normal after scan has complete
- Do not install on critical assets early in deployment.
- Subsequent installations will be less intensive because the forwarder will only grab new/changed files
Step 1: Verify auditd is Enabled
auditd is EnabledThe Stairwell forwarder requires auditd to monitor system events.
On systemd distributions (RHEL 7+, Ubuntu, Debian):
sudo systemctl status auditd
sudo systemctl start auditd
sudo systemctl enable auditdOn RHEL 6:
sudo service auditd status
sudo service auditd start
sudo chkconfig auditd onStep 2: Download and Install the Forwarder
Download the package for your distribution (example version 2.4.5).
RHEL, Rocky, Alma (Versions 7, 8, 9)
# RHEL 9
curl -LO https://downloads.stairwell.com/linux/2.4.5/stairwell-2.4.5-1.el9.amd64.rpm
# RHEL 8
curl -LO https://downloads.stairwell.com/linux/2.4.5/stairwell-2.4.5-1.el8.amd64.rpm
# RHEL 7
curl -LO https://downloads.stairwell.com/linux/2.4.5/stairwell-2.4.5-1.el7.amd64.rpm
# Install or upgrade
sudo rpm -i stairwell-2.4.5-1.el8.amd64.rpm
sudo rpm -U stairwell-2.4.5-1.el8.amd64.rpmDebian / Ubuntu (20.04, 22.04)
curl -LO https://downloads.stairwell.com/linux/2.4.5/stairwell-2.4.5-1.amd64.deb
sudo apt install ./stairwell-2.4.5-1.amd64.debLegacy: RHEL 6 (EOL)
curl -LO https://downloads.stairwell.com/linux/2.4.5/stairwell-2.4.5-1.el6.amd64.rpm
sudo rpm -i stairwell-2.4.5-1.el6.amd64.rpm
sudo rpm -U stairwell-2.4.5-1.el6.amd64.rpmStep 3: Configure the Forwarder
Edit /etc/stairwell/config.json and update your credentials:
sudo vi /etc/stairwell/config.jsonExample configuration:
{
"logger": { "loglevel": "error" },
"asset": {
"EnvId": "ABCDEF-ABCDEF-123ABC-ABCD1234",
"Token": "ABCDEFG1234567HIJKLMNOP789012QRSTUVW345678XYZABCD901"
},
"interpreters": ["sh","bash","python3","go","ruby","perl","lua","Rscript"],
"ostype": "server",
"proxyURL": "https://your.proxy.url:1234",
"enableEvents": true
}Step 4: Activate the Stairwell Service
On systemd (RHEL 7+, Ubuntu, Debian)
sudo systemctl enable --now stairwell.serviceOn RHEL 6
sudo service stairwell start
sudo chkconfig stairwell onStep 5: Verify and View Logs
On systemd
journalctl -u stairwell.service -fOn RHEL 6
sudo tail -f /var/log/stairwell/fileshipper.log🚀 Deploying the Linux Forwarder to Multiple Machines
When managing large fleets, automate deployment for consistency and speed.
1. Supported Deployment Methods
| Method | Best For | Description |
|---|---|---|
| Ansible | Most flexible | Use playbooks to automate installation/configuration. |
| Puppet / Chef / SaltStack | Enterprise fleets | Manage configuration and ensure compliance. |
| Package repository | Internal mirrors | Host .deb and .rpm internally for controlled installs. |
| Cloud-init / user data | Cloud hosts | Add installation scripts to instance initialization. |
| Custom shell script | Simple environments | Run prepackaged script to install and configure. |
2. Example: Automated Deployment with Ansible
---
- name: Install Stairwell Forwarder
hosts: linux_hosts
become: yes
vars:
stairwell_version: "2.4.5"
stairwell_env_id: "ABCDEF-ABCDEF-123ABC-ABCD1234"
stairwell_token: "ABCDEFG1234567HIJKLMNOP789012QRSTUVW345678XYZABCD901"
tasks:
- name: Download RPM
get_url:
url: "https://downloads.stairwell.com/linux/{{ stairwell_version }}/stairwell-{{ stairwell_version }}-1.el8.amd64.rpm"
dest: "/tmp/stairwell.rpm"
when: ansible_os_family == "RedHat"
- name: Install RPM
yum:
name: "/tmp/stairwell.rpm"
state: present
when: ansible_os_family == "RedHat"
- name: Download DEB
get_url:
url: "https://downloads.stairwell.com/linux/{{ stairwell_version }}/stairwell-{{ stairwell_version }}-1.amd64.deb"
dest: "/tmp/stairwell.deb"
when: ansible_os_family == "Debian"
- name: Install DEB
apt:
deb: "/tmp/stairwell.deb"
state: present
when: ansible_os_family == "Debian"
- name: Configure Stairwell
copy:
dest: /etc/stairwell/config.json
content: |
{
"logger": { "loglevel": "error" },
"asset": {
"EnvId": "{{ stairwell_env_id }}",
"Token": "{{ stairwell_token }}"
},
"interpreters": ["sh","bash","python3","go","ruby","perl","lua","Rscript"],
"ostype": "server",
"enableEvents": true
}
- name: Enable and start service
systemd:
name: stairwell.service
enabled: yes
state: started3. Example: Bash Deployment Script
#!/bin/bash
set -e
VERSION="2.4.5"
ENV_ID="YOUR_ENV_ID"
TOKEN="YOUR_TOKEN"
if [ -f /etc/debian_version ]; then
curl -LO https://downloads.stairwell.com/linux/$VERSION/stairwell-$VERSION-1.amd64.deb
sudo apt install -y ./stairwell-$VERSION-1.amd64.deb
else
curl -LO https://downloads.stairwell.com/linux/$VERSION/stairwell-$VERSION-1.el8.amd64.rpm
sudo rpm -U stairwell-$VERSION-1.el8.amd64.rpm
fi
sudo tee /etc/stairwell/config.json > /dev/null <<EOF
{
"logger": { "loglevel": "error" },
"asset": {
"EnvId": "$ENV_ID",
"Token": "$TOKEN"
},
"interpreters": ["sh","bash","python3","go","ruby","perl","lua","Rscript"],
"ostype": "server",
"enableEvents": true
}
EOF
sudo systemctl enable --now stairwell.service4. Deployment Tips
- Test first on non-critical systems
- Use idempotent tools (like Ansible)
- Stagger rollouts to reduce load
- Protect tokens via secrets management
Updated 21 days ago
