ADMIN

2025

11

2025-10-28T12:00:00

Disaster Recovery

PRAXIS

052

Rechenzentrum

Monitoring

Energiemanagement mit CMDBuild und openMAINT

Unter Strom

von Dr. Holger Reibold

Veröffentlicht in Ausgabe 11/2025 - PRAXIS

CMDBuild zur Verwaltung ist insbesondere für das Asset- und IT-Service-Management ein beliebtes Werkzeug. Doch das Fehlen von ITIL-Prozessen schränkt seinen Einsatzbereich vielerorts ein – so lässt sich beispielsweise das Energiemanagement in Rechenzentren mit dem Werkzeug kaum umsetzen. Hier kommt openMAINT ins Spiel und die Allianz aus beiden verspricht, Verbrauchsdaten zugänglich und verwaltbar zu machen. Wie der Einstieg in die jedoch recht kniffelige Umsetzung gelingt, zeigt dieser Workshop.

Asset- und Konfigurationsmanagement hat im Open-Source-Umfeld einen Namen: CMDBuild [1] (Configuration Management Database Build). Die quelloffene Anwendung dient insbesondere der Verwaltung von Configuration Items (CIs) wie Servern, Anwendungen, Netzwerken, Verträgen et cetera. Das webbasierte und erweiterbare Enterprise-Tool ermöglicht es Unternehmen, IT-Assets, Geschäftsprozesse und Services in einer zentralen Datenbank zu modellieren und zu verwalten.
CMDBuild dient der CMDB-Verwaltung (Configuration Management Database) und ist ideal für Organisationen, die individuelle Anforderungen haben und bereit sind, Zeit in die Konfiguration zu investieren. Für kleinere Unternehmen oder solche, die eine sofort einsatzbereite Umgebung suchen, ist CMDBuild indes wenig geeignet. Neben einer komplexen Erstkonfiguration besitzt das Werkzeug zwar ein funktionales UI, wirkt aber im Vergleich zu Alternativen antiquiert.
Zusammenspiel von CMDBuild und openMAINT
CMDBuild verfügt über ein anpassbares Datenmodell und erlaubt die Definition von Workflows. Ist ein Einsatz im Bereich Energiemanagement vorgesehen, lassen sich beispielsweise Energieverbraucher, Zähler und Standorte als Configuration Items anlegen. Und im Bereich "Workflow" bilden Sie Energieaudits, Wartungen und Freigaben als Prozesse ab. Auch die GIS-Integration zur räumlichen Darstellung von Gebäuden und Anlagen ist möglich. Schließlich erlaubt die Software den Datenimport von Zählern und externen Systemen über REST- beziehungsweise SOAP-APIs.
Asset- und Konfigurationsmanagement hat im Open-Source-Umfeld einen Namen: CMDBuild [1] (Configuration Management Database Build). Die quelloffene Anwendung dient insbesondere der Verwaltung von Configuration Items (CIs) wie Servern, Anwendungen, Netzwerken, Verträgen et cetera. Das webbasierte und erweiterbare Enterprise-Tool ermöglicht es Unternehmen, IT-Assets, Geschäftsprozesse und Services in einer zentralen Datenbank zu modellieren und zu verwalten.
CMDBuild dient der CMDB-Verwaltung (Configuration Management Database) und ist ideal für Organisationen, die individuelle Anforderungen haben und bereit sind, Zeit in die Konfiguration zu investieren. Für kleinere Unternehmen oder solche, die eine sofort einsatzbereite Umgebung suchen, ist CMDBuild indes wenig geeignet. Neben einer komplexen Erstkonfiguration besitzt das Werkzeug zwar ein funktionales UI, wirkt aber im Vergleich zu Alternativen antiquiert.
Zusammenspiel von CMDBuild und openMAINT
CMDBuild verfügt über ein anpassbares Datenmodell und erlaubt die Definition von Workflows. Ist ein Einsatz im Bereich Energiemanagement vorgesehen, lassen sich beispielsweise Energieverbraucher, Zähler und Standorte als Configuration Items anlegen. Und im Bereich "Workflow" bilden Sie Energieaudits, Wartungen und Freigaben als Prozesse ab. Auch die GIS-Integration zur räumlichen Darstellung von Gebäuden und Anlagen ist möglich. Schließlich erlaubt die Software den Datenimport von Zählern und externen Systemen über REST- beziehungsweise SOAP-APIs.
Die sperrige Konfiguration des Systems adressieren die CMDBuild-Entwickler mit der Variante "CMDBuild READY2-USE" [2], doch auch sie legt den Fokus nicht auf das Energiemanagement. Auch hier fehlen spezifische Funktionen wie die Echtzeit-Datenverarbeitung von Zählern, Dashboards für Energieverbrauch und CO₂-Reporting. Auch mangelt es an der ISO-50001-Unterstützung, der international anerkannten Norm für Energiemanagementsysteme (EnMS).
Hingegen ist openMAINT [3] auf das Property- und Facility-Management spezialisiert und basiert auf CMDBuild. Die Software unterstützt Unternehmen bei der Verwaltung von Immobilien, Anlagen, technischen Geräten und zugehörigen Instandhaltungsaktivitäten. Darüber hinaus bringt openMAINT Funktionen zur Bestandsverwaltung von Räumen und Assets, zur Planung und Durchführung von Wartungsarbeiten, zur Logistikverwaltung, zum Energie- und Umweltmanagement mit. Doch um es vorwegzunehmen: Auch openMAINT [4] unterstützt den ISO-50001-Standard nicht direkt als zertifiziertes oder vollumfänglich integriertes Feature, aber die Umgebung ist dergestalt anpassbar, dass sie wesentliche Anforderungen der Norm erfüllt.
Bild 1: In unserem Zielszenario erweitern wir eine bestehende CMDBuild-Instanz um eine openMAINT-Installation für das Energiemanagement.
Wie angesprochen ist CMDBuild zwar ein flexibel anpassbares CMDB-System, doch seine Stärken liegen eher im Bereich des Konfigurationsmanagements und weniger im Facility- und Energiemanagement wie openMAINT. Es stellt sich also die Frage, wie IT-Verantwortliche beide sinnvoll miteinander verweben, um die spezifischen Stärken zu erschließen.
Wir wollen dies anhand eines Beispielszenarios untersuchen und gehen von dem typischen Fall aus, dass bereits eine CMDBuild-Installation für das klassische Asset-Management besteht. Dieses Basissystem ergänzen wir um eine openMAINT-Installation, um damit das Energiemanagement in einem Rechenzentrum zu etablieren. Dabei liegt der Fokus auf der energietechnischen Verwaltung der Geräte. In diesem Fall übernimmt CMDBuild die zentrale Steuerung und das openMAINT-System erweitert quasi als Add-on die bestehende Managementumgebung. Für unser Szenario müssen wir zwei Schritte umsetzen: Im ersten Schritt openMAINT für das Energiemanagement einrichten und im zweiten Schritt steht die Implementierung des Datenaustauschs beziehungsweise des Datenabrufs an.
Energiemanagement im RZ
Das Energiemanagement in Rechenzentren ist anspruchsvoll, da diese zu den energieintensivsten Gebäudetypen zählen. Das Ziel ist es dabei, den Energieverbrauch zu erfassen, zu analysieren und zu optimieren. Abhängig von der RZ-Größe sind verschiedene gesetzliche Vorgaben einzuhalten: das Energieeffizienzgesetz (EnEfG), die EU-Taxonomie und das Environmental, Social, Governance-Reporting (ESG). Auch die DIN EN 50600 gilt es zu berücksichtigen; diese definiert umfassende Vorgaben für Planung, Errichtung und Betrieb von Rechenzentren. In der Praxis müssen IT-Verantwortliche den Stromverbrauch auf Komponenten-, Raum- und Gesamtebene erfassen. Weiterhin gilt es, die notwendige Zählerinfrastruktur zu etablieren und ein Energieflussdiagramm aufzubauen. Parallel dazu sollte ein Echtzeitmonitoring mit einem BMS (Building Management System) und dem DCIM-System (Data Center Infrastructure Management) in Betrieb gehen. In der Regel interessieren sich IT-Verantwortliche für verschiedene Kennzahlen. Eine bedeutende ist die PUE (Power Usage Effectiveness), also der Gesamtverbrauch im Verhältnis zur Energienutzung in der IT. Dieser Wert sollte möglichst nahe an 1,0 liegen. Weiterhin sind DCiE (Data Center Infrastructure Efficiency mit 1 / PUE), die Temperaturverläufe und die Lastspitzen relevant.
Konfigurationen in openMAINT
Um das Zusammenspiel beider Systeme zu evaluieren, bieten sich VM- oder Docker-gestützte Installationen an. Dazu erfassen Sie im ersten Schritt die energierelevanten Assets, also insbesondere Gebäude, Heizungs- und Klimaanlagen, PV-Anlagen, die verschiedenen Zähler (Strom, Wasser, Gas) und Serverschränke. Dazu bedienen Sie sich in openMAINT der Funktionen unter "Assets / Technische Anlagen" beziehungsweise "Standorte". Im Menü "Energiemanagement" legen Sie als Nächstes die relevanten Zähler an. Die Verbrauchsdaten können Sie grundsätzlich manuell oder automatisiert per API- oder CSV-Import erfassen. Wichtig ist außerdem, dass Sie die Zähler mit Assets oder Standorten verknüpfen, um so die Energieflüsse zuzuordnen.
Im nächsten Schritt erstellen Sie im "Berichte"-Menü Konfigurationen, mit denen Sie beispielsweise die Verbrauchsentwicklung über Zeiträume abbilden. Mithilfe von Berichten können Sie zudem Kostenvergleiche zwischen Anlagen anstellen und die Kostenentwicklung verfolgen. Wenn Sie maßgeschneiderte Auswertungen wünschen, sollten Sie zu Spezialisten wie JasperReports [4] greifen. Jetzt folgt die Kennzahlendefinition: Typische KPIs sind der Energieverbrauch pro Quadratmeter, der Verbrauch pro Rack oder Servereinheit. Sie können auch KPIs für den Kohlendioxidausstoß und die Energieeinsparpotenziale generieren.
Ein wesentlicher Aspekt des Energiemanagements ist die Maßnahmenplanung und -verfolgung. Dabei kommt Ihnen zugute, dass openMAINT über ein voll integriertes Ticket- oder Incident-Managementsystem verfügt, das auf dem Workflow-System von CMDBuild basiert. Weiterhin sollten Sie ein Energieflussdiagramm generieren, um die konkreten Energieflüsse im Rechenzentrum zu visualisieren. Dieser Schritt ist gemäß ISO-50001 Pflicht und für das Erfüllen von Anforderungen nach DIN EN 50600-4-7 (Energieeffizienz von Rechenzentren) relevant. Allerdings bietet openMAINT keine eigenen Funktionen, diese grafisch zu generieren. Gleichwohl ist die Abbildung als Datenstruktur möglich.
ISO-50001-Anforderungen mit openMAINT abbilden
Rechenzentren zählen zu den energieintensiven Infrastrukturen und der Betrieb ist mit bedeutendem Verbrauch verbunden. Die ISO 50001 hilft hier, systematisch Effizienzpotenziale zu identifizieren und umzusetzen. Das leistet insbesondere einen Beitrag zur Reduzierung der Betriebskosten und zur Verbesserung der Umweltbilanz. Zur Implementierung können Sie das Basisdatenmodell erweitern und beispielsweise neue Klassen generieren. Mit den Klassen "EnergyMeter" und "EnergyReading" erfassen Sie beispielsweise die Energieverbräuche. Mögliche Ansatzpunkte sind:- Energieverbrauch erfassen: EnergyMeter, EnergyReading (custom)- Energieziele dokumentieren: Benutzerdefinierte Klassen wie etwa "EnergyGoal"- Abweichungen, Alarmierung: Workflow- Benachrichtigung- Energiepolitik, Dokumentation: Dokumentenverwaltung in openMAINT- Analyse und Reporting: Benutzerdefinierte Reports, SQL-Ansichten, externe Tools- Interne Audits, Prüfpläne: Instandhaltungs- oder Audit-Workflows
Gemeinsame Datenbasis schaffen
Da openMAINT auf CMDBuild basiert, sind die Datenstrukturen und Funktionen unmittelbar miteinander kompatibel. Der einfachste Weg, die openMAINT-Daten in einer CMDBuild-Umgebung zu nutzen, besteht in einer gemeinsamen Datenbankinstanz. In diesem Fall generieren Sie zunächst ein neues CMDBuild-Dashboard. Dazu führen Sie den Befehl "Administration / Dashboard / Neues Dashboard" aus und weisen diesem die gewünschte Bezeichnung zu, beispielsweise "Energiemanagement RZ". Nun fügen Sie noch die gewünschten Widgets hinzu, beispielsweise Karten, Berichte, KPIs, Charts und Datenansichten. Beachten Sie, dass CMDBuild nicht über eine Drag-und-Drop-Funktion verfügt, aber Sie können das Dashboard über das Konfigurationsmenü modular aufbauen.
Setzen Sie die gleiche Datenbankinstanz ein, sind die Tabellen beziehungsweise Views bereits vorhanden, beispielsweise "Meter", "Measurement", "Assets" und "Location". Diese Daten gilt es, in das neue Dashboard zu integrieren. Der Vorteil ist offensichtlich: Es ist keine Migration notwendig, da Sie direkt mit der offenen openMAINT-Struktur arbeiten. Alternativ können Sie zwei vollständig getrennte Systeme verwenden und die relevanten Daten via Webservices zwischen CMDBuild und openMAINT austauschen. Die beiden Asset-Management-Systeme verfügen über ein RESTful API. Um die Daten von der CMDBuild-Instanz aus openMAINT abzurufen, verwenden Sie:
GET /services/rest/v3/classes/ Meter/cards
GET /services/rest/v3/classes/ Measurement/cards
Diese Daten synchronisieren Sie dann in der CMDBuild-Instanz und können sie anschließend verarbeiten und automatisiert weiterleiten, etwa an das zuvor angelegte Dashboard. Von Vorteil ist dabei, dass die beiden Systeme weitgehend voneinander getrennt sind. Dieser Ansatz bietet sich insbesondere für größere IT-Landschaften an.
Bild 2: Das Anlegen von Zählern und die automatisierte Datenerfassung ist essenziell für eine effektives Energiemanagement.
Stromverbrauch abfragen
Anhand eine Beispiels, bei dem wir den Stromverbrauch ermitteln, sehen Sie, wie Sie mit dem REST-API von CMDBuild auf die Energieverbrauchsdaten im openMAINT-System zugreifen. Dazu stellen Sie zunächst sicher, dass auf beiden Seiten REST-API v3 aktiviert ist. Das REST-API v3 ist bei aktuellen Installationen von CMDBuild und openMAINT bereits integriert, aber es muss korrekt konfiguriert und freigegeben werden. Um das REST-API v3 für openMAINT und CMDBuild einzuschalten, müssen Sie die jeweiligen "properties"-Daten anpassen. Bei openMAINT finden Sie diese unter "/opt / tomcat / webapps / openmaint / WEB-INF / conf / cmdbuild.properties" und bei CMDBuild lautet der Pfad "/opt / tomcat / webapps / cmdbuild / WEB-INF / conf / cmdbuild.properties". Darin fügen Sie folgende Zeile hinzu beziehungsweise passen die Voreinstellung an:
rest.enabled=true
Speichern Sie als Nächstes die Einstellung und starten Sie Tomcat neu:
sudo systemctl restart tomcat9
Außerdem sollten Sie den Zugriff auf das REST-API v3 testen. Dazu öffnen Sie einen Browser und fordern beim openMAINT-System folgende URL an:
http://<Ihr_openMAINT-Server>:8080/ openmaint/services/rest/v3/
Bei CMDBuild lautet die URL dann
http://<Ihr_CMDBuild-Server>:8080/ cmdbuild/services/rest/v3/
Ist die Konfiguration korrekt, erhalten Sie die Ausgabe "{"success":true}".
Außerdem müssen Sie den Benutzerzugriff in openMAINT konfigurieren, sprich die notwendigen API-Rechte vergeben. Stellen Sie sicher, dass der betreffende User über die nötigen Rechte verfügt.
Dazu öffnen Sie "Administration / Benutzer / Gruppen / Rollen". Obendrein benötigt der API-Nutzer Zugriff auf die gewünschten Klassen und Objekte; abhängig vom Anwendungskontext bedarf es zudem der passenden Lese- und/oder Schreibrechte. Außerdem muss dem User die Rolle zugeordnet sein, die API-Zugriffe erlaubt.
Verbrauchsdaten per Python abfragen
Sie können sich hier auch eines einfachen Python-Skripts bedienen, um die relevanten Daten aus CMDBuild zu openMAINT korrekt zu übernehmen. Dazu müssen Sie zunächst sicherstellen, dass das Modul "requests" installiert ist. Das zugehörige Skript (siehe Listing) umfasst insgesamt fünf Abschnitte, wobei "Konfiguration" die Zieladresse des REST-API und die Anmeldedaten für das openMAINT-System definiert. Außerdem wird der Suchbegriff für den gewünschten Zähler bestimmt. Der "Login"-Abschnitt verschafft sich Zutritt zum openMAINT-System.
Listing: Python ermittelt Verbrauchsdaten
import requests
import json
# === 1. Konfiguration ===
BASE_URL = "http://openmaint-server:8080/openmaint/services/rest/v3"
USERNAME = "admin"
PASSWORD = "admin"
METER_NAME = "Stromzähler Serverraum" # Optional: Zählername für Filter
# === 2. Login und Token holen ===
def login():x
      url = f"{BASE_URL}/login"
      payload = {"username": USERNAME, "password": PASSWORD}
      response = requests.post(url, json=payload)
      response.raise_for_status()
      token = response.json()["data"] ["sessionId"]
      print("Login erfolgreich.")
      return token
