Linux
- x86_64 (64-bit) only
- systemd required
- RHEL, Ubuntu, Debian, etc.
Download the collector binary directly for your operating system and architecture.
⚠️ Requires root privileges
export LICENSEWARE_TOKEN="your-token-here" curl -sSL https://licenseware-collector.com/install.sh | sudo bash For environments with a proxy or custom CA certificate, set the variables before running the installer:
export LICENSEWARE_TOKEN="your-token-here"
export HTTPS_PROXY="http://proxy.corp.com:8080" # optional
export NO_PROXY="localhost,127.0.0.1" # optional
curl -sSL https://licenseware-collector.com/install.sh | sudo bashOr if you downloaded the binary manually:
export HTTPS_PROXY="http://proxy.corp.com:8080" # optional
export NO_PROXY="localhost,127.0.0.1" # optional
sudo ./licenseware-collector register --token "eyJhbG..." \
--ca-cert /etc/ssl/certs/corp-ca.pem| Flag / Variable | Required | Description |
|---|---|---|
--token / LICENSEWARE_TOKEN | Yes | JWT token from the Licenseware platform |
--ca-cert / CA_CERT_PATH | No | Path to PEM file with custom CA certificates (for on-prem / TLS inspection) |
--env-file | No | Path to a file with environment variables to load |
HTTPS_PROXY | No | HTTP(S) proxy for outbound traffic. Automatically saved to the service config. |
NO_PROXY | No | Comma-separated list of hosts to bypass the proxy |
⚠️ Requires Administrator privileges
token.txt with your token pasted in the file, then run:$env:LICENSEWARE_TOKEN = Get-Content token.txt -Raw $env:LICENSEWARE_TOKEN = "your-token-here" Invoke-WebRequest -Uri https://cdn.licenseware-collector.com/LicensewareCollector.exe `
-OutFile LicensewareCollector.exe.\LicensewareCollector.exe All options can also be passed as flags instead of environment variables. The full syntax is:
.\LicensewareCollector.exe register --token <TOKEN> `
--ca-cert <PATH> --env-file <PATH>| Flag | Env Variable | Required | Description |
|---|---|---|---|
--token, -t | LICENSEWARE_TOKEN | Yes | JWT token from the Licenseware platform |
--ca-cert | CA_CERT_PATH | No | Path to PEM file with custom CA certificates (for on-prem / TLS inspection) |
--env-file, -e | — | No | Path to a file with environment variables to load |
| — | HTTPS_PROXY | No | HTTP(S) proxy for outbound traffic. Automatically saved to the service config. |
| — | NO_PROXY | No | Comma-separated list of hosts to bypass the proxy |
$env:HTTPS_PROXY = "http://proxy.corp.com:8080"
$env:NO_PROXY = "localhost,127.0.0.1"
.\LicensewareCollector.exe register `
--token "eyJhbG..." --ca-cert "C:\certs\internal-ca.pem"If your network requires an HTTP proxy for outbound connections, the collector natively supports standard proxy environment variables for all egress traffic.
| Variable | Description | Example |
|---|---|---|
HTTPS_PROXY | Proxy for HTTPS traffic (used for all collector communication) | http://proxy.corp.com:8080 |
HTTP_PROXY | Proxy for plain HTTP traffic | http://proxy.corp.com:8080 |
NO_PROXY | Comma-separated list of hosts to bypass the proxy | localhost,127.0.0.1,.internal.corp |
Authenticated proxies are supported using the format http://user:password@proxy.corp.com:8080.
Add the proxy variables to the collector environment file on the target machine. Each line uses KEY=value format.
HTTPS_PROXY=http://proxy.corp.com:8080
NO_PROXY=localhost,127.0.0.1/etc/default/licenseware-collectorHTTPS_PROXY=http://proxy.corp.com:8080
NO_PROXY=localhost,127.0.0.1/usr/local/etc/licenseware-collectorHTTPS_PROXY=http://proxy.corp.com:8080
NO_PROXY=localhost,127.0.0.1C:\ProgramData\Licenseware\collector.envAfter modifying the environment file, restart the collector service for changes to take effect:
sudo systemctl restart licenseware-collector sudo launchctl kickstart -k system/io.licenseware.collector Restart-Service licenseware-collector Corporate proxies that perform TLS inspection inject their own CA certificate into the chain. The collector must be configured to trust these certificates, otherwise all HTTPS connections will fail.
| Option | Description | Example |
|---|---|---|
CA_CERT_PATH | Environment variable pointing to a PEM file with additional CA certificates | /etc/ssl/corp-ca.pem |
--ca-cert | CLI flag (overrides CA_CERT_PATH when set) | --ca-cert /etc/ssl/corp-ca.pem |
Custom certificates are appended to the system certificate pool, not replacing it. All standard system CAs remain trusted.
Add the CA_CERT_PATH variable to the collector environment file, pointing to the PEM file containing your corporate CA certificate(s).
CA_CERT_PATH=/etc/ssl/certs/corp-ca.pem /etc/default/licenseware-collectorCA_CERT_PATH=/usr/local/etc/ssl/corp-ca.pem /usr/local/etc/licenseware-collectorCA_CERT_PATH=C:\ProgramData\Licenseware\corp-ca.pem C:\ProgramData\Licenseware\collector.envAfter modifying the environment file, restart the collector service for changes to take effect:
sudo systemctl restart licenseware-collector sudo launchctl kickstart -k system/io.licenseware.collector Restart-Service licenseware-collector sudo licenseware-collector uninstall --force sudo rm /usr/local/bin/licenseware-collector licenseware-collector.exe uninstall --force del "%ProgramData%\Licenseware\LicensewareCollector.exe" All communication uses HTTPS with Bearer token authentication.
| Method | Endpoint | Purpose | Frequency |
|---|---|---|---|
| POST | /agent/register | Register agent | Once |
| GET | /agent/configs | Fetch configs | Every 30m |
| GET | /agent/catalogs | Get catalogs | Every 30m |
| POST | /agent/ingest | Upload data | Cyclical |
What You Do
What the Collector Does
Comprehensive system, hardware, and software inventory collection
| Data Collected | Linux | Windows | macOS |
|---|---|---|---|
| System Info (hostname, CPU, RAM) | ✓ | ✓ | ✓ |
| Installed Programs | ✓ | ✓ | ✓ |
Software usage patterns and execution history
| Data Collected | Linux | Windows | macOS |
|---|---|---|---|
| Execution History (Prefetch, BAM, Access Times) | ✓ | ✓ | ✓ |
Running processes, services, and active sessions
| Data Collected | Linux | Windows | macOS |
|---|---|---|---|
| Running Processes & Active Users | ✓ | ✓ | ✓ |
/usr/local/bin/licenseware-collector /etc/systemd/system/licenseware-collector.service /etc/default/licenseware-collector C:\ProgramData\Licenseware\LicensewareCollector.exe C:\ProgramData\Licenseware\collector.env /usr/local/bin/licenseware-collector /Library/LaunchDaemons/io.licenseware.collector.plist /etc/licenseware-collector.env licenseware-collector register --token <TOKEN>licenseware-collector statuslicenseware-collector stoplicenseware-collector run-onceThe collector writes all logs to standard error. How you access them depends on the operating system and service manager.
The verbosity is controlled by the LOG_LEVEL environment variable in the collector environment file. The default is error.
| Level | Description |
|---|---|
debug | Most verbose — all messages including internal state |
info | Operational messages (startup, config reload, ingestion cycles) |
warn | Non-critical issues that may need attention |
error | Failures only (default) |
critical | Fatal errors that stop the service |
On systemd-based systems, logs are captured by the journal automatically.
journalctl -u licenseware-collector -f journalctl -u licenseware-collector --since "1 hour ago" The launchd service writes both stdout and stderr to a single log file.
tail -f /var/log/licenseware-collector.log cat /var/log/licenseware-collector.log The Windows service itself does not write application logs to a file or to the Windows Event Log. Use the commands below in an Administrator PowerShell to investigate the service: check its state, inspect service start/stop/crash records that Windows itself emits, and capture full application output by running the collector interactively.
licenseware-collector status Get-Service licenseware-collector | Format-List Name, Status, StartType, DisplayName sc.exe qc licenseware-collector ; sc.exe qfailure licenseware-collector Get-WinEvent -FilterHashtable @{
LogName = 'System'
StartTime = (Get-Date).AddDays(-1)
ProviderName = 'Service Control Manager'
} | Where-Object { $_.Message -match 'licenseware-collector' } |
Format-List TimeCreated, Id, LevelDisplayName, MessageGet-WinEvent -FilterHashtable @{
LogName = 'Application'
StartTime = (Get-Date).AddDays(-7)
} | Where-Object { $_.Message -match 'LicensewareCollector' } |
Format-List TimeCreated, ProviderName, Id, LevelDisplayName, Messageeventvwr.msc Stop-Service licenseware-collector
$env:LOG_LEVEL = 'debug'
licenseware-collector run-once --env-file C:\ProgramData\Licenseware\collector.env *>&1 |
Tee-Object -FilePath "$env:USERPROFILE\licenseware-collector-debug.log"
Start-Service licenseware-collector*>&1 redirection merges every PowerShell stream (stdout, stderr, warnings, verbose, debug) so nothing the collector writes is lost.Get-Content "$env:USERPROFILE\.licenseware-collector\install.log" -Tail 200