In response to increasing temperatures during unusually hot summers, our existing server room cooling systems began reaching their operational limits. Several commercial solutions for temperature monitoring were proposed by external vendors, but they were either prohibitively expensive or lacked the functionality I required—namely, a web based system that could visualize temperature data, store it long term, and send real time alerts.
As a result, I initiated a custom monitoring project using Raspberry Pi devices. Each Raspberry Pi is equipped with a USB temperature sensor and runs a custom Linux image I created to streamline configuration and deployment. This image allowed me to roll out the system to approximately 10 Raspberry Pis across different server locations.
Each Raspberry Pi collects temperature data once per minute and transmits it to a central server, where:
- A MySQL database stores all temperature logs.
- Grafana is used for data visualization and alerting.
- An external weather API is queried regularly to retrieve real time outdoor temperature data, allowing correlation analysis between internal and external conditions.
This setup not only provides continuous insight into environmental conditions in our infrastructure, but also serves as a highly flexible and cost effective alternative to proprietary solutions.
In a second phase of the project, I integrated our UPS systems into the monitoring solution. While the UPS already included a basic web interface, I assessed it as to insecure and insufficient for automated metrics extraction. Instead, I connected a Raspberry Pi directly to the UPS’s network interface to read power and battery metrics, which are also written to the central database and included in the Grafana dashboard and alert system.
This ongoing project has significantly improved our infrastructure visibility, particularly during heatwaves and power anomalies, and has laid the groundwork for further sensor integrations and infrastructure automation.