infoblox-exporter
Overview
The infoblox-exporter collect metrics from an infoblox master. Currently, two types of metrics is supported:
- Member service and member node service managed by the master.
- DHCP utilization based on networks
Metrics
Members
Service, member or nodes, are reported as a gauge state 1=WORKING, 0=FAILED, 2=UNKNOWN.
Any services in the INACTIVE state are not included.
For node services the label node_ip is added. If the node is part of a HA setup the value is an
ip address, if not the value is NO_HA_IP.
Example output for a member that have HA setup:
# HELP infoblox_node_service_status_node_status Node service node_status 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_node_status gauge
infoblox_node_service_status_node_status{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_node_status{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_disk_usage Node service disk_usage 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_disk_usage gauge
infoblox_node_service_status_disk_usage{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_disk_usage{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_enet_lan Node service enet_lan 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_enet_lan gauge
infoblox_node_service_status_enet_lan{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_enet_lan{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_enet_ha Node service enet_ha 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_enet_ha gauge
infoblox_node_service_status_enet_ha{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_enet_ha{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_enet_mgmt Node service enet_mgmt 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_enet_mgmt gauge
infoblox_node_service_status_enet_mgmt{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_enet_mgmt{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_replication Node service replication 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_replication gauge
infoblox_node_service_status_replication{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_replication{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_db_object Node service db_object 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_db_object gauge
infoblox_node_service_status_db_object{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_db_object{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_fan Node service fan 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_fan gauge
infoblox_node_service_status_fan{identity="1",node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_fan{identity="10.99.0.141"} 1.0
infoblox_node_service_status_fan{identity="2",node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_fan{identity="10.99.0.141"} 1.0
infoblox_node_service_status_fan{identity="3",node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_fan{identity="10.99.0.141"} 1.0
infoblox_node_service_status_fan{identity="1",node_ip="10.99.0.142"} 1.0
infoblox_node_service_status_fan{identity="10.99.0.142"} 1.0
infoblox_node_service_status_fan{identity="2",node_ip="10.99.0.142"} 1.0
infoblox_node_service_status_fan{identity="10.99.0.142"} 1.0
infoblox_node_service_status_fan{identity="3",node_ip="10.99.0.142"} 1.0
infoblox_node_service_status_fan{identity="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_power_supply Node service power_supply 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_power_supply gauge
infoblox_node_service_status_power_supply{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_power_supply{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_ntp_sync Node service ntp_sync 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_ntp_sync gauge
infoblox_node_service_status_ntp_sync{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_ntp_sync{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_cpu_temp Node service cpu_temp 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_cpu_temp gauge
infoblox_node_service_status_cpu_temp{identity="1",node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_cpu_temp{identity="10.99.0.141"} 1.0
infoblox_node_service_status_cpu_temp{identity="1",node_ip="10.99.0.142"} 1.0
infoblox_node_service_status_cpu_temp{identity="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_sys_temp Node service sys_temp 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_sys_temp gauge
infoblox_node_service_status_sys_temp{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_sys_temp{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_cpu_usage Node service cpu_usage 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_cpu_usage gauge
infoblox_node_service_status_cpu_usage{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_cpu_usage{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_cpu_usage{node_ip="10.99.0.142"} 1.0
infoblox_node_service_status_cpu_usage{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_core_files Node service core_files 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_core_files gauge
infoblox_node_service_status_core_files{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_core_files{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_memory Node service memory 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_memory gauge
infoblox_node_service_status_memory{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_memory{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_swap_usage Node service swap_usage 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_swap_usage gauge
infoblox_node_service_status_swap_usage{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_swap_usage{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_discovery_capacity Node service discovery_capacity 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_discovery_capacity gauge
infoblox_node_service_status_discovery_capacity{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_discovery_capacity{node_ip="10.99.0.142"} 1.0
# HELP infoblox_node_service_status_vpn_cert Node service vpn_cert 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_node_service_status_vpn_cert gauge
infoblox_node_service_status_vpn_cert{node_ip="10.99.0.141"} 1.0
infoblox_node_service_status_vpn_cert{node_ip="10.99.0.142"} 1.0
# HELP infoblox_service_status_dhcp Service dhcp 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_service_status_dhcp gauge
infoblox_service_status_dhcp 1.0
# HELP infoblox_service_status_dns Service dns 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_service_status_dns gauge
infoblox_service_status_dns 1.0
# HELP infoblox_service_status_dot_doh Service dot_doh 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_service_status_dot_doh gauge
infoblox_service_status_dot_doh 2.0
# HELP infoblox_service_status_ntp Service ntp 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_service_status_ntp gauge
infoblox_service_status_ntp 1.0
# HELP infoblox_service_status_hsm Service hsm 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_service_status_hsm gauge
infoblox_service_status_hsm 2.0
# HELP infoblox_service_status_reporting Service reporting 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_service_status_reporting gauge
infoblox_service_status_reporting 1.0
# HELP infoblox_service_status_imc_dca_bwl Service imc_dca_bwl 1=WORKING, 0=FAILED, 2=UNKNOWN
# TYPE infoblox_service_status_imc_dca_bwl gauge
infoblox_service_status_imc_dca_bwl 2.0
# HELP infoblox_node_info Node info info
# TYPE infoblox_node_info gauge
infoblox_node_info{ha_status="PASSIVE",hwid="0805201903700276",hwtype="IB-815",node_ip="10.99.0.141",platform="PHYSICAL"} 1.0
infoblox_node_info{ha_status="ACTIVE",hwid="0805201903700277",hwtype="IB-815",node_ip="10.99.0.142",platform="PHYSICAL"} 1.0
# HELP infoblox_up Infoblox API up
# TYPE infoblox_up gauge
infoblox_up 1.0
# HELP infoblox_scrape_time_seconds Infoblox API scrape time
# TYPE infoblox_scrape_time_seconds gauge
infoblox_scrape_time_seconds 0.33961824301513843
In addition to all the service metrics there is also infoblox_node_info with additional metadata
labels. Metrics value is always 1.0
The infoblox_up is set to 1.0 if the exporter could connect to the Infoblox master and that the
member exists.
DHCP utilization
For a specific network that the infoblox master manage the metrics show the utilization of DCHP addresses. This can be valuable to alert on if the metrics is close to 1.0, 100 % utilization
# HELP infoblox_dhcp_utilization_ratio DHCP utilization ratio
# TYPE infoblox_dhcp_utilization_ratio gauge
infoblox_dhcp_utilization_ratio{network="140.166.134.128/26"} 0.212
# HELP infoblox_up Infoblox API up
# TYPE infoblox_up gauge
infoblox_up 1.0
# HELP infoblox_scrape_time_seconds Infoblox API scrape time
# TYPE infoblox_scrape_time_seconds gauge
infoblox_scrape_time_seconds 0.28882534499280155
Discovery
Please see the infoblox-discovery to get dynamic Prometheus discovery configuration for
Environment variables
The following variables ar mandatory to set.
- BASIC_AUTH_USERNAME - the basic auth username to the exporter
- BASIC_AUTH_PASSWORD - the basic auth password to the exporter
- INFOBLOX_MASTER - the ip/fqdn to the infoblox server
- INFOBLOX_WAPI_VERSION - the Infoblox master api version
- INFOBLOX_USERNAME - the Infoblox master username
- INFOBLOX_PASSWORD - the Infoblox master password
The following are optional
- EXPORTER_HOST - default to
0.0.0.0 - EXPORTER_PORT - default to
9597 - EXPORTER_LOG_LEVEL - default to
INFO
Test
curl -s 'localhost:9597/probe?target=host.foo.com&module=member_services'
The type can have the following values:
- member_services - the target is infoblox member
- dhcp_utilization - the target has to be network like
10.121.151.128/26
Metadata
Release files for infoblox-exporter 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| infoblox-exporter-0.1.5.tar.gz | 24.7 kB | Without provenance | Details for infoblox-exporter-0.1.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| infoblox_exporter-0.1.5-py3-none-any.whl | Python 3 | none | any | Details for infoblox_exporter-0.1.5-py3-none-any.whl |
Total release size: 54.2 kB
Release files / infoblox-exporter-0.1.5.tar.gz
| Download URL | infoblox-exporter-0.1.5.tar.gz |
|---|---|
| Size | 24.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
61893c0e09c1d61c8345192e9a6c3b306fd8f90479ef9319829d79dee853a168
|
|
BLAKE2b-256 checksum How to use checksums |
ee098e99b2f85c06afcbbb8fe5aef7a52f2f15eb7c3c1c6b43bccf4e5dc29b64
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Release files / infoblox_exporter-0.1.5-py3-none-any.whl
| Download URL | infoblox_exporter-0.1.5-py3-none-any.whl |
|---|---|
| Size | 29.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e0d558929d2c09a2490472bd70be345fe57ad4cebb02c6b724142697d676d7cc
|
|
BLAKE2b-256 checksum How to use checksums |
6f6a520c1fdfa814bd0a33f41911b9de4f91734ccb52f0500367d388e0445889
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.4
|
Security for infoblox-exporter 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.