Nur wenige Werkzeuge können heterogene Coud- und Virtualisierungsumgebungen so umfassend verwalten wie ManageIQ. Allerdings ist das Tool alles andere als einfach. Wir stellen ein Basissetup passend für kleine und mittelgroße vSphere-Umgebungen vor. Doch auch Cloudlandschaften lassen sich in den Blick nehmen.
ManageIQ [1] bezeichnete ursprünglich den Namen eines Unternehmens aus Mahwah, New Jersey mit der Closed-Source-Appliance "EVM Suite", was für "Enterprise Virtualization
Management" stand. Nach der Übernahme durch Red Hat 2013 gibt es die frühere EVM-Suite sowohl als kommerzielle Lösung "CloudForms" als auch als freie Open-Source-Variante "ManageIQ". Seit 2020 kümmert sich IBM um die Weiterentwicklung von CloudForms und damit auch um die Upstream-Variante. Da der frühere ManageIQ-Chef ein großer Schachspieler ist, benennt das Entwicklerteam die Upstream-Versionen nach Schachweltmeistern. Die aktuelle Version trägt den Namen "Lasker" nach dem ehemaligen deutschen Schachweltmeister Emanuel Lasker.
Um es gleich vorwegzunehmen: Der Funktionsumfang von MangeIQ ist dermaßen groß, dass es weit mehr als nur einen Artikel bräuchte, um das Tool umfassend zu beschreiben. Das macht die Software auf der anderen Seite ziemlich komplex. Wer tatsächlich die volle Leistung ausschöpfen möchte, kommt nicht um Ruby-Programmierung herum.
ManageIQ [1] bezeichnete ursprünglich den Namen eines Unternehmens aus Mahwah, New Jersey mit der Closed-Source-Appliance "EVM Suite", was für "Enterprise Virtualization
Management" stand. Nach der Übernahme durch Red Hat 2013 gibt es die frühere EVM-Suite sowohl als kommerzielle Lösung "CloudForms" als auch als freie Open-Source-Variante "ManageIQ". Seit 2020 kümmert sich IBM um die Weiterentwicklung von CloudForms und damit auch um die Upstream-Variante. Da der frühere ManageIQ-Chef ein großer Schachspieler ist, benennt das Entwicklerteam die Upstream-Versionen nach Schachweltmeistern. Die aktuelle Version trägt den Namen "Lasker" nach dem ehemaligen deutschen Schachweltmeister Emanuel Lasker.
Um es gleich vorwegzunehmen: Der Funktionsumfang von MangeIQ ist dermaßen groß, dass es weit mehr als nur einen Artikel bräuchte, um das Tool umfassend zu beschreiben. Das macht die Software auf der anderen Seite ziemlich komplex. Wer tatsächlich die volle Leistung ausschöpfen möchte, kommt nicht um Ruby-Programmierung herum.
Zudem fallen die Administration und das Setup nicht gerade intuitiv aus. Wer ohne Vorkenntnis eine Appliance ausrollt, wird nur wenige Grundfunktionen nutzen können, nicht die erhofften Daten einsammeln und das Testsetup vielleicht nach wenigen Stunden frustriert löschen. Wir beschreiben in diesem Artikel das Basissetup des Tools, mit dem sich Virtualisierungsumgebungen – in unserem Fall vSphere 6.7 – und Clouds überwachen und steuern lassen. Dabei bleiben die komplexen Automationsfunktionen und Workflows außen vor.
Tiefe Einblicke
Unter der Haube besteht ManageIQ aus vier grundlegenden Modulen: "Insights", "Control", "Integrate" und "Automate". Hinter Insight verbirgt sich die "Virtual Mangement Database", kurz VMDB, die Informationen zu den angeschlossenen Clouds, Virtualisierungen und den überwachten virtuellen Maschinen einsammelt. Das Insights-Modul nutzt eine Reihe verschiedener Kanäle, um Informationen zu sammeln, und schreckt dabei auch nicht vor "schmutzigen Tricks" zurück.
In einer vSphere-Umgebung verbindet sich ManageIQ nicht nur via API mit der vSphere-Appliance, sondern per SSH und root-Account auch gleich mit allen Hypervisor-Systemen. So kann es Probleme aufdecken, falls das vSphere-Management abweichende Informationen vom Hypervisor liefert. Da beispielsweise die Virtualisie-ruungslösung "Ovirt" (kommerziell "RHV") via Management-API nicht ausreichend historische Daten liefert, verbindet sich ManageIQ einfach direkt mit der PostgreSQL-Datenbank des Ovirt-Managers.
Der raffinierteste Trick, um in Enterprise-Virtualisierungsumgebungen an VM-Daten zu gelangen, ist aber ManageIQs sogenannte "Smart State Analysis". Hiermit liest das Tool den kompletten Inhalt virtueller Maschinen aus, ohne dazu jedoch einen Agenten zu brauchen. ManageIQ selbst läuft als virtuelle Appliance – oder genauer gesagt: als Gruppe mehrerer virtueller Appliances. Wer VMs unter VMware überwachen will, braucht dabei mindestens eine Appliance, die innerhalb dieser Umgebung läuft.
Die Smart-State-Analyse einer VM erfolgt dann recht einfach: ManageIQ weist vSphere an, von der zu untersuchenden VM einen Disk-Snapshot zu erstellen und diese Snapshot-Disk dann read-only an die ManageIQ-Appliance selbst anzudocken. Jetzt kann das Tool in aller Ruhe den kompletten Inhalt des Dateisystems der VM auslesen. Der Scan liefert die VM-Konfiguration, laufende Dienste, installierte Software nebst Versionen und bei Windows-VMs auch den kompletten Inhalt der Registry. Wer die Analyse regelmäßig laufen lässt, bekommt von ManageIQ genaue Change-Reports und kann damit exakt nachverfolgen, wann was an welcher überwachten VM geändert wurde.
Zudem sammelt "Insights" Metriken ein und liefert darüber langfristige Daten zur Auslastung. Das Reporting-Modul erstellt aus den Insights-Daten aufwendige Berichte oder auch grafische Dashboards, die dem Administrator einen Überblick seiner Umgebung verschaffen. Weitere Tools wie beispielsweise das "Rightsizing" offerieren auf Basis der Langzeit-Usage-Informationen Vorschläge, welchen VMs der Verwalter Ressourcen wie Speicher oder CPU reduzieren oder vergrößern sollte.
Das "Control-Modul" von ManageIQ steuert Clouds und Virtualisierungsumgebungen. Sogenannte Policies verbinden die Insights-Daten mit Control. Der Administrator kann somit Regeln erstellen wie beispielsweise: "Windows-Maschinen innerhalb des AD dürfen keine lokalen Admin-Accounts" erhalten. Eine Policy besteht dabei aus vier Elementen: Der "Scope", der grob festlegt, für welche Maschinen die Policy überhaupt gilt. Das "Event" löst die Policy aus sowie die "Condition", die die Policy prüft, und die abschließende "Action".
In unserem Fall löst beispielsweise der Abschluss einer Smart-State Analyse (Event) die Policy "Keine lokalen Admins" aus, aber nur bei Windows-Maschinen (Scope: Windows-OS). Die Condition prüft, ob innerhalb der VM lokale Accounts mit Admin-Rechten existieren, und falls ja tritt eine Action wie beispielsweise "VM sofort abschalten" in Kraft. Da Control fortlaufend mit vSphere in Verbindung steht, kann auch kein vSphere-Nutzer die VM wieder hochfahren. Sobald jemand einen VM-Start initiiert, bekommt Control das mit und schiebt sofort einen "Shutdown VM" als Antwort an das vSphere-Management. Alternativ könnte der Admin aber auch nur eine böse E-Mail an den Besitzer der VM senden, anstatt sie sofort stillzulegen, oder die VM in ein isoliertes Netzwerk verschieben.
Das Integrate-Modul sorgt zum einen dafür, dass ManageIQ mit den APIs anderer Dienste wie beispielsweise ServiceNow kommuniziert. Auf der anderen Seite stellt ManageIQ seine eigenen Funktionen via Rest-API zur Verfügung. Automate als viertes Modul ist das leistungsstärkste, aber auch komplexeste Modul. Hier modelliert der Administrator komplexe Workflows mit optionalen Approval- und auch Retirement-Schritten, baut eigene User-Dialoge sowie Service-Kataloge mit einem Self-Service-Portal und kommuniziert mit weiteren Automatisierungstools wie Ansible. Natürlich kann Automate dabei auf alle in Insights gesicherten Daten zugreifen und die Informationen für eigene Prozesse nutzen.
Verteilte Dienste
Um die Funktionen der Basismodule abzubilden, betreibt ManageIQ eine Reihe von Diensten, die es als "Roles" bezeichnet. Im Kern steht dabei die Postgres-Datenbank. Setzt der Anwender mehrere ManageIQ-Appliances ein, kommunizieren diese ausschließlich über diese Datenbank untereinander. Um größere Umgebungen verwalten zu können, teilt das Tool diese in so genannte Regionen auf. Jede Region bekommt eine eigene Datenbanknummer. Höhere Nummern stehen für übergreifende Regionen.
Ein Beispiel: Ein Unternehmen betreibt Rechenzentren in München, Berlin und Hamburg mit den Regionen 1,2 und 3. Die Zentrale in Frankfurt läuft als Region 10 und repliziert die Daten der drei darunter liegenden Regionen. Die Administratoren in Frankfurt können darüber die Daten aller drei Rechenzentren einsehen und diese auch steuern, während die drei Außenstellen jeweils nur ihre eigenen Infrastruktur sehen und kontrollieren. Geht eine Appliance in München kaputt, kann der Administrator einfach eine neue aufsetzen und von Frankfurt die Datenbank zurückreplizieren.
Innerhalb der Regionen kann der Administrator das Management auf mehrere "Zonen" aufteilen. Diese Zonen gruppieren sich nach Appliance-Funktionen. Der Verwalter könnte dabei eine Appliance betreiben, die sich ausschließlich um das Datenbankmanagement der Region kümmert, während eine Zone das vSphere- und eine andere Zone das AWS-Management übernimmt. Diese Verteilung der Funktionen gehört zu den Stärken aber auch Schwächen von ManageIQ, was gerade Anfänger zu spüren bekommen. Schickt der Administrator einen Auftrag ab, wie beispielsweise: "Erstelle eine Smart State Analyse einer Gruppe von vSphere-VMs", legt ManageIQ diesen erst einmal nur in der Taskliste ab. Den Task muss dann eine passende Appliance abholen und ausführen – wenn denn eine richtig konfigurierte Appliance vorhanden ist.
Das ist allerdings genau der Knackpunkt, an dem viele Testinstallationen scheitern. Für den Anfang genügt eine einzelne Appliance, aber wenn diese nicht korrekt konfiguriert ist, bleiben Aufträge einfach kommentralos in der Taskliste hängen, weil kein Service sie abholt und ausführt. Zudem muss sich der IT-Verantwortliche bewußt sein, dass ManageIQ kein Tool für das Echtzeit-Monitoring ist. Es sammelt Daten über cron-Jobs ein, die teilweise nur einmal am Tag laufen. Wer das Tool ausprobieren möchte, muss es zuerst korrekt konfigurieren und dann ein paar Tage lang Daten sammeln lassen.
Unser Workshop-Setup
Wie eingangs erwähnt, hängt der Erfolg einer ManageIQ-Installation von der richtigen Konfiguration ab. Für den Workshop richten wir eine MangeIQ-Appliance in einer VMware-Umgebung mit vCenter 6.7 und zwei ESXi-Hosts ein. Laden Sie zunächst die ManageIQ-Appliance für vSphere im OVA-Format von der ManageIQ-Homepage [1] herunter. Zudem brauchen Sie von der VMware-Seite das 64-Bit-Linux-VDDK (Virtual Disk Deployment Kit) passend zu Ihrer vSphere-Installation. Ohne VDDK kann ManageIQ keine Smart-State-Analysen in der vSphere-Umgebung durchführen.
Da die Treiber im VDDK nicht unter der Gnu Public License stehen, darf ManageIQ sie leider nicht mitliefern und Sie müssen sie händisch in die Appliance installieren. Auch hier scheitern viele Testinstallationen, die schlicht das VDDK-Setup übersehen. Starten Sie Smart-State-Analysen ohne VDDK, bekommen Sie keine Fehlermeldung. Die Tasks bleiben in der Aufgabenliste einfach hängen, da keine passende Appliance in der Region sie übernimmt.
Erzeugen Sie die ManageIQ-Appliance-VM aus dem OVA und starten Sie diese. Die minimale Konfiguration braucht vier vCPUs und 6 GByte RAM, besser wären 8 bis 12 GByte RAM. Nach dem Start melden Sie sich via SSH als "root@<Appliance-IP-Adresse>" an der Maschine mit dem Passwort "smartvm" an. Als ersten Schritt müssen Sie das root-Passwort ändern. Laden Sie anschließend das VDDK-Paket auf die Appliance und richten Sie es ein, wie es in der Dokumentation unter [2] im Abschnitt "Installing VMware VDDK on ManageIQ" beschrieben ist. Starten Sie die VM im Anschluss neu.
Die Appliance unterteilt die virtuelle 66-GByte-Disk in mehrere Volume Groups und Logical Volumes. 42 GByte davon reserviert ManageIQ für das System und die Appliance-Dienste selber. Das Default-Setup erstellt zudem eine "Daten"-Vol-ume-Group mit dem logischen Laufwerk "lv_pg". Dort legt ManageIQ die Postgres-Datenbank ab. Bitte behalten Sie im Hinterkopf, dass der Datenbank damit 12 GByte Plattenplatz zur Verfügung stehen. Wer mit ManageIQ viele Analysedaten einsammelt und über einen längeren Zeitraum behält, muss den Füllstand des Logical Volume im Auge behalten, um die Datenbank nicht zu beschädigen. Das Volume lässt sich aber ohne weiteres im laufenden Betrieb über eine zweite Disk und den Logical-Volume-Manager erweitern.
Nach dem Neustart der Appliance können Sie sich an der Web-UI als "admin" mit dem Passwort "smartvm" anmelden. Auch hier sollten Sie mit der Option "Update Password" das initiale Passwort umgehend ändern. Das Appliance-Dashboard ist jetzt noch leer. Klicken Sie im Menü auf "Settings" und auf den Unterpunkt "Application Settings". Auf der linken Seite sehen Sie nun die Hierarchie der Einstellungen unter "Settings" mit der Region, der aktuellen Zone und Appliance innerhalb der Zone. Klicken Sie auf den Server innerhalb der Zone und passen Sie die Einstellungen zur Zeitzone und den Namen an. Es empfiehlt sich zudem, die Spracheinstellung auf English umzustellen, da die deutschen Dialoge stellenweise mäßig übersetzt wurden. Im weiteren Verlauf des Artikels verweisen wir stets auf die englischen Dialoge und Einstelloptionen.
Jetzt müssen Sie unter "Server Control" erst einmal eine Reihe von "Roles", also Diensten, auf der Appliance einschalten. Auf jeden Fall brauchen Sie den "SmartProxy" und alle drei "Capacity & Utilization"-Dienste. Sonst sammelt die Appliance keine Daten ein und kann auch keine Analysen durchführen. Nachdem Sie die Einstellungen gespeichert haben, klicken Sie in der Hierarchie links auf die "Default Zone". Im Reiter "SmartProxy Affinity" klicken Sie die Box neben dem aktuellen Servernamen an und speichern die Änderung. Zuletzt wechseln Sie im Baum links auf die "Region 0" und dann im rechten Fenster auf den Reiter "C & U Collection". Schalten Sie dort sowohl "Collect for all Clusters" als auch "Collect for all Datastores" ein.
Erste Daten mit der Appliance sammeln
Somit haben Sie Ihre Appliance sowohl als Datensammler als auch als Controller deklariert. Navigieren Sie im Menü zu "Computer / Infrastructure / Providers". Dort klicken Sie auf "Configuration – Add New Infrastructure Provider". Wählen Sie "VMware vCenter" und geben die Admin-Login-Daten ein. Jetzt benötigt ManageIQ ein paar Minuten, um die vCenter-Konfiguration einzulesen. Danach sollten Sie im Menü "Compute / Infrastructure / Providers" eine Tabelle mit Ihrem vCenter als einzigen Eintrag sehen. Die Tabelle zeigt dann auch schon erste Informationen wie Zahl der Hosts und VMs. Wenn Sie auf Ihren vCenter-Eintrag klicken, bekommen Sie eine Übersicht. Allerdings haben Sie noch keine hübschen Grafiken zur Utilization, das braucht erst ein paar Tage gesammelter Daten.
Klicken Sie in dieser Ansicht in der oberen Reihe auf Hosts. Die folgende Tabelle listet Ihre Hypervisor-Knoten auf. Sollten alle Hosts dasselbe Root-Passwort verwenden, wählen Sie alle Hosts aus und klicken im Menü oben auf "Configuration / Edit selected Items". Andernfalls müssen Sie die Änderungen für jeden Host individuell anpassen. Geben Sie den User "root" und das passende Passwort ein, validieren Sie die Credentials und speichern Sie die Konfiguration.
Jetzt kann sich ManageIQ direkt an den ESXi-Hosts anmelden. In derselben Übersicht können Sie nun alle Hosts markieren und via "Configuration / Perform Smart State Analysis" die Details zu den ESXi-Hosts abrufen. Die Analyse erstellt hier keine Snapshots, sondern liest die Hosts über die SSH-Verbindung aus. Darüber erlangt ManageIQ auch Zugriff zu den lokalen Datenträgern des ESXi-Hosts und kann dabei auch VMs oder "Überreste" finden, die dem vCenter-Server verborgen bleiben.
Nachdem Sie einen neuen Provider hinzugefügt und konfiguriert haben, sollten Sie auf jeden Fall in "Settings / Default Zone / Smart Proxy Affinity" prüfen, ob alle neuen Assets wie Datenspeicher und Hypervisor-Knoten korrekt dem SmartProxy zugewiesen wurden.
Einen Überblick, an welchen Tasks Ihre Appliance gerade arbeitet, finden Sie unter "Configuration / Tasks". In der Zwischenzeit sollte Ihre Appliance auch eine Liste der VMs Ihrer Umgebung anzeigen ("Compute / Infrastructure / Virtual Machines"). Leider hat das ManageIQ-Team in "Lasker" eine Darstellung entfernt, die ManageIQ-Nutzer kleinerer Umgebungen in älteren Versionen gerne nutzten. Der Icon-View zeigte die VMs so an, dass sich auf einen Blick Basisdaten wie Status und OS aus dem Icon entnehmen ließen. Jetzt gibt es nur noch die Tabellenansicht.
Klicken Sie auf eine VM in der Tabelle, erhalten Sie detaillierte Informationen zur Maschine. Zu diesem Zeitpunkt sind Tabellen wie "Security" oder "Configuration" noch leer. Klicken Sie innerhalb der VM-Ansicht links oben auf das "Configration"-Menü und wählen Sie darin "Perform Smart State Analysis". Wenn Ihre Appliance richtig konfiguriert ist, wird sie nun die VM inspizieren. Den Verlauf des Auftrags können Sie unter "Configuration / Tasks" nachverfolgen. Sie müssen zwischendurch ab und zu den Refresh-Button betätigen, da sich diese Seite nicht selbst aktualisiert.
Apropos Web-UI: Leider reagiert die ManageIQ-UI sehr schlecht darauf, wenn Sie die Browsernavigation zur Seitensteuerung (Vor/Zurück) verwenden. In früheren Versionen gab es dazu innerhalb der UI Navigations-Buttons. Aber aus unerfindlichen Gründen hat das ManageIQ-Team diese in "Lasker" entfernt. Navigieren Sie innerhalb der Web-UI daher ausschließlich über das Menü.
Nachdem die Smart-State-Analyse abgeschlossen ist, kehren Sie zur VM-Ansicht zurück. Dieses Mal zeigt ManageIQ Detailinformationen zur VM, wie beispielsweise Benutzer und Dienste der VM.
Kontrollen festlegen
Im Abschnitt "Control" bauen Sie nun Ihre Policies zusammen. Das funktioniert relativ einfach in der Benutzeroberfläche und erklärt sich fast von selbst. Für simple Aufgaben liefert ManageIQ bereits eine ganze Serie an vorgefertigten Events und Actions mit, lediglich die Conditions muss der Anwender selbst erstellen – wenn er denn welche braucht. Simple Policies wie das mitgelieferte Beispiel "Starte eine Smart State Analyse bei einer neu entdeckten VM" laufen ganz ohne Condition einfach als "Event / Action".
Eine oder mehrere Policies fügt der Administrator dann einem Policy Profile hinzu. Dieses lässt sich dann entweder einzelnen Maschinen oder gleich dem ganzen Cluster zuweisen. Der eingebaute Policy-Simulator erlaubt Ihnen, neu erstellte Richtlinien auszuprobieren, bevor Sie diese in die Produktion übernehmen. Sollen Policies zu vorgegebenen Zeiten laufen, legen Sie zunächst einen Cron-Job unter "Settings / Schedules" an. Dieser bekommt ein Zeitmuster und ein auszulösendes Event zugewiesen. Alle Policies, die diesen Event als Auslöser nutzen, startet der Scheduler zu den vorgegebenen Zeiten.
ManageIQ kennt dabei zwei Typen von Policies: Control und Compliance. Der Unterschied besteht darin, dass die Control-Policy eine vorgegebene Action ausführt, während die Compliance-Policy die Maschine erst einmal nur als "Compliant" oder "Incompliant" markiert. Zudem gibt es Alterts und Alert-Profiles, die den Anwender bei Problemen warnen. Das Control-Modul liefert bereits eine ganze Serie vorgefertigter Policies und Alerts. Anhand der Vorlagen finden sich Administratoren schnell zurecht und können dann eigene Policies und Alerts bauen.
vSphere unter Beobachtung
Mit diesem ersten Basissetup haben Sie jetzt erst einmal Ihren vSphere-Cluster gut im Blick. ManageIQ sammelt alle Metrikdaten der Infrastruktur. Wenn Sie die Smart-State-Analyse Ihrer VMs über einen Scheduler regelmäßig ausführen, bekommen Sie auch stets die aktuellen Inhalte der VMs eingelesen.
Im Menü "Overview / Reports" finden Sie eine große Zahl vorgefertigter Report-Templates. Diese werten die Insights-Daten aus und verschaffen Ihnen einen bessern Überblick zur Umgebung. Der Report-Generator kann dabei auch Diff-Analysen erstellen, also berichten, was sich wann in welcher VM geändert hat. Einzelne Reports lassen sich in Dashboard-Widgets verwenden und aus den Widgets bauen Sie bei Bedarf eigene grafische Dashboard-Views auf. Auch hier liefert ManageIQ ein vorgefertigtes Demo-Dashboard mit, das Sie analysieren können.
Cloudumgebungen einbeziehen
Im ersten Schritt setzen Sie ManageIQ dazu ein, Metriken und Konfigurationsdaten zu sammeln und in Reports auszuwerten. Im nächsten Schritt nutzen Sie simple Policies, um regelmäßige Smart-State-Analysen auszuführen und auf kritische Policy-Verstöße zu reagieren. Wenn Sie mit Cloudumgebungen wie Amazon oder Google arbeiten, können Sie diese ebenfalls mit ManageIQ überwachen, wenngleich Sie dort nicht ganz so ausführliche Daten wie in einer VMware-vSphere-Umgebung erhalten.
Sind Sie damit vertraut, können Sie in die Tiefen von "Automate" eintauchen. Dank des integrierten Ansible-Moduls lassen sich hier aber auch ohne Ruby-Code einfache Vorgänge steuern. Neben dem eingebauten Ansible kann ManageIQ sich auch mit einer Ansible-AWX-Instanz verbinden und diese für Automation-Aufgaben nutzen.
Fazit
ManageIQ ist ein sehr leistungsstarkes, wenngleich komplexes Tool. Mit dem hier vorgestellten Basissetup lässt es sich jedoch sehr gut dafür verwenden, um eine VMware-Umgebung zu überwachen und automatisiert auf Probleme zu reagieren. Alleine die Report-Funktion auf Basis der Smart-State-Analyse und Metrikdaten helfen Administratoren bei der Verwaltung. Mit dem aufwendigen Ruby-Automation-Modul muss sich der Administrator nicht zwingend auseinandersetzen. Simple Aufgaben lassen sich einfacher mit dem integrierten Ansible-Modul oder einer seperaten AWX-Instanz abwickeln.