Skip to content

FAQ

General

Why LiMon?

Because most license-monitoring products drift toward one of two bad extremes: stripped-down tools that leave you doing too much manual work, or sprawling enterprise suites that charge heavily for layers of complexity most teams never asked for.

LiMon is deliberately positioned in the middle. It is modern, fast to deploy, and focused on the operational questions that actually matter: what is being used, what is being wasted, where the bottlenecks are, and what deserves action.

That also means we are selective. LiMon is not trying to expose every knob, every integration, and every obscure workflow ever invented. It is built to cover the core monitoring and analytics needs well, stay understandable, and remain fairly priced.

What license managers does LiMon support?

LiMon currently supports FlexLM (Flexera), RLM (Reprise), LM-X (X-Formation), DSLS (Dassault Systèmes) and Sentinel RMS (Thales). It uses the vendor-provided binaries that you place in /opt/limon/tools.

Does LiMon require internet access?

No. LiMon is designed to run fully on-premises. It does not need internet access to monitor license servers, serve the web interface, or generate reports.

The only exception is webhooks, an optional Professional feature. If you send notifications to Slack or Microsoft Teams, the LiMon host needs outbound HTTPS access on port 443 to reach those services. Email goes through the SMTP relay you configure, which is usually inside your network. No inbound internet access is required.

Depending on your firewall policy, your network team may need to allow outbound traffic to:

  • Slack: *.slack.com and, in practice, https://hooks.slack.com/*
  • Microsoft Teams:
  • *.webhook.office.com for legacy O365 connectors
  • *.logic.azure.com for newer Power Automate based workflows

Note: LiMon uses standard Incoming Webhooks, meaning it only makes simple, one-way outbound POST requests to a cryptographically secure URL. It does not require you to provide service accounts, OAuth logins, or passwords for these external platforms.

Why don't you support X license server?

The legacy license monitoring market is filled with incredibly expensive tools that justify their astronomical price tags by supporting dozens of obscure, legacy license managers. Every new integration requires dedicated engineering resources to build, test, and maintain. By intentionally limiting our scope to the industry standards, we keep our development overhead low and pass those savings directly to you. We aim to provide highly reliable, premium analytics for the tools you actually use, without charging you for enterprise bloat. That said if the demand for supporting a new license manager is there we will listen.

Why don't you support X feature?

For the same reason we avoid unnecessary license-manager sprawl: every feature adds UI complexity, operational overhead, and support surface area. We are careful about what makes it onto the roadmap.

Our goal is not to build the biggest license-monitoring suite on the market. Our goal is to build the one that gives teams clear operational visibility, solid analytics, and a straightforward deployment experience without demanding contracting professional services to install it and a consulting engagement to use it.

We still listen closely to feedback. If a request aligns with the product's core direction and solves a broad, recurring customer problem, it has a credible path onto the roadmap.

Does LiMon install agents on endpoints?

No. LiMon talks directly to your license servers over the network. Nothing is installed on end-user workstations or on the monitored license-server hosts.

Will LiMon send email to the people who use our licenses?

Not on its own. Automatic notifications only go to the LiMon accounts, email addresses and webhooks an administrator adds to a notification route. License users are contacted only when an Operator or Admin sends a license-user announcement and confirms the recipient count first. Announcements need Professional with directory sync, because that is where the email addresses come from.

Installation

What are the system requirements?

The exact footprint depends on how many servers you monitor and how much activity they generate, but LiMon can start comfortably on modest infrastructure. As a practical baseline, 2 GB of RAM and 20 GB of disk is enough for smaller deployments.

For native package deployments, you need:

  • a modern Linux distribution with systemd (choose the package built for your distribution and version)
  • Python virtual-environment support (venv) and pip — the package uses your distribution's system Python, so there's no separate runtime to install
  • an existing MariaDB 10.5+ or MySQL 8.x server

