Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
centos:web_c7:icinga:director [05.08.2016 11:30. ] – [Benachrichtigungen] django | centos:web_c7:icinga:director [20.04.2018 10:36. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 19: | Zeile 19: | ||
Nun löschen wir die Inhalte aus dem bestehenden Verzeichnissen unter // | Nun löschen wir die Inhalte aus dem bestehenden Verzeichnissen unter // | ||
# rm / | # rm / | ||
- | # rm / | + | # rm / |
# rm / | # rm / | ||
# rm / | # rm / | ||
Zeile 40: | Zeile 40: | ||
Ebenso verfahren wir mit ggf. bereits angelgten Client-Zertifikaten unter // | Ebenso verfahren wir mit ggf. bereits angelgten Client-Zertifikaten unter // | ||
- | # rm / | + | # rm / |
Bevor wir nun die Konfigurationsdateien im Verzeichnis // | Bevor wir nun die Konfigurationsdateien im Verzeichnis // | ||
- | # cp -a / | + | # mkdir / |
+ | # cp -a / | ||
Nun löschen wir entweder die Inhalte nachfolgender Dateien, oder kommentieren diese entsprechend aus. | Nun löschen wir entweder die Inhalte nachfolgender Dateien, oder kommentieren diese entsprechend aus. | ||
Zeile 132: | Zeile 133: | ||
* directory. Each of these files must have the file extension " | * directory. Each of these files must have the file extension " | ||
*/ | */ | ||
- | // Django : 2016-08-01 | + | include_recursive " |
- | // default: include_recursive " | + | |
- | // include_recursive " | + | |
</ | </ | ||
Zeile 204: | Zeile 203: | ||
</ | </ | ||
</ | </ | ||
+ | |||
+ | Wir haben nun ein quasi jungfräuliches System, auf dem wir nun aufsetzen wollen. | ||
+ | |||
+ | {{ : | ||
+ | |||
===== GitHub ====== | ===== GitHub ====== | ||
Zeile 227: | Zeile 231: | ||
Anschließen führen wir einen **pull** gegen das [[https:// | Anschließen führen wir einen **pull** gegen das [[https:// | ||
- | # git pull https:// | + | # git pull |
< | < | ||
remote: Compressing objects: 100% (238/238), done. | remote: Compressing objects: 100% (238/238), done. | ||
Zeile 297: | Zeile 301: | ||
| | ||
- | Hat sich an der MariaDB etwas geändert muss ein entsprechneder Update der mySQL-Definitionen erfolgen. Hierzu wechseln wir in Module Konfiguration des Icinga-Director | + | Hat sich an der MariaDB etwas geändert muss ein entsprechneder Update der mySQL-Definitionen erfolgen; in der WEB-GUI unseres Icinga 2 Director |
+ | |||
+ | {{ : | ||
- | FIXME (//Bild einfügen, wenn ein Datenbankupdate nötig ist!//) | + | Mit einem Klick auf die Schaltfläche **[ Schema-Migrations-Scripte anwenden ]** starten wir den Aktualisierungsvorgang. Wurden die Aktualisierungen erfolgreich beendet, wird uns dies am unteren Bildschirmrand entsprechend angezeigt. |
+ | {{ : | ||
===== Grund-Konfiguration ===== | ===== Grund-Konfiguration ===== | ||
+ | ==== API Setup ==== | ||
+ | |||
+ | https:// | ||
+ | |||
+ | |||
+ | < | ||
+ | ● icinga2.service - Icinga host/ | ||
+ | | ||
+ | | ||
+ | Process: 30906 ExecStart=/ | ||
+ | Process: 30842 ExecStartPre=/ | ||
+ | Main PID: 30932 (icinga2) | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Mar 06 20:36:14 vml000117.dmz.nausch.org systemd[1]: Starting Icinga host/ | ||
+ | Mar 06 20:36:14 vml000117.dmz.nausch.org systemd[1]: Started Icinga host/ | ||
+ | [root@vml000117 features-enabled]# | ||
+ | information/ | ||
+ | information/ | ||
+ | information/ | ||
+ | information/ | ||
+ | information/ | ||
+ | information/ | ||
+ | information/ | ||
+ | information/ | ||
+ | information/ | ||
+ | information/ | ||
+ | information/ | ||
+ | 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! | ||
+ | |||
+ | [root@vml000117 features-enabled]# | ||
+ | [root@vml000117 features-enabled]# | ||
+ | ● icinga2.service - Icinga host/ | ||
+ | | ||
+ | | ||
+ | Process: 31131 ExecStart=/ | ||
+ | Process: 31068 ExecStartPre=/ | ||
+ | Main PID: 31157 (icinga2) | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | Mar 06 20:37:06 vml000117.dmz.nausch.org systemd[1]: Starting Icinga host/ | ||
+ | Mar 06 20:37:07 vml000117.dmz.nausch.org systemd[1]: Started Icinga host/ | ||
+ | </ | ||
==== CA erstellen ==== | ==== CA erstellen ==== | ||
# icinga2 node wizard | # icinga2 node wizard | ||
Zeile 376: | Zeile 433: | ||
==== api-user ==== | ==== api-user ==== | ||
- | Für die Kommunikation des Icinga 2 Director mit dem Icinga 2 Server erfolgt mit Hilfe eines API-Users, der bei der Installation automatisch generiert wurde. Das zugehörige Passwort | + | Für die Kommunikation des Icinga 2 Director mit dem Icinga 2 Server erfolgt mit Hilfe eines API-Users, der bei der Installation automatisch generiert wurde. Das zugehörige Passwort |
# vim / | # vim / | ||
Zeile 400: | Zeile 457: | ||
Type ' | Type ' | ||
- | MariaDB server version for the right syntax to use near 'SET ' | ||
MariaDB [(none)]> | MariaDB [(none)]> | ||
< | < | ||
Zeile 418: | Zeile 474: | ||
</ | </ | ||
- | Anschließend befüllen wir die gerade angelegt Datenbank mit Leben. Hierzu verwenden wir das Schema, aus dem Verzeichnis // | ||
- | # mysql icinga_director -u icinga_director -p < / | ||
- | |||
- | Enter password: | ||
==== MariaDB Datenbank-Ressource ==== | ==== MariaDB Datenbank-Ressource ==== | ||
Zeile 440: | Zeile 492: | ||
charset = " | charset = " | ||
port = " | port = " | ||
- | persistent = "1" | + | persistent = "0" |
... | ... | ||
</ | </ | ||
+ | |||
+ | Alternativ dazu kann man natürlich dazu auch die **Icinga Web 2 GUI** verwenden. Im Menü **Konfiguration** klicken wir auf die Schaltfläche **+ Neue Ressource erstellen**. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Hier tragen wir nun unsere zuvor definierten Daten für die Anbindung an unseren MariaDB-Server ein. Zum Schluss klicken wir auf die Schaltfläche **[ ]** zum Abspeichern unserer Konfigurationsänderung - dabei wir dann auch gleich getestet, ob ein Zugriff auf die director-Datebank mit den eigegebenen Werten möglich ist. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
==== director-global ==== | ==== director-global ==== | ||
Zeile 476: | Zeile 543: | ||
{{ : | {{ : | ||
- | Über den Reiter **Configuration** erreichen wir nun die Einstellungsseite für die Angaben zur Anbindung des Icinga Directors zum Icinga 2 Server, kurzum dem **Kickstart Assistant**. | + | Über den Reiter **Configuration** erreichen wir nun die Einstellungsseite für die Director spezifischen Dinge. Da wir noch kein Datenbankschema angelegt haben, werden wir dies nun erst einmal nachholen; dazu klicken wir auf die Schaltfläche |
+ | |||
+ | {{ : | ||
+ | |||
+ | Wurde die Datenbank erfolgreich befüllt wird uns dies um unteren Bildschirmrand eingeblendet. | ||
+ | |||
+ | {{ : | ||
- | {{ : | + | Beim **Kickstart Assistant** tragen wir nun die Daten für unseren |
- | Beim Datenbankbackend wählen wir nun unsere zuvor definierte Ressource **icinga_directordb** aus. | ||
- | {{ : | + | {{ : |
- | Beim Kickstart Assistant tragen wir nun die Daten für unseren Icinga 2 Server ein. Anschließend wählen wir die Schaltfläche ** [ Import ausführen | + | Die erfolgreiche Integration wird uns am unteren Bildschirmrand wieder eingeblendet. |
{{ : | {{ : | ||
Zeile 553: | Zeile 625: | ||
Bei der **Check Ausführung** wählen wir dann das Kommando **hostalive** aus und definieren die Standardzeiten | Bei der **Check Ausführung** wählen wir dann das Kommando **hostalive** aus und definieren die Standardzeiten | ||
- | {{ : | + | {{ : |
Anschließend legen wir uns unseren ersten Host an und importieren das zu vor definiert Template **Icinga Agent**. | Anschließend legen wir uns unseren ersten Host an und importieren das zu vor definiert Template **Icinga Agent**. | ||
Zeile 719: | Zeile 791: | ||
{{ : | {{ : | ||
- | {{ : | + | {{ : |
- | {{ : | + | {{ : |
==== Kommandos ==== | ==== Kommandos ==== | ||
Zeile 859: | Zeile 931: | ||
# cd / | # cd / | ||
- | # wget https:// | + | # wget https:// |
# wget https:// | # wget https:// | ||
Zeile 866: | Zeile 938: | ||
# chmod +x director-mail*.sh | # chmod +x director-mail*.sh | ||
- | Diese Scripte passen wir nun unserer Monitoring-Umgebung und unseren Anforderungen entsprechend an, damit z.B. später links in der Nachricht auf den richtigen Monitoring Hosts enden. Ebenso beschneiden wir die **Subject/ | + | Diese Scripte passen wir nun unserer Monitoring-Umgebung und unseren Anforderungen entsprechend an, damit z.B. später links in der Nachricht auf den richtigen Monitoring Hosts enden. Ebenso beschneiden wir die **Subject/ |
- | # vim / | + | # vim / |
<file bash director-mail-host-notifications.sh># | <file bash director-mail-host-notifications.sh># | ||
Zeile 923: | Zeile 995: | ||
</ | </ | ||
- | # vim / | + | # vim / |
<file bash director-mail-service-notification.sh># | <file bash director-mail-service-notification.sh># | ||
Zeile 981: | Zeile 1053: | ||
- | Sowohl für die Service-Notfication wie auch für die Host-Notification brauchen wir nun noch jeweils ein zugehöriges **[[centos: | + | Sowohl für die Service-Notfication wie auch für die Host-Notification brauchen wir nun noch jeweils ein zugehöriges **[[centos: |
+ | |||
+ | {{ : | ||
+ | |||
+ | Beim **Kommandotyp** wählen wir dabei aus dem **drop down** Menü die Option **// | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Auf dem Reiter **Argumente** definieren wir nun noch die im Bash-Script von **[[https:// | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Dank der //**icinga runtime macros**// werden dann zur Laufzeit jeweils die gewünschten Werte übertragen. Der Option **-a** im Bash-Script wird so z.B. über das //**runtime macro**// **$address$** die jeweilige IP-Adresse übermittelt. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Die vollständige // | ||
+ | < | ||
+ | execute = PluginNotification | ||
+ | command = [ | ||
+ | "/ | ||
+ | ] | ||
+ | arguments = { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | Wie beim Kommando für die Host-Notifications werden wir nun auch noch ein Kommando für die Service-Notifications anlegen. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Auch hier legen wir dann für jede Option aus dem Bash-Script ein zugehöriges Argument an, damit die benötigten Daten zur Laufzeit dem Script übergeben werden können. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Die vollständige // | ||
+ | |||
+ | < | ||
+ | execute = PluginNotification | ||
+ | command = [ | ||
+ | "/ | ||
+ | ] | ||
+ | arguments = { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | Wevor wir nun die Zuweisung der Benachrichtigungen für unsere Hosts machen können, legen wir uns noch jeweils ein Template für die Host-Notifications an. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Wie zuvor bei den Hosts, legen wir uns nun noch das Notification Service-Template an. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Über die **Assigment Rules** müssen wir nun noch kurz definieren, bei welchen Hosts unsere definierten Host Notifications greifen sollen. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Zum Schluss definieren wir auch noch die **Assigment Rules**, damit Icinga 2 weiss, bei welchen Services Benachrichtigungen versandt werden sollen. | ||
+ | {{ : | ||
+ | Sofern nun entsprechende Änderungen an Services und/oder Hosts passieren, werden zugehörige Benachrichtigungen per eMAil versendet. | ||
+ | {{ : | ||
+ | ====== Links ====== | ||
+ | * **[[centos: | ||
+ | * **[[wiki: | ||
+ | * **[[http:// | ||