Open Source Monitoring System for IT Infrastructures Incorporating IoT-Based Sensors †

: This paper introduces the development of a data center monitoring system based on IoT technologies. The system is meant to work as an administrative tool for system administrators in any environment, but mainly focused on data centers, since it integrates sensor and server status data. We are developing a system that gives a broad view of a data center, integrating server data such as CPU and memory usage or network bandwidth with room health parameters such as temperature, humidity, and power consumption or the presence sensors that indicate if there were people inside the room at the time a certain event occurred. As this is a work in progress, in this paper, we present the state-of-the-art of this subject, as well as what we expect to obtain from this project.


Introduction
CITIC Research Centre is equipped with a modern DC in a hot-aisle disposition with ten 42U standard racks. All the structural elements in the DC-racks, cooling units, UPS-are from APC. Temperature and humidity sensors are distributed among all the racks, and data from these sensors are collected by a central server capable of sending alerts in case some values deviate from established thresholds. This solution also collects data from the UPS and cooling units, displaying real-time information about load, power consumption, heat dissipation, and cooling demand, amongst others. All of this information is centralized in their proprietary software, StruxuWare Central, and a license is needed for each node in the monitoring infrastructure. With the work described in this paper, we want to create an alternative to the current system using open source and open hardware elements and test if the final product can be as reliable as APC's proprietary system currently used in CITIC's DC and if this new solution can be easily adopted by any DC.
There are several open source monitoring platforms available for IT infrastructure, some of the most used being Zabbix, Nagios, or Icinga, as stated by several review sources such as DNSstuff [1], Opensource.com [2], or iTT Systems [3]. These platforms support similar features: network protocols, operating systems, SNMP. The main difference between them is that the former offers server performance monitoring besides network monitoring out of the box. Adding that Zabbix has a big development community, we decided to use it in this project.
As seen in Figure 1, we propose the installation of Arduino-compatible sensors into racks sending data to a Raspberry Pi with an instance of a home automation platform, such as HomeAssistant or openHAB. Then, we will design a script to communicate all gathered data to the Raspberry Pi from Arduinos to a Zabbix server. This Zabbix server is already deployed and is currently collecting data from a VMware infrastructure, its virtual machines, and several Windows and Linux servers. This way, we will have all relevant data of our DC centralized in our Zabbix server. A web client with responsive and mobile-oriented interfaces will be developed, and it will offer users the possibility to configure alarms, thresholds, notifications, and even interact with some of the elements in the infrastructure. We will be using DHT22 sensors for temperature/humidity monitoring and PIR sensors for presence control, all connected to Arduino-compatible boards. Specifically, we thought about using NodeMCU boards as these integrate an ESP8266 chip and allow an easy programming interface. We will also study the possibility of running these boards on battery power and test the battery life expectancy so we can install our sensors even in places where it is impossible to use the main power supplies.
There are some approaches to monitoring sensors with Zabbix like EmonTH sensors Template [4] or the ESP sensors integration for Zabbix [5]. However, these are not a complete generic solution, but templates to monitor specific sensors. Therefore, we will develop our own Zabbix monitoring templates for the chosen hardware keeping in mind that they have to be as generic as possible to monitor all kinds of sensors.
All of the above results in the two main objectives of this project: creating a centralized monitoring tool for CITIC's IT staff and verifying that a system composed of open source and open hardware elements can be as reliable as proprietary alternatives in a real-life working environments.

Materials and Methods
One of the main tools we are using in this project is CITIC's virtualization infrastructure. This includes several hosts with VMware's hypervisor, ESXi, managed by VMware's centralization tool, vCenter, where most of the Centre's servers are virtually hosted. All of these servers are physically located in APC racks where sensors are going to be placed. We are also using, as mentioned before, Arduino-compatible sensors, Arduino-based boards and Raspberry Pi boards. Once our monitoring system is complete, we will collect data from both alternatives: APC StruxuWare Central and CITIC's new monitoring system. Data will be compared, assuming the data from StruxuWare Central are correct and can be established as benchmark data, computing deviations in measurements from our open hardware sensors. If measurements from our system are in acceptable ranges, we will conclude that our system is reliable.

Conclusions
In the previous section, we described our monitoring system as an open source monitoring tool that integrates room monitoring with server monitoring using open hardware elements, and there are some articles describing similar approaches such as "Designing an open source maintenance-free Environmental Monitoring Application for Wireless Sensor Networks" [6] or "Environmental monitoring system based on an Open Source Platform and the Internet of Things for a building energy retrofit" [7]. While they offer interesting results for such monitoring applications, these articles cover different types of monitoring. The first one does not include IoT or systems monitoring, and the second one, while more focused on environmental monitoring, is oriented toward building health.
We have experience on the topic of system monitoring, with some environmental sensors on Arduino with Raspberry Pi monitoring tools or DC monitoring on Raspberry Pi with several attached sensors. Therefore, with this project, we will focus on bringing together all knowledge about the topic, integrating data from different sources into one main visualization interface with enhanced features such as real-time alerts or remote control of servers and DC cooling and power elements, offering a novel monitoring system compatible with any DC configuration by applying minor changes to our original design.