Inhalte
Der Icinga Director ist ein Tool mit dem sich die Konfiguration Host, Service, Contact, Notification über den Browser erledigen lässt.
Zusätzlich speichert er jede Änderungen in einer Datenbank, so dass man bei einer Fehlkonfiguration einfach auf einen funktionierenden Strand zurück kehren kann.
Vorbereitung
sudo apt-get install php7.0-curl
Installation
Director runterladen
cd /usr/share/icingaweb2/modules sudo git clone https://github.com/Icinga/icingaweb2-module-director.git director
Der Director benötigt noch weitere Abhänigkeiten (ipl, incubator und reactbundle)
ipl installation:
MODULE_NAME=ipl MODULE_VERSION=v0.5.0 REPO="https://github.com/Icinga/icingaweb2-module-${MODULE_NAME}" MODULES_PATH="/usr/share/icingaweb2/modules" git clone ${REPO} "${MODULES_PATH}/${MODULE_NAME}" --branch "${MODULE_VERSION}" icingacli module enable "${MODULE_NAME}"
incubator installation:
MODULE_NAME=incubator MODULE_VERSION=v0.5.0 REPO="https://github.com/Icinga/icingaweb2-module-${MODULE_NAME}" MODULES_PATH="/usr/share/icingaweb2/modules" git clone ${REPO} "${MODULES_PATH}/${MODULE_NAME}" --branch "${MODULE_VERSION}" icingacli module enable "${MODULE_NAME}"
reactbundle installation:
MODULE_NAME=reactbundle MODULE_VERSION=v0.8.0 REPO="https://github.com/Icinga/icingaweb2-module-${MODULE_NAME}" MODULES_PATH="/usr/share/icingaweb2/modules" git clone ${REPO} "${MODULES_PATH}/${MODULE_NAME}" --branch "${MODULE_VERSION}" icingacli module enable "${MODULE_NAME}"
Datenbank für Director anlegen
sudo mysql -u root -p
danach
CREATE DATABASE icinga2director; GRANT ALL PRIVILEGES ON icinga2director.* TO 'icinga2director'@'localhost' IDENTIFIED BY 'icinga2directorpw'; FLUSH PRIVILEGES; EXIT
nun wird die Datenbankstruktur angelegt
mysql -u icinga2director -p icinga2director < /usr/share/icingaweb2/modules/director/schema/mysql.sql
icinga API aktivieren
sudo icinga2 api setup
information/cli: Generating new CA. information/base: Writing private key to '/var/lib/icinga2/ca//ca.key'. information/base: Writing X509 certificate to '/var/lib/icinga2/ca//ca.crt'. information/cli: Generating new CSR in '/var/lib/icinga2/certs//ubuntu.csr'. information/base: Writing private key to '/var/lib/icinga2/certs//ubuntu.key'. information/base: Writing certificate signing request to '/var/lib/icinga2/certs//ubuntu.csr'. information/cli: Signing CSR with CA and writing certificate to '/var/lib/icinga2/certs//ubuntu.crt'. information/pki: Writing certificate to file '/var/lib/icinga2/certs//ubuntu.crt'. information/cli: Copying CA certificate to '/var/lib/icinga2/certs//ca.crt'. information/cli: Adding new ApiUser 'root' in '/etc/icinga2/conf.d/api-users.conf'. information/cli: Enabling the 'api' feature. Enabling feature api. Make sure to restart Icinga 2 for these changes to take effect. Done. Now restart your Icinga 2 daemon to finish the installation!
bevor wir den Icinga Dienst neustarten, passen wir noch ein paar Config-Dateien an.
Config-Dateien anpassen
- /etc/icinga2/conf.d/api-users.conf
object ApiUser "director" { password = "R3Ueyl4 generiere hier einen langen zufälligen String AkbjEX9YLCM" permissions = [ "*" ] }
- /etc/icinga2/constants.conf
/* Secret key for remote node tickets */ const TicketSalt = "OyysbMw5INfwo3rvc49iQiI1Bb4 hier wieder etwas einzigartiges pNGgmY08bjfYD1VkGLhpMYb"
- /etc/icinga2/zones.conf
object Zone "director-global" { global = true }
nun können wir den Dienst Neustarten
sudo service icinga2 restart
Nun wird eine weitere Ressource im Icinga-Webinterface angelegt
Im Anschluss können wir das Director-Modul aktivieren.
Nachdem das Modul aktiviert ist kann man über den Reiter Configuration die gerade angelegte Ressource zuweisen.
Bei den Kickstart Assistent tragen wir folgende Werte ein:
- Name des Endpoints: Name der CA die beim Aufruf von icinga2 api setup verwendet wurde
- Icinga-Host: localhost
- Port: 5665
- API-Benutzer: director
- Passwort: das generierte Passwort aus /etc/icinga2/conf.d/api-users.conf
Im Anschluss kann der Import ausgeführt und die Konfiguration gespeichert werden.
Aktualisierung des Directors
mit dem folgenden Scriptt lässt sichd er Director einfach auf den „latest stable Release“ bringen
cd /usr/share/icingaweb2/modules/director git fetch --tags latestTag=$(git describe --tags `git rev-list --tags --max-count=1`) git checkout $latestTag
27 Gedanken zu “Icinga2 Director – Installation”
Hallo Christian,
vielen Dank, jetzt hat es funktioniert. Ich hatte Probleme mit den Lese/Schreibberechtigungen. Daher wurde mir immer zwar das Modul angezeigt, aber immer mit der Version 0.0.0. Jetzt ist alles okay. Sämtliche Module funktionieren nun. Vielen Dank
Maltex
https://1drv.ms/u/s!Am4xwOT3iWVdij9qt3UTCXx9v_OP
Moin,
ich habe ein Problem mit einigen Modulen. Ich habe nun schon eine mehrfache Neuinstallation von Icinga mit seinen Modulen etc… vorgenommen. Den Icinga-Director habe ich auch ordnungsgemäß installiert. Soweit so gut. Nachdem ich mich mit der DB direkt verbunden habe stoße ich immer wieder auf „Unerfüllte Abhängigkeiten“. Die 3 Module (BILD) scheinen zu fehlen. Die Frage ist, wie kann ich diese nachinstallieren und wo befindet sich der Ordner? Kann jemand hier helfen? Mit den Anweisungen von GIT komme ich nicht ganz klar, eine einfache Hilfestellung wäre sehr hilfreich. Vielen Dank
Linux debian 4.19.0-12-amd64 #1 SMP Debian 4.19.152-1 (2020-10-18) x86_64 GNU/Linux
Sorry, hier ist noch der Link zum Fehler:
https://1drv.ms/u/s!Am4xwOT3iWVdijrtBW-eFYRY5Ao7?e=cIeRbs
Hallo Maltex,
mittlerweile braucht der Director einige Abhängigkeiten, die damals, als ich die Anleitung geschrieben hab noch nicht notwendig waren.
Ich hab die Anleitung angepasst, im Punk Installation sind nun auch die 3 notwenigen Module aufgeführt. Damit klappts dann hoffentlich auch bei dir :=)
Hallo Christian,
erst einmal vielen Dank für die Mühe und Zeit.
wo muss ich die die Installation anpassen oder hinzufügen, um die Module zu installieren?
Leider geht nicht hervor, wo ich diese Module installieren kann. Stehe gerade etwas aufm Schlauch und muss ich die gesamte Installation nochmals durchführen? Ich bin da nicht so tief im Thema drin. Um jede Hilfe wäre ich sehr dankbar.
Hallo Maltex,
du must lediglich die Module ipl, incubator und reactbundle nachinstallieren (steht unter dem Punkt „Installation“ in der Anleitung). Danach solltest du mit der Konfiguration des Direktors weitermachen können.
Hallo, habe auch Problem mit den Abhänigkeiten obwohl ich sie installiert habe man kann sie auch aktivieren sind aber immer noch nicht wirklich aktiv.
Woran kann das liegen das ipl geht nur incubator und reactbundle geht nicht. Danke für das tolle Tut.
ich war beim Aufsetzen des moudules von Jira für icinga2 und bin dann auf deine Anleitung gestoßen.
p.s.
ich bekam den fehler
Table 'icinga2director.icinga_dbversion' doesn't exisTable 'icinga2director.icinga_dbversion' doesn't exists
gelöst durch
ich habe als resource mysql.ido belassen und die fehlende tabellen einfach nachgezogen
Danke. hat geklappt
Hallo Christian,
ich habe das selbe Problem wie Rene und Moritz.
Gibt es zwischenzeitlich eine Lösung für dieses Problem?
Gruß
Martin
Hallo Martin,
Sorry ich habe diese Fehler noch nicht zu Gesicht bekommen.
Erst vor 2 Wochen habe ich einen neuen Icinga Server aufgesetzt mit allem Drum und Dran (auf Ubuntu 18 und MariaDB als Datenbank) und da hat alles „problemlos“ funktioniert.
Ich vermute mal das ist ein Fehler aus der Datenbank? Nutzt ihr vielleicht MySQL oder PostgreSQL? Mit der aktuellen MariaDB unter Ubuntu 18.04 LTS funktioniert der Direktor so wie er soll
Gruß Christian
Hallo,
Heute ist der Fehler auch bei mir aufgetreten und er lässt sich relativ einfach beheben.
Löscht einfach den Ordner „/usr/share/icingaweb2/modules/director“ und checkt den Director erneut über git aus. (Master Branch)
Servus Christian,
danke für die tollte Anleitung. Hat soweit auch gut geklappt und funktioniert!
Icinga2 lief bei mir ein paar Wochen und ich konnte auch Änderungen ausrollen.
Das geht jetzt seit ein paar Tagen auf einmal nicht mehr 🙁
System: Ubuntu 18.04.2 LTS
Icinga2: 2.6.3
Director: 1.6.2
Wenn ich ich im Director unter Aktivitätslog auf „ausstehende Änderungen ausrollen“ klicke bekomme ich folgendeFehlermeldung:
Wenn ich in Director unter Deployments auf „Konfiguration erstllen“ klicke kommt folgende Meldung:
Hast Du zufällig eine Lösung dafür?
Vielen Dank!
LG
Rene
Icinga Web2: 2.6.3
Icinga2: r2.10.4-1
Hey,
gab es dafür eig. noch eine Lösung weil ich habe es nach 20Min suchen leider immer noch nicht gefixt bekommen.
Ich habe auch von v1.6.2 zu v1.5.2 gedowngraded aber auch das hat nichts gebracht.
Vielen Dank und viele Grüße
Moritz W.
Hallo Christian,
vielen Dnak erstmal für deine super Beschriebene Anleitung:
Leider komm ich bei dem folgenden Punk
„Nachdem das Modul aktiviert ist kann man über den Reiter Configuration die gerade angelegte Ressource zuweisen.“
die folgende Fehlermelden
Fatal error: Uncaught Error: Call to undefined method Icinga\Web\Response::getHeader() in /usr/share/icingaweb2/modules/director/library/Director/Web/Controller/ActionController.php:186 Stack trace: #0 /usr/share/php/Zend/Controller/Action.php(521): Icinga\Module\Director\Web\Controller\ActionController->postDispatch() #1 /usr/share/php/Icinga/Web/Controller/Dispatcher.php(76): Zend_Controller_Action->dispatch(‚indexAction‘) #2 /usr/share/php/Zend/Controller/Front.php(954): Icinga\Web\Controller\Dispatcher->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response)) #3 /usr/share/php/Icinga/Application/Web.php(361): Zend_Controller_Front->dispatch(Object(Icinga\Web\Request), Object(Icinga\Web\Response)) #4 /usr/share/php/Icinga/Application/webrouter.php(109): Icinga\Application\Web->dispatch() #5 /usr/share/icingaweb2/public/index.php(4): require_once(‚/usr/share/php/…‘) #6 {main} thrown in /usr/share/icingaweb2/modules/director/library/Director/Web/Controller/ActionController.php on line 186
….komm hier leider nicht weiter – hab den server auch mehrmals neu nach der beschriebenen Anleitung installiert.
Eine Idee woran dies liegen kann?
Vielen Dank und Grüße
Thomas
Hallo Thomas,
ich hab gerade eine Testinstallation auf einer frischen VM durchgeführt (Debian 9.8 minimal x64) und bekomme diese Fehler nicht, die Installation und Konfiguration des Directors klappt wunderbar.
Hast du vielleicht eine zu neue PHP Version (7.2+)? Mir sind solche Fehler gern mal bei Ubuntu aufgefallen, da sind die Pakete teilweise nicht miteinander kompatibel.
Gruß Christian
Hallo Christian,
Danke für Deine HowTo’s zu Icinga. Einfach genial für einen Anfänger wie mich.
Leider klappt bei mir der Punkt Kickstart Assistent nicht bzw. bekomme ich folgende Fehlermeldung:
CURL ERROR: Failed to connect to localhost port 5665: Connection refused (RestApiClient.php:143)
Woran scheitere ich hier?
Danke und Gruss,
Markus
Hallo Markus,
hast du vielleicht vergessen den Icinga Daemon neutzustarten?
Lauscht dein Icinga aktuell überhaupt auf den Port 5665? probiers mal
netstat -plnt | grep ':5665'
Vielleicht läuft ja auch noch eine Firewall auf deinem System
Hallo Christian,
Danke für Deine schnelle Reaktion mit entsprechender Unterstützung.
Jetzt hast Du ins „volle Newbie Wissen“ getroffen. Weiss leider nicht ob ich eine Firewall installiert habe. Bei Installation des Debian Basissystem habe ich die Standard Pakete gewählt. Nicht einmal der netstat Befehl ging ohne Nachinstallation.
Befehl netstat -plnt | grep ‚:5665‘ zeigt keine Ausgabe an. Der Daemon wurde neu gestartet bzw. sogar das ganze System
Sorry sind wirklich meine ersten Gehversuche mit Linux…
Gruss und Danke,
Markus
Hallo Markus,
soweit ich weiß 😉 ist standardmäßig unter Debian keine Firewall aktiviert.
Prüf doch mal mit dem Befehl: „ufw status“ ob die Firewall aktiv ist, falls ja kannst du sie ja mal zum Testen deaktivieren mit: „ufw disable„.
Der Grund für den Fehler kann jedoch auch ganz was anderes sein, es gibt einige Treffer bei Tante Google, die alle leider keine Lösung für das Problem verraten..
5665 ist eigentlich der Port für die API.. mit „icinga2 feature list“ kann man alle aktiven und inaktiven Features anzeigen lassen.. Falls das API Feature inaktiv ist schalte es an: „icinga2 feature enable api“ und versuchs nochmal.
Ich selbst hatte noch nie das Vergnügen diese Meldung zu lesen.. Vielleicht ist es aber auch einfacher das System neu zu installieren, wenn du eh gerade erst angefangen hast deine ersten Gehversuche zu machen 🙂
Gruß Christian
Hallo Christian,
Welch wahre Worte. Dann werde ich einmal Deiner Anleitung zur Grundinstallation folgen.
Gruss und Danke für den Support,
Markus
Sehr gute kompakte Anleitung!
Kann man immer schnell nachsehen 🙂
Hallo Christian,
ich habe gerade nach deiner tolle Anleitung Icinga, icingaWeb2 und den Director installiert. Alle scheint zu funktionieren nur beim erstellen der Host Vorlage ist mir aufgefallen das ich bei den Check-Commands keine Auswahl habe. Ist ein leeres Feld aber ich könnte dort etwas händisch eintragen.
Weiterhin hab ich im Director gesehen das ich anscheinend nur extern definierte Kommandos habe die nicht ausgebracht werden.
Hat jemand eine Idee?
Danke euch.
MfG Andreas
guten Tag Christian
ist es möglich im Director einen Check zu machen ob es einen update gibt?
cd /usr/share/icingaweb2/modules/director
git fetch —tags
latestTag=$(git describe —tags `git rev–list —tags —max–count=1`)
git checkout $latestTag
gruss
vinc
Ja das ist möglich.
folgendes kleine Bash-Script sollte genügen:
config dateien anpassen
/etc/icinga2/zone.conf
sollte wohl /etc/icinga2/zones.conf (mit einem s am ende
und hier ein typo am schluss
Aktualisierung des Directors
cd /usr/share/icingaweb2/modules7director
statt eine 7 wohl ein /
Ansonsten hat es geklappt mit der Installation, danke
Vinc
Danke für den Hinweis, hab es angepasst.