Each native package bundles prebuilt offline wheels matching its target distribution's Python, so the installer can satisfy the Python module layer without reaching PyPI.

For Docker deployments, you need:

  • Docker Engine 20.10+
  • Docker Compose v2

For any deployment model, the LiMon host must be able to reach your license-server ports over the network using the same connectivity model your users already rely on.

How do I update LiMon?

LiMon upgrades are designed to be in-place. In normal cases you keep your existing data and configuration, replace only the application package or container bundle, and let the application apply any required schema migrations on startup.

Before upgrading, back up:

  • your database
  • /opt/limon/config
  • /opt/limon/tools or the equivalent mounted ./tools directory in Docker
  • /opt/limon/reports if you want to retain generated reports

Upgrading LiMon

Upgrade in place using the newer package or Docker bundle:

  • Docker offline bundle installs: replace the bundle files and re-run the installer
  • Native package installs (.deb / .rpm): install the newer package over the existing one

Your database, configuration, license state, and reports remain in place.

Updates are covered by your subscription. A release built after your subscription expired still runs, but with the subscription features switched off; see I installed a newer release and Intelligence reports stopped working.

Operation

How do I back up LiMon?

Treat the database as the primary system of record and back it up using the same process you already trust for your other production databases.

In addition, back up:

  • /opt/limon/config, which contains your installation settings
  • optionally /opt/limon/reports if you want to retain generated PDF reports
  • optionally your Docker .env file if you want to preserve compose-time settings such as ports or passwords

The application binaries themselves, and the vendor tools you supplied, can be restored from your original installation media and tool set.

Keep the config directory and database together

/opt/limon/config holds keys the database depends on, never stored in the database itself:

  • .secret-key encrypts the stored SMTP password, directory bind password and webhook secrets, and keys the pseudonyms used by privacy anonymization.
  • .installation-id is the identity your license key is bound to.
  • .ledger-signing-key signs the Compliance Ledger, if you use it.

Always restore the config directory and the database as a matched pair. Without the original config directory, stored secrets cannot be decrypted and must be re-entered, and your license key will not match the new installation.

Can I run LiMon on Windows?

LiMon is tested and supported on Linux. You may be able to run it through Docker Desktop on Windows or via WSL2 with Docker Engine, but that is outside our supported deployment model.

My license servers are on Windows. Will LiMon work?

Yes. The monitored server's operating system does not matter. LiMon queries license servers over the network using the vendor-provided tools, so Windows-hosted license servers are fine.

Can I change the default polling time?

Yes. The default polling interval is 10 minutes, which is intentionally conservative and works well for most environments.

You can tune it up or down, but we generally do not recommend going below 5 minutes. LiMon itself is fast; the real constraint is that many license managers can take a surprisingly long time to produce a full response. In some environments a single cycle can already consume one or two minutes.

The right interval depends on your server count, response times, and how much freshness you need. In Live View the System Metrics section helps you see how long real polling cycles are taking so you can tune from evidence instead of guesswork.

Can I kill idle sessions remotely?

No. LiMon is an observability and analysis tool. It does not terminate external processes or forcibly reclaim licenses from third-party applications.

Does LiMon hold SOC 2, ISO 27001, or similar security certifications?

LiMon is a self-hosted, on-premises product, so the usual SaaS-hosting certifications do not map neatly to the delivery model. We do not host your deployment, process your production data, or require your environment to trust a vendor-operated cloud service.

Instead, the security model is built around a few practical principles:

  1. Air-gap capable by design. LiMon can run with no internet access, no telemetry, and no phone-home licensing.
  2. Inspectable core application code. The core polling engine and API are source-available under BUSL-1.1, so security teams can review what the software actually does.
  3. Offline license validation. Commercial license keys are verified locally using Ed25519 public-key cryptography.

Can I restrict who can reach the frontend or Live View?

