Prometheus exporter for HP iLO metrics
Project description
# HP iLO Metrics Exporter
Blackbox likes exporter used to exports HP Server Integrated Lights Out (iLO) states to Prometheus.
### Gauges
Here are the status code of gauge
```
0 - OK
1 - Degraded
2 - Dead (Other)
```
### Output example
Example of status of your iLO
```
health_at_a_glance:
battery: {status: OK}
bios_hardware: {status: OK}
fans: {redundancy: Redundant, status: OK}
memory: {status: OK}
network: {status: Link Down},
power_supplies: {redundancy: Redundant, status: OK}
processor: {status: OK}
storage: {status: Degraded}
temperature: {status: OK}
vrm: {status: Ok}
drive: {status: Ok}
```
The returned output would be:
```
hpilo_battery{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_storage{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 1.0
hpilo_fans{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_bios_hardware{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_memory{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_power_supplies{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_processor{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_network{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 2.0
hpilo_temperature{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_vrm{product_name="ProLiant DL380 Gen6",server_name="name.fqdn.domain"} 0.0
hpilo_drive{product_name="ProLiant DL380 Gen6",server_name="name.fqdn.domain"} 0.0
hpilo_firmware_version{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 2.5
```
### Installing
You can install exporter on the server directly or on separate machine.
To run, you must have `Python` and `pip` installed.
To install with `pip`:
```
pip install -e $HPILO_EXPORTER_DIR
```
Then just:
```
hpilo-exporter [--address=0.0.0.0 --port=9416 --endpoint="/metrics"]
```
### Docker
Prebuild images are available from the docker repository:
```
idnt/hpilo-exporter:latest
```
To build the image yourself
```
docker build --rm -t hpilo-exporter .
```
To run the container
```
docker run -p 9416:9416 hpilo-exporter:latest
```
You can then call the web server on the defined endpoint, `/metrics` by default.
```
curl 'http://127.0.0.1:9416/metrics?ilo_host=127.0.0.1&ilo_port=443&ilo_user=admin&ilo_password=admin'
```
Passing argument to the docker run command
```
docker run -p 9416:9416 hpilo-exporter:latest --port 9416 --ilo_user my_user --ilo_password my_secret_password
```
### Docker compose
Here is an example of Docker Compose deployment:
```yml
hpilo:
image: my.registry/hpilo-exporter
ports:
- 9416:9416
command:
- '--port=9416'
deploy:
placement:
constraints:
- node.hostname == my_node.domain
```
### Kubernetes
A helm chart is available at [prometheus-helm-addons](https://github.com/IDNT/prometheus-helm-addons).
### Prometheus config
Assuming:
- the exporter is available on `http://hpilo:9416`
- you use same the port,username and password for all your iLO
```yml
- job_name: 'hpilo'
scrape_interval: 1m
params:
ilo_port: ['443']
ilo_user: ['my_ilo_user']
ilo_password: ['my_ilo_password']
static_configs:
- targets:
- ilo_fqdn.domain
relabel_configs:
- source_labels: [__address__]
target_label: __param_ilo_host
- source_labels: [__param_ilo_host]
target_label: ilo_host
- target_label: __address__
replacement: hpilo:8082 # hpilo exporter.
```
Blackbox likes exporter used to exports HP Server Integrated Lights Out (iLO) states to Prometheus.
### Gauges
Here are the status code of gauge
```
0 - OK
1 - Degraded
2 - Dead (Other)
```
### Output example
Example of status of your iLO
```
health_at_a_glance:
battery: {status: OK}
bios_hardware: {status: OK}
fans: {redundancy: Redundant, status: OK}
memory: {status: OK}
network: {status: Link Down},
power_supplies: {redundancy: Redundant, status: OK}
processor: {status: OK}
storage: {status: Degraded}
temperature: {status: OK}
vrm: {status: Ok}
drive: {status: Ok}
```
The returned output would be:
```
hpilo_battery{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_storage{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 1.0
hpilo_fans{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_bios_hardware{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_memory{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_power_supplies{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_processor{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_network{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 2.0
hpilo_temperature{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 0.0
hpilo_vrm{product_name="ProLiant DL380 Gen6",server_name="name.fqdn.domain"} 0.0
hpilo_drive{product_name="ProLiant DL380 Gen6",server_name="name.fqdn.domain"} 0.0
hpilo_firmware_version{product_name="ProLiant DL360 Gen9",server_name="name.fqdn.domain"} 2.5
```
### Installing
You can install exporter on the server directly or on separate machine.
To run, you must have `Python` and `pip` installed.
To install with `pip`:
```
pip install -e $HPILO_EXPORTER_DIR
```
Then just:
```
hpilo-exporter [--address=0.0.0.0 --port=9416 --endpoint="/metrics"]
```
### Docker
Prebuild images are available from the docker repository:
```
idnt/hpilo-exporter:latest
```
To build the image yourself
```
docker build --rm -t hpilo-exporter .
```
To run the container
```
docker run -p 9416:9416 hpilo-exporter:latest
```
You can then call the web server on the defined endpoint, `/metrics` by default.
```
curl 'http://127.0.0.1:9416/metrics?ilo_host=127.0.0.1&ilo_port=443&ilo_user=admin&ilo_password=admin'
```
Passing argument to the docker run command
```
docker run -p 9416:9416 hpilo-exporter:latest --port 9416 --ilo_user my_user --ilo_password my_secret_password
```
### Docker compose
Here is an example of Docker Compose deployment:
```yml
hpilo:
image: my.registry/hpilo-exporter
ports:
- 9416:9416
command:
- '--port=9416'
deploy:
placement:
constraints:
- node.hostname == my_node.domain
```
### Kubernetes
A helm chart is available at [prometheus-helm-addons](https://github.com/IDNT/prometheus-helm-addons).
### Prometheus config
Assuming:
- the exporter is available on `http://hpilo:9416`
- you use same the port,username and password for all your iLO
```yml
- job_name: 'hpilo'
scrape_interval: 1m
params:
ilo_port: ['443']
ilo_user: ['my_ilo_user']
ilo_password: ['my_ilo_password']
static_configs:
- targets:
- ilo_fqdn.domain
relabel_configs:
- source_labels: [__address__]
target_label: __param_ilo_host
- source_labels: [__param_ilo_host]
target_label: ilo_host
- target_label: __address__
replacement: hpilo:8082 # hpilo exporter.
```
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
File details
Details for the file hpilo-exporter-forked-0.4.3.tar.gz
.
File metadata
- Download URL: hpilo-exporter-forked-0.4.3.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.19.1 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/2.7.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
6fad6cd35fde50050c054660fc237ad4ca1c1b12ced6071447193aadce6085b2
|
|
MD5 |
6c0a14ace6bc62a95760f6a1e5d4d2b0
|
|
BLAKE2b-256 |
a53da30a1971b9c21e5988292fca0a573625d77d2797ef33478d43c4f2213175
|