94 lines
4.1 KiB
Markdown
94 lines
4.1 KiB
Markdown
# prometheus_node_exporter
|
|
|
|
[![CI](https://github.com/loganmarchione/hassos-addons/actions/workflows/main.yml/badge.svg)](https://github.com/loganmarchione/hassos-addons/actions/workflows/main.yml)
|
|
|
|
The Prometheus [Node Exporter](https://github.com/prometheus/node_exporter) for hardware and OS metrics exposed by \*NIX kernels.
|
|
|
|
## Installation
|
|
|
|
1. Add my [repository](https://github.com/loganmarchione/hassos-addons). The URL is `https://github.com/loganmarchione/hassos-addons`.
|
|
1. Search for the "Prometheus Node Exporter" add-on in the Supervisor add-on store and install it.
|
|
1. Disable "Protection mode" in the add-on panel.
|
|
1. Optional - Check the `Configuration` tab of the add-on to make any changes you'd like.
|
|
1. Start the add-on.
|
|
1. Check the `Logs` tab of the add-on to see if everything went well.
|
|
1. To verify the metrics are available, visit `http://your_home_assistant_ip_address:9100/metrics` in your browser, or use curl: `curl -X GET http://your_home_assistant_ip_address:9100/metrics`.
|
|
|
|
## Configuration
|
|
|
|
By default, Prometheus Node Exporter listens on TCP port 9100.
|
|
|
|
### HTTP Basic Authentication
|
|
|
|
[HTTP Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication) is disabled by default. If you want to enable HTTP Basic Auth:
|
|
|
|
1. set `enable_basic_auth` to true
|
|
1. enter the `basic_auth_user` and `basic_auth_pass`
|
|
|
|
### TLS
|
|
|
|
TLS is disabled by default. If you want to enable TLS:
|
|
|
|
1. set `enable_tls` to true
|
|
1. enter the `cert_file` and `cert_key`
|
|
|
|
⚠️ Note that the `cert_file` and `cert_key` need to be a `/path/to/fullchain.pem` and `/path/to/privkey.pem`, respectively (`/config` and `/ssl` are mapped to this add-on) ⚠️
|
|
|
|
### Command-line arguments
|
|
|
|
This option allows you to pass command-line arguments directly to Prometheus Node Exporter. This is particularly useful to adjust which [collectors](https://github.com/prometheus/node_exporter/#collectors) run. For example, to disable all collectors except the `cpu` collector, you can use this string: `--collector.disable-defaults --collector.cpu`.
|
|
|
|
## Usage (in Prometheus server)
|
|
|
|
Add the following to the `/etc/prometheus/prometheus.yml` config file on your Prometheus server:
|
|
|
|
```
|
|
scrape_configs:
|
|
...
|
|
...
|
|
...
|
|
- job_name: 'homeassistant'
|
|
static_configs:
|
|
- targets: ['your_home_assistant_ip_address:9100']
|
|
basic_auth:
|
|
username: username_goes_here
|
|
password: password_goes_here
|
|
```
|
|
|
|
The following Prometheus query should return data:
|
|
|
|
```
|
|
node_uname_info{job="homeassistant"}
|
|
```
|
|
|
|
## Support
|
|
|
|
- Tested on `amd64` and `aarch64` (Raspberry Pi 4B) platforms
|
|
|
|
## License
|
|
|
|
WIP
|
|
|
|
## Known issues
|
|
|
|
- [ ] The "Open Web UI" button doesn't work when Home Assistant is behind a reverse proxy.
|
|
- [x] Only tested on `amd64` builds.
|
|
|
|
## TODO
|
|
|
|
- [x] Add HTTP Basic Auth
|
|
- [x] Add abilty to enter plain-text password instead of bcyrpt-ed hash
|
|
- [x] Add TLS
|
|
- [x] Per [this comment](https://community.home-assistant.io/t/hello-world-example-addon-from-developer-docs-stopped-working-s6-overlay-issue/421486/7), setup container images on a registry (DockerHub or GitHub) so that users aren't building the container with each install (would have prevented [this issue](https://github.com/loganmarchione/hassos-addons/issues/2))
|
|
- [x] Investigate CI/CD for this repo, specifically [this](https://github.com/home-assistant/actions) and [this](https://github.com/hassio-addons/addon-glances/blob/main/.github/workflows/ci.yaml) as an example
|
|
- [ ] Investigate dropping API access (e.g., `hassio_api`, `homeassistant_api`, `auth_api`) in order to get my rating up
|
|
|
|
## FAQ
|
|
|
|
- Doesn't Home Assistant already have Prometheus integration?
|
|
- Yes, but the [official integration](https://www.home-assistant.io/integrations/prometheus/) only exposes entity-related metrics, not host-related metrics.
|
|
- Isn't there already an Prometheus add-on?
|
|
- Yes, but that [add-on](https://github.com/hassio-addons/addon-prometheus) is for Prometheus server, not the node exporter.
|
|
- Why does this add-on require so many permissions?
|
|
- The add-on needs to access to host-level metrics (CPU, memory, disk, etc...). As such, I have requested all possible permissions. Please inspect the code of this add-on before you run it.
|