Yes. Since 2027.2, LiMon has optional built-in sign-in with Viewer, Operator and Admin roles, using local LiMon accounts or, on Professional, your organization's directory. It is off by default: until you turn it on, anyone who can reach the web port can read the dashboards. You can let anonymous visitors view while requiring sign-in to operate, or require sign-in for everything. See Authentication.

You can still, or additionally, use the controls you already run:

  • Your own reverse proxy with SSO, mutual TLS or Basic Auth in front of LiMon.
  • Firewall rules that allow the web port only from specific subnets or management hosts.
  • Network placement on a management VLAN, or behind your VPN or zero-trust access layer.

Two practical notes:

  1. The health endpoints (/api/health, /api/v1/health/tasks) and the sign-in routes always answer without credentials, so external monitoring keeps working. Block those paths at your proxy if they must not be reachable.
  2. The Docker appliance publishes the API port (8585) directly as well as the proxy on 80/443. If you restrict access at the proxy or firewall, restrict that port too, or stop publishing it.

If your concern is sensitive data rather than access itself, the privacy settings can mask or anonymize usernames and workstation names, even for people who can open the page.

I turned on sign-in and can't get into the Admin UI

The admin API key always works, in every access mode. Print it on the LiMon host:

# Native packages
sudo limon-manage show-api-key

# Docker, from the install directory
docker compose exec limon-api /opt/limon/src/bin/limon-manage show-api-key

Sign in to /admin/ with the key, then repair accounts or change the policy under Admin → Access.

I configured email, but nobody receives alerts

That is expected until you add a route. A fresh installation sends no automatic notifications: expiry digests, server problems and weekly license changes have no recipients until an Admin creates a notification route for them. Scheduled reports are separate; their recipients belong to each report schedule.

How can I monitor LiMon itself?

The Background activity panel on the Admin dashboard shows whether license polling, directory sync, daily maintenance, report scheduling and generation, and email and webhook delivery are running on time. For Nagios or Icinga, LiMon ships check_limon_health.py, which runs on your monitoring server and checks each background task over HTTP. See Health and monitoring checks.

Reports and Data

Why aren't all denials counted as lost demand?

A denial is the license server refusing a checkout, but not every refusal means someone needed a seat that wasn't there. LiMon classifies each denial by the reason the vendor reported:

  • Confirmed demand: no seats left, or seats reserved for someone else. Only these feed cost-of-delay and capacity recommendations.
  • Not demand: the user wasn't allowed to use the feature, the client or license was misconfigured, or the request asked for more seats than the pool holds.
  • Unclassified: LiMon doesn't recognise the reason. These are shown as potential demand, never in the confirmed figures.

So a report can show fewer costed denials than the server's raw count. That is deliberate: a configuration error should be fixed, not answered by buying more licenses.

Why do user and department hours differ from license hours?

They measure different things. License hours count every feature checkout, so a user holding three features of one application for an hour adds three hours. User and department pages report Time in Product: that same hour counts once, because it was one person in one application. See The Frontend.

Generating a report says too many reports are queued

LiMon runs at most five on-demand PDF reports at a time, queued or running, so a burst of requests can't overload the host. Wait for one to finish, or join a report that is already being generated. Scheduled reports don't count toward the limit. Administrators can change it with reports.jobs.max_inflight_ad_hoc_jobs; see the Configuration Reference.

Licensing

How does licensing work?

LiMon licensing has two parts:

  • a platform tier (Standard or Professional), which is perpetual
  • a subscription period, which typically runs for one year and controls subscription-only capabilities

In practice, the platform you purchase remains yours. An active subscription adds Intelligence reports on both tiers, plus advanced analytics, directory sync, directory sign-in and the Compliance Ledger on Professional, along with email support and product updates. Renewals are available in one, three, and five-year terms, with better pricing on longer commitments.

What happens when my subscription expires?

Your platform tier (Standard or Professional) keeps working. Monitoring, the Admin UI, local accounts, alerts and all the data you have collected remain available.

