Prometheus exporter for FLEXlm License Manager
lmstat
license information.
If you are looking for other License Managers metrics (like rlm,lmx, and mathlm), please check the License Manager Exporter.
go install github.com/mjtrangoni/flexlm_exporter
cd $GOPATH/src/github.com/mjtrangoni/flexlm_exporter
make
This is an illustrative example of the configuration file in YAML format.
# FlexLM Licenses to be monitored.
---
licenses:
- name: app1
license_file: /usr/local/flexlm/licenses/license.dat.app1
features_to_exclude: feature1,feature2
monitor_users: True
monitor_reservations: True
monitor_versions: False
- name: app2
license_server: 28000@host1,28000@host2,28000@host3
features_to_include: feature5,feature30
monitor_users: True
monitor_reservations: True
monitor_versions: False
Notes:
- It is possible to define a license with a path in
license_file
, that has to be readable from the exporter instance, or withlicense_server
in aport@host
combination format. - You can exclude some features from exporting with
features_to_exclude
, or export some defined and exclude the rest withfeature_to_include
.
./flexlm_exporter <flags>
Docker images are available on,
- Quay.io.
$ docker pull quay.io/mjtrangoni/flexlm_exporter:latest
- Docker.
$ docker pull mjtrangoni/flexlm_exporter:latest
- GHCR.
$ docker pull ghcr.io/mjtrangoni/flexlm_exporter:latest
Please make sure that SELinux is not running in your host, or run the container as root.
You can launch a flexlm_exporter container with,
$ export DOCKER_REPOSITORY="quay.io/mjtrangoni/flexlm_exporter:latest"
$ export LMUTIL_LOCAL="PATH where your lmutil binary is located"
$ export CONFIG_PATH_LOCAL="PATH where your exporter config file is located"
$ docker run --name flexlm_exporter -d -p 9319:9319 \
--volume $LMUTIL_LOCAL:/usr/bin/flexlm/ \
--volume $CONFIG_PATH_LOCAL:/home/exporter/config/licenses.yml \
$DOCKER_REPOSITORY --path.lmutil="/usr/bin/flexlm/lmutil" \
--path.config="/home/exporter/config/licenses.yml"
Metrics will now be reachable at http://localhost:9319/metrics.
lmutil lmstat -v
information.lmutil lmstat -c license_file -a
orlmutil lmstat -c license_server -a
license information.lmutil lmstat -c license_file -i
orlmutil lmstat -c license_server -i
license features expiration date.
Prometheus rules for alerting with Prometheus Alertmanager.
groups:
- name: FlexLM
rules:
- alert: FlexLmServerDown
expr: flexlm_server_status == 0
for: 5m
labels:
severity: error
annotations:
summary: "Flexlm Error (instance {{ $labels.instance }})"
description: "FlexLm {{ $labels.collector }} was not successful\n VALUE = {{ $value }}\n LABELS: {{ $labels }}"
- alert: LicenceAvailable
expr: 100*(flexlm_feature_used / flexlm_feature_issued) > 95
for: 5m
labels:
severity: warning
annotations:
summary: "Licence Available Status (instance {{ $labels.instance }})"
description: "Licence fully used \n VALUE = {{ $value }}\n LABELS: {{ $labels }}"
- alert: LicenseExpiring
expr: ((flexlm_feature_expiration_seconds - time()) / 86400) < 14
for: 30m
labels:
severity: warning
annotations:
summary: License {{ $labels.app }} expiring soon on {{ $labels.instance }}
description: License {{ $labels.app }} on {{ $labels.instance }} has {{ $labels.features }} features ({{ $labels.licenses }} licenses) expiring in {{ $value }} days
Refer to CONTRIBUTING.md
Apache License 2.0, see LICENSE.