Installation
This guide covers installing Probestyx on Linux, macOS, and Windows systems.
Prerequisites
Before installing Probestyx, you need:
- A
config.yamlfile (see Configuration) - Root/Administrator access (for system service installation)
- Network access to GitHub (for downloading releases)
Important
The installation scripts require you to provide your own config.yaml file. The scripts will NOT create a default configuration for you.
Quick Installation
Linux
# 1. Create your config.yaml first
nano config.yaml
# 2. Install with your config
wget -O - https://raw.githubusercontent.com/devatlogstyx/probestyx/main/install.sh | sudo bash -s ./config.yamlmacOS
# 1. Create your config.yaml first
nano config.yaml
# 2. Install with your config
curl -fsSL https://raw.githubusercontent.com/devatlogstyx/probestyx/main/install.sh | sudo bash -s ./config.yamlWindows (PowerShell as Administrator)
# 1. Create your config.yaml first
notepad config.yaml
# 2. Install with your config
irm https://raw.githubusercontent.com/devatlogstyx/probestyx/main/install.ps1 | iex -ArgumentList ".\config.yaml"What the Installation Does
The installation script automatically:
- Downloads the latest Probestyx release binary from GitHub
- Installs to the appropriate directory:
- Linux:
/opt/probestyx - macOS:
/opt/probestyx - Windows:
C:\probestyx
- Linux:
- Copies your provided
config.yamlto the installation directory - Creates a system service:
- Linux: systemd service
- macOS: launchd service
- Windows: NSSM service
- Starts the service with auto-restart enabled
Manual Installation
If you prefer manual installation or need more control:
Step 1: Download Binary
Visit the releases page and download the appropriate binary for your platform:
probestyx-linux-amd64probestyx-linux-arm64probestyx-darwin-amd64(macOS Intel)probestyx-darwin-arm64(macOS Apple Silicon)probestyx-windows-amd64.exe
Step 2: Install Binary
Linux/macOS:
# Create installation directory
sudo mkdir -p /opt/probestyx
# Move binary
sudo mv probestyx-* /opt/probestyx/probestyx
sudo chmod +x /opt/probestyx/probestyx
# Copy your config
sudo cp config.yaml /opt/probestyx/config.yamlWindows:
# Create installation directory
New-Item -ItemType Directory -Path "C:\probestyx" -Force
# Move binary
Move-Item probestyx-windows-amd64.exe C:\probestyx\probestyx.exe
# Copy your config
Copy-Item config.yaml C:\probestyx\config.yamlStep 3: Create System Service
Linux (systemd):
Create /etc/systemd/system/probestyx.service:
[Unit]
Description=Probestyx Metrics Agent
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/probestyx
ExecStart=/opt/probestyx/probestyx
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.targetEnable and start:
sudo systemctl daemon-reload
sudo systemctl enable probestyx
sudo systemctl start probestyxmacOS (launchd):
Create /Library/LaunchDaemons/com.probestyx.plist:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.probestyx</string>
<key>ProgramArguments</key>
<array>
<string>/opt/probestyx/probestyx</string>
</array>
<key>WorkingDirectory</key>
<string>/opt/probestyx</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/var/log/probestyx.log</string>
<key>StandardErrorPath</key>
<string>/var/log/probestyx.log</string>
</dict>
</plist>Enable and start:
sudo launchctl load /Library/LaunchDaemons/com.probestyx.plistWindows (NSSM):
Download NSSM and install Probestyx as a service:
# Install NSSM service
nssm install Probestyx "C:\probestyx\probestyx.exe"
nssm set Probestyx AppDirectory "C:\probestyx"
nssm set Probestyx AppStdout "C:\probestyx\probestyx.log"
nssm set Probestyx AppStderr "C:\probestyx\probestyx.log"
nssm set Probestyx Start SERVICE_AUTO_START
# Start service
nssm start ProbestyxVerifying Installation
After installation, verify Probestyx is running:
Check Service Status
Linux:
sudo systemctl status probestyxmacOS:
sudo launchctl list | grep probestyxWindows:
nssm status ProbestyxTest HTTP Endpoint
# Check health endpoint
curl http://localhost:9100/health
# Expected output:
# OK
# Check metrics endpoint
curl http://localhost:9100/metrics
# Expected: JSON with metricsIf using authentication:
# Generate timestamp and signature
timestamp=$(date +%s)
signature=$(echo -n "$timestamp" | openssl dgst -sha256 -hmac "your-secret-key" | cut -d' ' -f2)
# Request with auth headers
curl -H "X-Timestamp: $timestamp" \
-H "X-Signature: $signature" \
http://localhost:9100/metricsPost-Installation
View Logs
Linux:
sudo journalctl -u probestyx -fmacOS:
tail -f /var/log/probestyx.logWindows:
Get-Content C:\probestyx\probestyx.log -Tail 50 -WaitUpdate Configuration
After changing config.yaml, restart the service:
Linux:
sudo systemctl restart probestyxmacOS:
sudo launchctl stop com.probestyx
sudo launchctl start com.probestyxWindows:
nssm restart ProbestyxUpgrading
To upgrade to a new version:
Using Install Script
Simply run the install script again with your config:
# Linux/macOS
wget -O - https://raw.githubusercontent.com/devatlogstyx/probestyx/main/install.sh | sudo bash -s /opt/probestyx/config.yamlManual Upgrade
- Download the new binary
- Stop the service
- Replace the binary
- Start the service
Linux:
sudo systemctl stop probestyx
sudo mv probestyx-linux-amd64 /opt/probestyx/probestyx
sudo chmod +x /opt/probestyx/probestyx
sudo systemctl start probestyxUninstalling
Linux
# Stop and disable service
sudo systemctl stop probestyx
sudo systemctl disable probestyx
# Remove files
sudo rm /etc/systemd/system/probestyx.service
sudo rm -rf /opt/probestyx
sudo systemctl daemon-reloadmacOS
# Stop and remove service
sudo launchctl unload /Library/LaunchDaemons/com.probestyx.plist
sudo rm /Library/LaunchDaemons/com.probestyx.plist
# Remove files
sudo rm -rf /opt/probestyx
sudo rm /var/log/probestyx.logWindows
# Stop and remove service
nssm stop Probestyx
nssm remove Probestyx confirm
# Remove files
Remove-Item -Recurse -Force C:\probestyxTroubleshooting
Binary Not Found
Make sure the binary is executable:
chmod +x /opt/probestyx/probestyxService Won't Start
Check the logs for errors:
# Linux
sudo journalctl -u probestyx -n 50
# macOS
cat /var/log/probestyx.log
# Windows
Get-Content C:\probestyx\probestyx.logCommon issues:
- Invalid
config.yamlsyntax - Port 9100 already in use
- Missing file permissions
Port Already in Use
Change the port in config.yaml:
server:
port: 9101 # Use a different portPermission Denied
Ensure the service runs with appropriate permissions (usually root/Administrator).
Next Steps
- Configuration - Configure Probestyx for your needs
- System Metrics - Learn about available system metrics
- Integration - Connect Probestyx to Logstyx