smbmc
An unofficial Rust interface for obtaining metrics from Supermicro BMCs via their web interface.
- Sensor: temperature, fan, voltage, power supply status, etc.
- PMBus: power consumption, fans, temperatures, etc. per power supply.
use ;
let client = builder
.accept_invalid_certs // BMCs ship with self-signed certificates
.build?;
let metrics = client.metrics.await?;
for sensor in metrics.sensor.unwrap_or_default
The client logs in on first use and renews the session when it expires (or
when the BMC drops it). Responses can also be parsed directly with
parse_sensors and parse_power_supplies.
Features
| Feature | Default | Description |
|---|---|---|
rustls |
yes | TLS via rustls with the ring provider |
native-tls |
TLS via the platform library | |
blocking |
Synchronous smbmc::blocking::Client |
|
serde |
Serialize/Deserialize for the models |
Examples
SMBMC_SERVER=https://192.168.1.1 SMBMC_USER=ADMIN SMBMC_PASS=secret SMBMC_INSECURE=1 \
Python
The same library is available for Python as
smbmc on PyPI.
Legal
This crate is not associated with Super Micro Computer, Inc. Supermicro's GPL-released BMC code was used as a reference, so it is licensed GPL-3.0-only.