Connecto to Nakivo API and export metrics to Prometheus
Project description
Nakivo Prometheus exporter
This tool connects to Navkio Backup & Replication API endpoints, and fetches licensing and backup information in order to present this data as prometheus metrics that can be pulled via a /metrics
endpoint.
Compatibility
This project has been tested on Nakivo Backup & Replication v9 and v10.
It runs on most Linux flavors that have Python 3.6+, and can even run on Windows.
So far, Nakivo requires you to have an enterprise plus license to be able to use the API.
Requires python-pip for setup via dnf install python3-pip
or apt-get install python3-pip
Grafana dashboard
The exporter comes with a basic Grafana Dashboard, showing:
- Licensing status
- Backup states for objects of per job
- Backup sizes
- Backup durations
Quick start
Create a readonly API user (View only role) so your exporter doesn't have more rights than it should.
Grab yourself a copy of nakivo_prometheus_exporter
by running
python3 pip install nakivo_prometheus_exporter
Create your YAML config file in let's say /etc/nakivo_prometheus_exporter.yaml
http_server:
listen: 0.0.0.0
port: 9119
username: me
password: MySecret!Password
# We usually don't authenticate for prometheus exporters
no_auth: true
log_file: /var/log/nakivo_prometheus_exporter.log
nakivo_hosts:
- MyNakivoHost:
host: https://mynakivohost.tld:4443
username: readonly
password: SomeNicePassword
cert_verify: False
- AnotherNakivoHost:
host: https://othernakivo.local:4443
username: readonly
password: OtherPasswrod
cert_verify: True
Once you're done, you can try to run the exporter with
nakivo_prometheus_exporter --config-file=/etc/nakivo_prometheus_eporter.yaml
Once running, you might want to check the metrics with:
curl http://localhost:9119/metrics
If everything works, you can use the provided systemd service file from the systemd directory, copy it into /etc/systemd/system
and run the service with
systemctl enable --now nakivo_prometheus_exporter
Caveats
Since on every scraping, the exporter connects to ALL Nakivo API endpoints defined in the host section, you should set the scraper interval to something reasonable like 1 hour, and increase the scrape timeout value to one minute (see the prometheus.yml
example file).
Other caveats
This is a quick and dirty proof of concept, only fetching backup states/duration/sizes and licensing state.
There's still quiescing information missing (didn't find it in the (Nakivo API)[https://helpcenter.nakivo.com/api-reference/Content/API-Reference-Overview.htm])
If some traction is obersved for the project, we might add missing or interesting metrics.
Running on Windows
While this typically targets Linux, one can run this exporter on Windows, as single threaded instance without concurrency. Running as service can be achieved via nssm.
Troubleshooting
You can enable debugging in order to have more info with
export _DEBUG=true
/usr/local/bin/nakivo_prometheus_exporter -c /etc/nakivo_prometheus.exporter.yaml
Like it ?
Write us ;)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file nakivo_prometheus_exporter-0.3.0.tar.gz
.
File metadata
- Download URL: nakivo_prometheus_exporter-0.3.0.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89fa8e7eb778f9562b8ac2e4ad88e83a65b9c91c0059a5050ea69dd266841b0c |
|
MD5 | a5703e9125af865154cd4fd1b1fcb91e |
|
BLAKE2b-256 | 0ab597da2a569098c5827f5481d6bc8328c8ddbb69466298eee7b8e95f0cd55f |
File details
Details for the file nakivo_prometheus_exporter-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: nakivo_prometheus_exporter-0.3.0-py3-none-any.whl
- Upload date:
- Size: 13.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.12.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f57cd810dbd20078f6354e7d4ddb634eeaf5baef9515d323ece21b4ce1a3bd7 |
|
MD5 | 7fda77c727c2a500a10b88e53110ae6f |
|
BLAKE2b-256 | 5dc92ea27d882b7449352584e98a7bcdcfeb58904724e8998713468795977279 |