Icinga und vSphere

Definitiv eine ganz coole Kombi.

vspheredb

Heute bin ich über das Module vSphereDB für ICINGA geflogen: https://github.com/Icinga/icingaweb2-module-vsphere

Eins schon mal vorweg: Thomas Gelf... Du bist absolut genial!

Jeder der mit vSphere zu tun hat, macht sich irgendwie Gedanken, wie bekomme ich einen einfachen Überblick über die Anlage? Noch besser ist, wie kann ich jemandem das Monitoring zur Verfügung zu stellen, ohne dass dieser auf die Anlage direkt Zugriff hat. Mit diesem Modul kann ich nun genau das machen.

Hier mal die Steps zur Installation (Ich starte hier ab einer Installation Icinga mit Icinga Director und Maps als Modul.):

  • Voraussetzungen installieren
  • Datenbank erstellen
  • Module bereitstellen
  • Datebankresource einrichten
  • Service installieren
  • vCenter anbinden
  • SSL Zertifikat
  • Updates

 

Voraussetzungen installieren

apt-get update
apt-get install php-soap

 

Datenbank erstellen

mysql -u root -p
CREATE DATABASE icinga2_vsphere CHARACTER SET 'utf8mb4' COLLATE utf8mb4_bin;
GRANT ALL ON icinga2_vsphere.* TO 'USERNAME'@'localhost' IDENTIFIED BY 'PASSWORD';

 

Module bereitstellen

cd /usr/share/icingaweb2/modules
git clone https://github.com/Icinga/icingaweb2-module-reactbundle --branch stable/0.4.1 reactbundle
icingacli module enable reactbundle

cd /usr/share/icingaweb2/modules
git clone https://github.com/Icinga/icingaweb2-module-ipl --branch stable/0.1.1 ipl
icingacli module enable ipl

cd /usr/share/icingaweb2/modules
git clone https://github.com/Icinga/icingaweb2-module-incubator --branch stable/0.1.1 incubator
icingacli module enable incubator

cd /usr/share/icingaweb2/modules
git clone https://github.com/Icinga/icingaweb2-module-vspheredb vspheredb
icingacli module enable vspheredb

 

Datenbankresource einrichten

  1. Anmelden in Icinga
  2. Navigieren zu Configuration -> Application -> Resources
  3. Create a New Resource
    1. Resource Type: SQL Database
    2. Resource Name: db_icinga2_vsphere
    3. Database Type: MySQL
    4. Host: localhost
    5. Port:
    6. Database Name: icinga2_vsphere
    7. Username: USERNAME
    8. Password: PASSWORD
    9. Charakter Set: utf8mb4
    10. Validate Configuration -> successfully
    11. Save Changes

 

Server neu starten.

shutdown -r now

 

Modul einrichten

  1. Anmelden in Icinga
  2. Virtualization (VMware) auswählen
  3. Resource auswählen: db_icinga2_vsphere
  4. Validate
  5. Create Schema

 

Service installieren

cd /usr/share/icingaweb2/modules/vspheredb
cp contrib/systemd/icinga-vspheredb.service /etc/systemd/system/
nano /etc/systemd/system/icinga-vspheredb.service

Hier muss nun an der Stelle von User: icingaweb2 ein Benutzer eingetragen werden, der über genügend Rechte verfügt.

systemctl daemon-reload
systemctl enable icinga-vspheredb
systemctl start icinga-vspheredb

 

vCenter anbinden

  1. Navigiere zu Virtualization (VMware) -> Servers
  2. Add
    1. vCenter (or ESX) host*: SERVERNAME VCENTER
    2. Protocol*: HTTPS
    3. Verify Peer: Yes
    4. Verify Host: Yes
    5. Username: USERNAME VCENTER (ReadOnly Benutzer empfohlen!)
    6. Password: PASSWORD
    7. Proxy: - please choose -
     

SSL-Zertifikat

So die grösste "Schwierigkeit" war das Thema mit dem Zertifikat. Dazu machst du nun folgendes:

  1. Navigiere zu "https://VCENTER"
  2. Auf der rechten Seite findest du einen Link "Download trusted root CA certificate"
  3. Lade diesee herunter und entpacke den Ordner "lin"
  4. Verbinde dich via WinSCP auf den Icinga-Server.
  5. Navigiere zu "/etc/ssl/certs/"
  6. Kopiere den Inhalt vom Ordner "lin" in den Ordner "certs"

 

So und nun starten wir den Server nochmal durch. Damit werden alle Dienste gestartet und Icinga sollte via SOAP im Stande sein, die ganzen Daten aus dem vSphere übertragen zu können.

 

Updates

Wie halte ich mir das ganze up-to-date? Ich habe mir für die ganzen GitHub-Daten einen Batch gebaut, der von Ordner zu Ordner geht und diese gegenüber GitHub prüft. Der liegt im Verzeichnis des UpdateUsers und kann dann bequem ausgeführt werden via sh UpdateGitHub.sh

Der Inhalt des Scripts sieht so aus:

echo "************************************"
echo "ICINGA director"
echo "************************************"
cd /usr/share/icingaweb2/modules/director/
git pull
echo "************************************"

echo ""

echo "************************************"
echo "ICINGA map"
echo "************************************"
cd /usr/share/icingaweb2/modules/map/
git pull
echo "************************************"

echo ""

echo "************************************"
echo "ICINGA mapDatatype"
echo "************************************"
cd /usr/share/icingaweb2/modules/mapDatatype
git pull
echo "************************************"

echo ""

echo "************************************"
echo "ICINGA dashing-icinga2"
echo "************************************"
cd /usr/share/dashing-icinga2
git pull
echo "************************************"

echo ""

echo "************************************"
echo "ICINGA reactbundle"
echo "************************************"
cd /usr/share/icingaweb2/modules/reactbundle
git pull
echo "************************************"

echo ""

echo "************************************"
echo "ICINGA ipl"
echo "************************************"
cd /usr/share/icingaweb2/modules/ipl
git pull
echo "************************************"

echo ""

echo "************************************"
echo "ICINGA incubator"
echo "************************************"
cd /usr/share/icingaweb2/modules/incubator
git pull
echo "************************************"

echo ""

echo "************************************"
echo "ICINGA vspheredb"
echo "************************************"
cd /usr/share/icingaweb2/modules/vspheredb
git pull
echo "************************************"


Drucken