What stops until you renew: generating and downloading Intelligence reports (scheduled ones included), advanced analytics, directory sync and directory sign-in, new Compliance Ledger seals, email support, and product updates. Nothing is deleted, and evidence already sealed stays protected.

If directory accounts are how your team signs in, plan ahead: see Set up directory sign-in.

I installed a newer release and Intelligence reports stopped working

Each release carries the date it was built. If that date is after your subscription expired, the release runs with the subscription features off, exactly as if the subscription had just lapsed. Monitoring and your data are unaffected. Renew to restore them, or stay on a release built before your subscription expired.

Can I try before I buy?

Yes. We offer a 60-day evaluation of the Professional platform with an active subscription. No credit card is required. See limonops.com/pricing/ for details.

When the evaluation ends, LiMon becomes read-only: the dashboards keep showing the data you collected, but polling, log import, reports, alerts and the Admin UI stop until you activate a purchased key. Activate it on the same installation to carry on with that data.

Why is my license key tied to an Installation ID?

Every key, evaluation or purchased, is issued for one installation's full Installation ID, shown in the Setup Wizard and under Admin → Settings → About. The ID is stored in /opt/limon/config, so it survives upgrades and restarts. Reinstalling with an empty config directory creates a new ID that your key doesn't match; keep that directory in your backups, or contact us to have the key reissued.

Troubleshooting

First, check the logs and service status

Most problems are fastest to pin down from the logs and by confirming the LiMon services are actually running. Start here whatever the symptom, then move to the specific cases below.

Docker stack — run from your install directory (nominally /opt/limon, so Docker Compose resolves the stack):

  • docker compose ps — confirm every container is up
  • docker compose logs limon-monitor — monitor / polling logs (add -f to follow, --tail=100 to limit)
  • docker compose logs — stream every service at once

Native package (DEB/RPM):

  • systemctl status limon-monitor — confirm the service is running
  • journalctl -u limon-monitor -f — follow the LiMon service logs
  • tail -f /opt/limon/logs/limon.log — read the log file directly

No shell access? Live View surfaces the same monitor status, recent logs, parser warnings, and polling-cycle metrics directly in the browser — handy for operators who can't run commands on the host.

LiMon can't reach my license server

Start with basic network reachability from the LiMon host to the license server. Common ports include FlexLM 27000, RLM 5053, LM-X 6200, DSLS 4084 and Sentinel RMS 5093, but your actual environment may differ.

Could an administrator lockdown be blocking LiMon?

