Compare commits

...

2 Commits

Author SHA1 Message Date
Benjamin Wiegand
e470c4b6eb add fast ilo exporter project 2024-09-07 12:27:36 -07:00
Benjamin Wiegand
3bc7bb3e38 add year range for projects 2024-09-07 10:39:28 -07:00
9 changed files with 26 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
www/img/ilo-drives.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 474 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
www/img/ilo-overview.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 KiB

View File

@ -72,7 +72,31 @@
</div>
<div class="project sub-section">
<h3>SMBus MITM <small>(2023)</small></h3>
<h3>Fast ILO Exporter <small>(2024)</small></h3>
<p>Uses SNMP instead of HTTP when possible to fetch metrics like temperature, fan speed, power draw, drive status, memory status, health, etc. from the ILO controller of an HP server, and exports them to Prometheus. It is significantly faster (15 seconds vs 1 minute) than the pre-existing solutions I tried which only use the slower HTTP API.</p>
<details>
<summary>More details</summary>
<p>
&emsp;&emsp;Fast ILO Exporter is a quickly thrown together Python project that I made over the course of a few days to export metrics like temperature, fan speed, power draw, drive status, memory status, health, and more from my HP server with an ILO4 controller. I built it after finding out that all the pre-existing solutions used the ILO's HTTP API and were extremely slow, requiring scrape intervals ranging from 1-5 minutes. For my purposes, such a delay is not satisfactory.
</p>
<p>
&emsp;&emsp;My implementation uses SNMP to grab most of this information, which ends up being significantly faster, easily achieving the 15 second scrape interval that I was after. The exporter also optionally fetches some minimal information not available over SNMP using the HTTP API, and maps it with the values received over SNMP. Even with all the HTTP functions enabled, it's still able to achieve my 15 second scrape interval since it only has to make 2 HTTP requests.
</p>
<p>
&emsp;&emsp;I also took the time to make this project publicly available too. You can view the source code <a href="https://github.com/Benjamin-Wiegand/ilo_exporter" target="_blank">on GitHub</a> or <a href="https://git.wiegand.pw/ben/fast_ilo_exporter" target="_blank">my personal git server</a>.
</p>
</details>
<div class="double-screenshot">
<a target="_blank" href="/img/ilo-overview.jpg"><img src="/img/ilo-overview-thumb.webp" alt="overview of my ILO dashboard in grafana"></a>
<a target="_blank" href="/img/ilo-temperatures.jpg"><img src="/img/ilo-temperatures-thumb.webp" alt="temperature sensor data shown in my ILO dashboard in grafana"></a>
<a target="_blank" href="/img/ilo-drives.jpg"><img src="/img/ilo-drives-thumb.webp" alt="drive health, status, and temperature shown in my ILO dashboard in grafana"></a>
<a target="_blank" href="/img/ilo-fan-and-cpu-info.jpg"><img src="/img/ilo-fan-and-cpu-info-thumb.webp" alt="fan speed, fan health, fan status, and cpu status shown in my ILO dashboard in grafana"></a>
</div>
<small>click image to view in full resolution</small>
</div>
<div class="project sub-section">
<h3>SMBus MITM <small>(2023/2024)</small></h3>
<p>Uses a microcontroller to intercept laptop battery communications, providing additional information regarding battery health and maintenance.</p>
<details title="the deets">
<summary>More details</summary>
@ -93,7 +117,7 @@
</div>
<div class="project sub-section">
<h3>Android Security Camera <small>(2021)</small></h3>
<h3>Android Security Camera <small>(2021/2022)</small></h3>
<p>Turns an ordinary Android phone into a network security camera with a live feed and local motion detection and recording. It additionally sends the recordings to a local server for later viewing.</p>
<details title="the deets">
<summary>More details</summary>