# === 3. Zähler (Meter) abfragen ===
def get_meter(token):
      headers = {"Authorization": f"Bearer {token}"}
      url = f"{BASE_URL}/classes/Meter/cards"
      response = requests.get(url, headers=headers)
      response.raise_for_status()
      meters = response.json()["data"]
      for m in meters:
          if METER_NAME in m["description"]:
              print(f"Gefundener Zähler: {m['description']} (ID: {m['id']})")
              return m["id"]
      raise ValueError("Zähler nicht gefunden")
# === 4. Messwerte zum Zähler abfragen ===
def get_measurements(token, meter_id):
      headers = {"Authorization": f"Bearer {token}"}
      url = f"{BASE_URL}/classes/ Measurement/cards"
      # Optional: Filter nach Meter-ID
      params = {
          "filter": json.dumps({
              "attribute": "Meter",
              "operator": "equals",
              "value": meter_id
          })
      }
      response = requests.get(url, headers=headers, params=params)
      response.raise_for_status()
      data = response.json()["data"]
      print(f"Gefundene Messwerte: {len(data)}")
      for entry in data:
          print(f" {entry['Date']} | {entry['Value']} {entry.get('Unit', 'kWh')}")
      return data
# === 5. Hauptprogramm ===
if __name__ == "__main__":
      try:
          token = login()
          meter_id = get_meter(token)
          get_measurements(token, meter_id)
      except Exception as e:
          print("Fehler:", e)