License servers can be configured to restrict what a remote client is allowed to ask for. Vendors don't block LiMon by name; they restrict request types, remote administration, client identity, or old tool versions. Sometimes that produces a clean failure, and sometimes valid-looking but incomplete output — so it's worth walking through the vendor-specific settings with your license administrator. In every case monitoring only needs read access; LiMon never requires administrative rights on the license server.

  • FlexLM — lmgrd -localonly restricts remote lmstat license-usage output: basic server status keeps working while lmstat -a loses usage, sessions, queues and reservations. Separately, lmgrd -m targeted / -m enforcing rejects FlexNet utilities older than 11.19.2, so place an lmutil of 11.19.2 or newer in /opt/limon/tools. The classic protections (-local, -2 -p, -x lmdown, lmadmin's -adminOnly) only cover mutating actions such as lmdown and lmreread and do not affect LiMon.
  • RLM — three settings can hide data: a status privilege rule in rlm.opt (INCLUDE/EXCLUDE by user, host or IP; the model changed in RLM 16), client authentication through USER records in an ISV options file (RLM 13+), and per-product license or ISV passwords. The last one is the dangerous case: password-protected products simply drop out of rlmstat output with no error, so inventory can shrink silently. Allow the LiMon host and service account for status queries, and avoid password-protecting products you want monitored.
  • LM-X — no documented setting disables -licstat; REMOTE_ACCESS_PASSWORD and api_password protect mutating operations only. If queries fail, check plain reachability (TCP_BIND_ADDRESS limits which interfaces the server listens on) and lmxendutil version compatibility.
  • DSLS — remoteAdmin must not be none, or every LiMon query fails. restricted is sufficient and is the recommended setting: it grants the reads LiMon needs while still blocking configuration changes, license removal, rereads and server stops. If restricted access is password-protected, LiMon needs the matching .ks keystore.

A version mismatch between the vendor tool and the server can look identical to a permission problem, so confirm the tool version too.

What do the server statuses UNKNOWN, DOWN and ERROR mean?

  • DOWN: LiMon ran the vendor tool and the license server didn't answer. Check the server and the network.
  • UNKNOWN: LiMon couldn't run the check at all, so it says nothing about the server. The vendor tool is missing, not configured, or can't run on this host (for example a 32-bit binary in a system without 32-bit support), or the tool is too old for that server, or too new for a legacy one. Fix the tool path or version under Admin → Settings → Tools, or set a per-server tool override.
  • ERROR: the tool ran, but LiMon couldn't interpret its output. This usually means a tool and server version mismatch or a changed output format; see The server answers, but usage data is missing or incomplete below.

A server you just added shows NEW until its first poll.

The dashboard shows no data

  • Verify the server configuration in the Admin UI.
  • Check Live View for recent log entries and errors from the affected server.
  • Check the monitor logs (see First, check the logs and service status above) for parser warnings or connection errors from the affected server.
  • Confirm the monitor process is running and that the vendor tool can connect to the target server from the LiMon host.
  • If you only see partial output from the vendor tool, it may be reaching the main license-manager port but failing to reach the vendor daemon port.
  • If the server is clearly reachable but returns nothing useful, expand Could an administrator lockdown be blocking LiMon? above and check the license server's administrative settings.

The server answers, but usage data is missing or incomplete

Missing or incomplete data usually comes down to vendor-tool incompatibilities, timeout behavior, or vendor-specific format drift. License-manager vendors are not shy about changing output formats over time, so keep similar servers on similar versions whenever you can.

Things worth checking:

  • Make sure your vendor tool (lmutil, rlmutil, and so on) can correctly query and interpret the problematic server. In some cases you may need to upgrade or downgrade the tool to match the server more closely.
  • If one server needs a different utility version, use its per-server vendor-tool override rather than changing the global tool for every server.
  • Check whether the server takes longer to respond than performance.full_data_timeout (120 seconds by default).
  • If the issue persists, active customers can send the vendor-tool output to support@limonops.com.

I can't see user details from Active Directory

  1. Directory sync requires Professional with an active subscription. If the subscription has expired, renew it at limonops.com/pricing/.
  2. The LiMon administrator must configure the directory settings in the Admin UI.
  3. Directory enrichment is not real-time. LiMon handles AD synchronization as a scheduled nightly ETL job at 03:00, specifically to avoid being rude to your domain controllers.

That delayed sync model dramatically reduces directory query volume while still keeping user enrichment useful in practice.

How do I collect diagnostics for a support request?

LiMon ships a built-in diagnostic tool that gathers everything a support engineer needs into a single ZIP — no back-and-forth required. It collects OS/host info, installation ID, license metadata, redacted config, the tail of each log file, database connectivity and schema version, API health, package/container service state, license-tool library checks, and reachability for every configured license server.

  • Native package (DEB/RPM): sudo limon-diag — writes /tmp/limon-support-<timestamp>.zip
  • Docker: run from your install directory (nominally /opt/limon) so Docker Compose resolves the stack: cd /opt/limon && bash docker-diag.sh — runs inside the LiMon container and copies the ZIP to your current directory

Attach the resulting ZIP to your email to support@limonops.com. Sensitive configuration information — passwords, keys, and tokens — is redacted before the bundle is written.