Der dritte Abschnitt ruft alle Zählerobjekte ("Meter") aus der Datenbank ab und gibt die Zähler-ID zurück. Abschnitt 4 ermittelt alle Messwerte ("Measurement"), die dem gewünschten Zähler zugeordnet sind. Dazu kommt eine Filterabfrage per API zum Einsatz. Es folgt die Rückgabe der Liste aller Messungen (zum Beispiel kWh-Werte mit Datum). Diese Informationen finden Sie auch im Terminal. Das Hauptprogramm führt das Skript aus (Anmeldung, Zählersuche und Messwertabfrage) und fängt etwaige Fehler ab.
Dieses Skript legen Sie beispielsweise als "openmaint_api_beispiel.py" auf dem CMDBuild-System ab und führen es zeitlich gesteuert aus. Allerdings unterliegt dieses Beispiel einer bedeutenden Restriktion: Es liest lediglich einen Zähler ab. Um sämtliche Zähler abzufragen, sind verschiedene Adaptionen notwendig. Dazu kann der Befehl "filtered" zum Einsatz kommen und in der Verarbeitungsroutine müssen Sie außerdem "get_measurements(token, meter_id)" durch "get_measurements_for_meter(token, meter)" ersetzen.
Fazit
CMDBuild und openMAINT sind zwei ausgesprochen nützliche Plattformen für das Asset-Management. Wenn es um das technische Facility-Management geht und der Fokus auf der Gebäude- und Anlagenverwaltung liegt, ist openMAINT das Werkzeug der Wahl. Dank der identischen technologischen Basis spielen die beiden Systeme zudem hervorragend zusammen. Einer gezielten Datenübernahme per REST-API oder einem einfachen Python-Skript steht dabei nichts im Weg und damit einem gezielten Erfassen von Energiedaten im Rechenzentrum.
(jp)
Links
[2] CMDBuild READY2USE: https://www.cmdbuildready2use.org/en
[4] JasperReports: https://it-a.eu/p0p44