Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

centos:web_c7:icinga:director [05.08.2016 10:52. ] – [Benachrichtigungen] djangocentos: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 //**/var/lib/icinga2/**// und //**/var/cache/icinga2/**//. Nun löschen wir die Inhalte aus dem bestehenden Verzeichnissen unter //**/var/lib/icinga2/**// und //**/var/cache/icinga2/**//.
    # rm /var/lib/icinga2/* -f    # rm /var/lib/icinga2/* -f
-   # rm /var/lib/icinga2/api/zones/* -f+   # rm /var/lib/icinga2/api/zones/* -rf
    # rm /var/lib/icinga2/api/repository/* -f    # rm /var/lib/icinga2/api/repository/* -f
    # rm /var/lib/icinga2/api/packages/* -rf    # rm /var/lib/icinga2/api/packages/* -rf
Zeile 40: Zeile 40:
  
 Ebenso verfahren wir mit ggf. bereits angelgten Client-Zertifikaten unter //**/etc/icinga2/pki/**//. Ebenso verfahren wir mit ggf. bereits angelgten Client-Zertifikaten unter //**/etc/icinga2/pki/**//.
-   # rm /etc/icinga2/pki/*+   # rm /etc/icinga2/pki/-f
  
 Bevor wir nun die Konfigurationsdateien im Verzeichnis //**/etc/icinga2/**// auf ein absolutes Minimum zurückbauen, sichern wir uns dessen Inhalte weg. Bevor wir nun die Konfigurationsdateien im Verzeichnis //**/etc/icinga2/**// auf ein absolutes Minimum zurückbauen, sichern wir uns dessen Inhalte weg.
-   # cp -a /etc/icinga2/* -R /root/+   # mkdir /root/icinga2.backup 
 +   # cp -a /etc/icinga2/* -R /root/icinga2.backup/
  
 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 ".conf".  * directory. Each of these files must have the file extension ".conf".
  */  */
-// Django : 2016-08-01 +include_recursive "conf.d"
-// default: include_recursive "conf.d" +
-// include_recursive "conf.d"+
  
 </file> </file>
Zeile 204: Zeile 203:
 </font></pre> </font></pre>
 </html> </html>
 +
 +Wir haben nun ein quasi jungfräuliches System, auf dem wir nun aufsetzen wollen.
 +
 +{{ :centos:web_c7:icinga:director_076.png?direct&900 |Bild. Bildschrimhardcopy eines jungfräulichen Icinga 2 Web Systems}}
 +
  
 ===== GitHub ====== ===== GitHub ======
Zeile 227: Zeile 231:
  
 Anschließen führen wir einen **pull** gegen das [[https://github.com/Icinga/icingaweb2-module-director|Projekt]] bei [[https://github.com/|GitHub]] durch. Anschließen führen wir einen **pull** gegen das [[https://github.com/Icinga/icingaweb2-module-director|Projekt]] bei [[https://github.com/|GitHub]] durch.
-   # git pull https://github.com/Icinga/icingaweb2-module-director+   # git pull 
 <code>remote: Counting objects: 250, done. <code>remote: Counting objects: 250, done.
 remote: Compressing objects: 100% (238/238), done. remote: Compressing objects: 100% (238/238), done.
Zeile 297: Zeile 301:
  create mode 100644 test/php/library/Director/CustomVariable/CustomVariablesTest.php</code>  create mode 100644 test/php/library/Director/CustomVariable/CustomVariablesTest.php</code>
  
-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 und klicken auf den Reiter **Konfiguration**.+Hat sich an der MariaDB etwas geändert muss ein entsprechneder Update der mySQL-Definitionen erfolgenin der WEB-GUI unseres Icinga 2 Director wir dazu ein entsprechender Hinweis angezeigt.
  
-FIXME (//Bild einfügen, wenn ein Datenbankupdate nötig ist!//)+{{ :centos:web_c7:icinga:director_083.png?901 |Bild: Update Icinga 2 Director Datenbank Update}}
  
 +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.
 +
 +{{ :centos:web_c7:icinga:director_084.png?901 |Bild: Update Icinga 2 Director Datenbank Update}}
  
    
 ===== Grund-Konfiguration ===== ===== Grund-Konfiguration =====
 +==== API Setup ====
 +
 +https://docs.icinga.com/icinga2/latest/doc/module/icinga2/chapter/icinga2-api
 +
 +
 +<code>[root@vml000117 features-enabled]# systemctl status icinga2.service
 +● icinga2.service - Icinga host/service/network monitoring system
 +   Loaded: loaded (/usr/lib/systemd/system/icinga2.service; enabled; vendor preset: disabled)
 +   Active: active (running) since Mon 2017-03-06 20:36:14 CET; 1s ago
 +  Process: 30906 ExecStart=/usr/sbin/icinga2 daemon -d -e ${ICINGA2_ERROR_LOG} (code=exited, status=0/SUCCESS)
 +  Process: 30842 ExecStartPre=/usr/lib/icinga2/prepare-dirs /etc/sysconfig/icinga2 (code=exited, status=0/SUCCESS)
 + Main PID: 30932 (icinga2)
 +   CGroup: /system.slice/icinga2.service
 +           ├─30927 /usr/lib64/icinga2/sbin/icinga2 --no-stack-rlimit daemon -d -e /var/log/icinga2/error.log
 +           └─30932 /usr/lib64/icinga2/sbin/icinga2 --no-stack-rlimit daemon -d -e /var/log/icinga2/error.log
 +
 +Mar 06 20:36:14 vml000117.dmz.nausch.org systemd[1]: Starting Icinga host/service/network monitoring system...
 +Mar 06 20:36:14 vml000117.dmz.nausch.org systemd[1]: Started Icinga host/service/network monitoring system.
 +[root@vml000117 features-enabled]# 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 '/etc/icinga2/pki/vml000117.dmz.nausch.org.csr'.
 +information/base: Writing private key to '/etc/icinga2/pki/vml000117.dmz.nausch.org.key'.
 +information/base: Writing certificate signing request to '/etc/icinga2/pki/vml000117.dmz.nausch.org.csr'.
 +information/cli: Signing CSR with CA and writing certificate to '/etc/icinga2/pki/vml000117.dmz.nausch.org.crt'.
 +information/pki: Writing certificate to file '/etc/icinga2/pki/vml000117.dmz.nausch.org.crt'.
 +information/cli: Copying CA certificate to '/etc/icinga2/pki/ca.crt'.
 +information/cli: API user config file '/etc/icinga2/conf.d/api-users.conf' already exists, not creating config file.
 +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!
 +
 +[root@vml000117 features-enabled]# systemctl restart icinga2.service 
 +[root@vml000117 features-enabled]# systemctl status icinga2.service
 +● icinga2.service - Icinga host/service/network monitoring system
 +   Loaded: loaded (/usr/lib/systemd/system/icinga2.service; enabled; vendor preset: disabled)
 +   Active: active (running) since Mon 2017-03-06 20:37:07 CET; 1s ago
 +  Process: 31131 ExecStart=/usr/sbin/icinga2 daemon -d -e ${ICINGA2_ERROR_LOG} (code=exited, status=0/SUCCESS)
 +  Process: 31068 ExecStartPre=/usr/lib/icinga2/prepare-dirs /etc/sysconfig/icinga2 (code=exited, status=0/SUCCESS)
 + Main PID: 31157 (icinga2)
 +   CGroup: /system.slice/icinga2.service
 +           ├─31152 /usr/lib64/icinga2/sbin/icinga2 --no-stack-rlimit daemon -d -e /var/log/icinga2/error.log
 +           └─31157 /usr/lib64/icinga2/sbin/icinga2 --no-stack-rlimit daemon -d -e /var/log/icinga2/error.log
 +
 +Mar 06 20:37:06 vml000117.dmz.nausch.org systemd[1]: Starting Icinga host/service/network monitoring system...
 +Mar 06 20:37:07 vml000117.dmz.nausch.org systemd[1]: Started Icinga host/service/network monitoring system.
 +</code>
 ==== 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 wiurde dabei zur Lauf-/Installationszeit individuell neu generiert.+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 wurde dabei zur Lauf-/Installationszeit individuell neu generiert.
    # vim /etc/icinga2/conf.d/api-users.conf    # vim /etc/icinga2/conf.d/api-users.conf
  
Zeile 400: Zeile 457:
 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.</b> Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.</b>
  
-MariaDB server version for the right syntax to use near 'SET 'utf8'' at line 1 
 MariaDB [(none)]> CREATE DATABASE icinga_director CHARACTER SET 'utf8'; MariaDB [(none)]> CREATE DATABASE icinga_director CHARACTER SET 'utf8';
 <b>Query OK, 1 row affected (0.00 sec)</b> <b>Query OK, 1 row affected (0.00 sec)</b>
Zeile 418: Zeile 474:
 </html> </html>
  
-Anschließend befüllen wir die gerade angelegt Datenbank mit Leben. Hierzu verwenden wir das Schema, aus dem Verzeichnis //**/usr/share/icingaweb2/modules/director/schema/**//. 
-   # mysql icinga_director -u icinga_director -p < /usr/share/icingaweb2/modules/director/schema/mysql.sql 
- 
-  Enter password:  
  
 ==== MariaDB Datenbank-Ressource ==== ==== MariaDB Datenbank-Ressource ====
Zeile 440: Zeile 492:
 charset = "utf8" charset = "utf8"
 port = "3306" port = "3306"
-persistent = "1"+persistent = "0"
  
 ... ...
 </file> </file>
 +
 +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**.
 +
 +{{ :centos:web_c7:icinga:director_077.png?direct&900 |Bild: Icinga web 2 GUI - erstellen der icinga2-director Datenbank-Anbindung}}
 +
 +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. 
 +
 +{{ :centos:web_c7:icinga:director_078.png?direct&900 |Bild: Icinga web 2 GUI - erstellen der icinga2-director Datenbank-Anbindung}}
 +
 +
 +
 +
 +{{ :centos:web_c7:icinga:director_079.png?direct&900 |Bild: Icinga web 2 GUI - erstellen der icinga2-director Datenbank-Anbindung}}
 +
 +
  
 ==== director-global ==== ==== director-global ====
Zeile 476: Zeile 543:
 {{ :centos:web_c7:icinga:director_002.png?direct&900 |Bild: Icinga Web 2 aktiviertes Module director}} {{ :centos:web_c7:icinga:director_002.png?direct&900 |Bild: Icinga Web 2 aktiviertes Module director}}
  
-Über den Reiter **Configuration** erreichen wir nun die Einstellungsseite für die Angaben zur Anbindung des Icinga Directors zum Icinga 2 Serverkurzum dem **Kickstart Assistant**.+Über den Reiter **Configuration** erreichen wir nun die Einstellungsseite für die Director spezifischen Dinge. Da wir noch kein Datenbankschema angelegt habenwerden wir dies nun erst einmal nachholen; dazu klicken wir auf die Schaltfläche **[ Datenbankschema erstellen ]**.
  
-{{ :centos:web_c7:icinga:director_003.png?direct&900 |Bild: Icinga Web 2 aktiviertes Modul director}}+{{ :centos:web_c7:icinga:director_080.png?direct&900 |Bild: Icinga Web 2 Director Konfigurationsseite}}
  
-Beim Datenbankbackend wählen wir nun unsere zuvor definierte Ressource **icinga_directordb** aus+Wurde die Datenbank erfolgreich befüllt wird uns dies um unteren Bildschirmrand eingeblendet.
  
-{{ :centos:web_c7:icinga:director_004.png?direct&901 |Bild: Icinga Web 2 Kickstart Assistant}}+{{ :centos:web_c7:icinga:director_081.png?direct&900 |Bild: Icinga Web 2 Director Konfigurationsseite}}
  
-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  ]** aus. Die erfolgreiche Integration wird uns am unteren Bildschirmrand wieder eingeblendet.+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  ]** aus.  
 + 
 + 
 +{{ :centos:web_c7:icinga:director_082.png?direct&900 |Bild: Icinga Web 2 Director Konfigurationsseite}} 
 + 
 +Die erfolgreiche Integration wird uns am unteren Bildschirmrand wieder eingeblendet.
  
 {{ :centos:web_c7:icinga:director_005.png?direct&900 |Bild: Icinga Web 2 Kickstart Assistant}} {{ :centos:web_c7:icinga:director_005.png?direct&900 |Bild: Icinga Web 2 Kickstart Assistant}}
Zeile 553: Zeile 625:
 Bei der **Check Ausführung** wählen wir dann das Kommando **hostalive** aus und definieren die Standardzeiten  für die Check-Ausführung. Bei der **Check Ausführung** wählen wir dann das Kommando **hostalive** aus und definieren die Standardzeiten  für die Check-Ausführung.
  
-{{ :centos:web_c7:icinga:director_011.png?direct&900 |Bild: Icinga 2 Director - Anlegen des Host-Templates Icinga Agent}}+{{ :centos:web_c7:icinga:director_011.png?direct&901 |Bild: Icinga 2 Director - Anlegen des Host-Templates Icinga Agent}}
  
 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:
 {{ :centos:web_c7:icinga:director_037.png?direct&900 |Bild: Icinga 2 Director - Anlegen des Services Icinga Agent}} {{ :centos:web_c7:icinga:director_037.png?direct&900 |Bild: Icinga 2 Director - Anlegen des Services Icinga Agent}}
  
-{{ :centos:web_c7:icinga:director_038.png?direct&900 |Bild: Icinga 2 Director - Anlegen des Services Icinga Agent}}+{{ :centos:web_c7:icinga:director_038.png?direct&901 |Bild: Icinga 2 Director - Anlegen des Services Icinga Agent}}
  
-{{ :centos:web_c7:icinga:director_039.png?direct&900 |Bild: Icinga 2 Director - Anlegen des Services Icinga Agent}}+{{ :centos:web_c7:icinga:director_039.png?direct&901 |Bild: Icinga 2 Director - Anlegen des Services Icinga Agent}}
  
 ==== Kommandos ==== ==== Kommandos ====
Zeile 846: Zeile 918:
  
 ==== Benachrichtigungen ==== ==== Benachrichtigungen ====
-<WRAP center round info 80%>+<WRAP center round info 60%> \\
 Die nun folgende Beschreibung zu den Benachrichtigungen baut auf den Ausführungen zu **__[[https://www.unixe.de/icinga2-director-notifications/|icinga2 + director + notifications = <3]]__** von **[[https://www.spiller.me/|Marianne M. Spiller]]** auf, die wir speziell für unsere Umgebung adaptieren werden.  Die nun folgende Beschreibung zu den Benachrichtigungen baut auf den Ausführungen zu **__[[https://www.unixe.de/icinga2-director-notifications/|icinga2 + director + notifications = <3]]__** von **[[https://www.spiller.me/|Marianne M. Spiller]]** auf, die wir speziell für unsere Umgebung adaptieren werden. 
  
  
-Der ausdrückliche Dank an dieser Stele gilt daher ausdrücklich **[[https://twitter.com/sys_adm_ama|@sys_adm_ama]]**.+Der ausdrückliche Dank gilt daher an dieser Stelle ausdrücklich **[[https://twitter.com/sys_adm_ama|@sys_adm_ama]]**!
 </WRAP> </WRAP>
 +
 +Zum Versenden von Benachrichtigungen per eMail müssen wir natürlich erst einmal festlegen, 
 +**[[centos:web_c7:icinga:director#benutzer|wer]]** und **[[centos:web_c7:icinga:director#zeitraeume|wann]]** entsprechende Benachrichtigungen bekommen soll. Die hierzu nötigen Festlegungen haben wir bereits bei den Punkten **[[centos:web_c7:icinga:director#benutzer|Benutzer]]** und **[[centos:web_c7:icinga:director#zeitraeume|Zeiträume]]** erledigt.
 +
 +Die zum Versenden der Benachrichtigung benötigen Scripte holen wir uns erst einmal von der Githiub-User-Seite von **[[https://www.spiller.me/|Marianne M. Spiller]]**. Zuvor wechseln wir aber noch auf der Konsole in das Scripte-Verzeichnis //**/etc/icinga2/scripts**//.
 +   # cd /etc/icinga2/scripts
 +
 +   # wget https://raw.githubusercontent.com/sysadmama/misc/master/icinga2/scripts/host-by-mail.sh -Odirector-mail-host-notification.sh
 +
 +   # wget https://raw.githubusercontent.com/sysadmama/misc/master/icinga2/scripts/service-by-mail.sh -Odirector-mail-service-notification.sh
 +
 +Anschließend statten wir die beiden scripte noch mit den Dateiausführungsrechten aus.
 +   # 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/Betreffzeilen** da Nachrichten wenn diese an externe eMail-Adressen versandt werden zwar automatisch mit **[[centos:mail_c7:zeyple|Zeyple]]** verschlüsselt werden, die Headerzeile jedoch weiterhin unverschlüsselt für fremde Augen einsehbar ist. Schließlich geht keinem externen etwas an, welcher unserer Hosts oder Services eine Notification generiert hat.
 +   # vim /etc/icinga2/scripts/director-mail-host-notification.sh
 +
 +<file bash director-mail-host-notifications.sh>#!/bin/bash
 +## /etc/icinga2/scripts/host-by-mail.sh / 20160616
 +## Marianne Spiller <github@spiller.me>
 +## icinga2-2.4.10-1~ppa1~xenial1
 +## adopted by django@nausch.org / 20160707
 +
 +Usage() {
 +  echo "host-by-mail notification script for Icinga2 by spillerm <github@spiller.me> 2016/06/16"
 +  echo "Used by icinga2 director and command 'alarm-host'."
 +}
 +
 +while getopts a:b:c:d:hl:o:r:s:t: opt
 +do
 +  case "$opt" in
 +    a) HOSTADDRESS=$OPTARG ;;
 +    b) NAUTHOR=$OPTARG ;;
 +    c) NCOMMENT=$OPTARG ;;
 +    d) DATE=$OPTARG ;;
 +    h) Usage
 +       exit 1 ;;
 +    l) HOSTDN=$OPTARG ;;
 +    o) HOSTOUTPUT=$OPTARG ;;
 +    r) RECIPIENT=$OPTARG ;;
 +    s) HOSTSTATE=$OPTARG ;;
 +    t) NTYPE=$OPTARG ;;
 +    ?) echo "ERROR: invalid option" >&2
 +       exit 1 ;;
 +  esac
 +done
 +
 +shift $((OPTIND - 1))
 +
 +notification_message=`cat <<EOF
 +*****  nausch.org Icinga2 Host Monitoring  *****
 +
 +==> $NTYPE alert for $HOSTDN - host state is $HOSTSTATE! <==
 +
 +When?    $DATE
 +Host?    $HOSTDN
 +Address? $HOSTADDRESS
 +Info?    $HOSTOUTPUT
 +
 +Comment by $NAUTHOR: $NCOMMENT
 +
 +Have a look:
 +https://orwell.nausch.org/icingaweb2/monitoring/host/show?host=$HOSTDN
 +
 +EOF
 +`
 +
 +#/usr/bin/printf "%b" "$notification_message" | mail -s "$NTYPE alert for $HOSTDN - host state is $HOSTSTATE" $RECIPIENT
 +/usr/bin/printf "%b" "$notification_message" | mail -s "Icinga 2 Host-Notification" $RECIPIENT
 +</file>
 +
 +   # vim /etc/icinga2/scripts/director-mail-host-notification.sh
 +
 +<file bash director-mail-service-notification.sh>#!/bin/bash
 +## /etc/icinga2/scripts/service-by-mail.sh / 20160616
 +## Marianne Spiller <github@spiller.me>
 +## icinga2-2.4.10-1~ppa1~xenial1
 +## adopted by django@nausch.org / 20160707
 +
 +Usage() {
 +  echo "service-by-mail notification script for Icinga2 by spillerm <github@spiller.me> 2016/06/16"
 +  echo "Used by icinga2 director and command 'alarm-service'."
 +}
 +
 +while getopts a:b:c:d:e:hl:o:r:s:t: opt
 +do
 +  case "$opt" in
 +    a) HOSTADDRESS=$OPTARG ;;
 +    b) NAUTHOR=$OPTARG ;;
 +    c) NCOMMENT=$OPTARG ;;
 +    d) DATE=$OPTARG ;;
 +    e) SERVICENAME=$OPTARG ;;
 +    h) Usage
 +       exit 1 ;;
 +    l) HOSTDN=$OPTARG ;;
 +    o) SERVICEOUTPUT=$OPTARG ;;
 +    r) RECIPIENT=$OPTARG ;;
 +    s) SERVICESTATE=$OPTARG ;;
 +    t) NTYPE=$OPTARG ;;
 +    ?) echo "ERROR: invalid option" >&2
 +       exit 1 ;;
 +  esac
 +done
 +
 +shift $((OPTIND - 1))
 +
 +notification_message=`cat <<EOF
 +*****  nausch.org Icinga2 Service Monitoring  *****
 +
 +==> $NTYPE alert for $SERVICENAME is $SERVICESTATE! <==
 +
 +When?    $DATE
 +Service? $SERVICENAME
 +Host?    $HOSTDN
 +Address? $HOSTADDRESS
 +Info?    $SERVICEOUTPUT
 +
 +Comment by $NAUTHOR: $NCOMMENT
 +
 +Have a look:
 +https://orwell.nausch.org/icingaweb2/monitoring/service/show?host=$HOSTDN&service=$SERVICENAME
 +
 +EOF
 +`
 +
 +#/usr/bin/printf "%b" "$notification_message" | mail -s "$NTYPE alert for $SERVICENAME - service state is $SERVICESTATE" $RECIPIENT
 +/usr/bin/printf "%b" "$notification_message" | mail -s "Icinga 2 Service-Notification" $RECIPIENT</file>
 +
 +
 +Sowohl für die Service-Notfication wie auch für die Host-Notification brauchen wir nun noch jeweils ein zugehöriges **[[centos:web_c7:icinga:director#kommandos|Kommando]]**, welches wir nun mit dem Icinga 2 Director anlegen werden. 
 +
 +{{ :centos:web_c7:icinga:director_063.png?direct&900 |Bild: Bildschirmhardcopy - Icinga 2 Director Anlegen eines neuen Kommandos Notification}}
 +
 +Beim **Kommandotyp** wählen wir dabei aus dem **drop down** Menü die Option **//Notification Plugin Command//** aus und geben beim **Kommando** den vollen Pfad und den Namen des jeweiligen bash-Scriptes an. 
 +
 +{{ :centos:web_c7:icinga:director_064.png?direct&901 |Bild: Bildschirmhardcopy - Icinga 2 Director Anlegen eines neuen Kommandos Notification}}
 +
 +Auf dem Reiter **Argumente** definieren wir nun noch die im Bash-Script von **[[https://www.spiller.me/|Marianne M. Spiller]]** definierten Optionen. 
 +
 +{{ :centos:web_c7:icinga:director_065.png?direct&901 |Bild: Bildschirmhardcopy - Icinga 2 Director Anlegen eines neuen Kommandos Notification}}
 +
 +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.
 +
 +{{ :centos:web_c7:icinga:director_067.png?direct&900 |Bild: Bildschirmhardcopy - Icinga 2 Director Anlegen eines neuen Kommandos Notification}}
 +
 +Die vollständige //**zones.d/director-global/commands.conf**// Definition hat also folgenden Inhalt.
 +<code>object NotificationCommand "10_director-mail-host-notification" {
 +    execute = PluginNotification
 +    command = [
 +        "/etc/icinga2/scripts/director-mail-host-notification.sh"
 +    ]
 +    arguments = {
 +        "-a" = "$address$"
 +        "-b" = "$notification.author$"
 +        "-c" = "$notification.comment$"
 +        "-d" = "$icinga.short_day_time$"
 +        "-l" = "$host.name$"
 +        "-o" = "$host.output$"
 +        "-r" = "$user.email$"
 +        "-s" = "$host.state$"
 +        "-t" = "$notifcation.type$"
 +    }
 +}</code>
 +
 +Wie beim Kommando für die Host-Notifications werden wir nun auch noch ein Kommando für die Service-Notifications anlegen.
 +
 +{{ :centos:web_c7:icinga:director_068.png?direct&898 |Bild: Bildschirmhardcopy - Icinga 2 Director Anlegen eines neuen Kommandos Notification}}
 +
 +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.
 +
 +{{ :centos:web_c7:icinga:director_070.png?direct&899 |Bild: Bildschirmhardcopy - Icinga 2 Director Anlegen eines neuen Kommandos Notification}}
 +
 +Die vollständige //**zones.d/director-global/commands.conf**// Definition hat also folgenden Inhalt
 +
 +<code>object NotificationCommand "10_director-mail-service-notification" {
 +    execute = PluginNotification
 +    command = [
 +        "/etc/icinga2/scripts/director-mail-service-notification.sh"
 +    ]
 +    arguments = {
 +        "-a" = "$address$"
 +        "-b" = "$notification.author$"
 +        "-c" = "$notification.comment$"
 +        "-d" = "$icinga.short_day_time$"
 +        "-e" = "$service.name$"
 +        "-l" = "$host.name$"
 +        "-o" = "$service.output$"
 +        "-r" = "$user.email$"
 +        "-s" = "$service.state$"
 +        "-t" = "$notifcation.type$"
 +    }
 +}</code>
 +
 +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.
 +
 +{{ :centos:web_c7:icinga:director_071.png?direct&899 |Bild: Bildschirmhardcopy - Icinga 2 Director Anlegen eines Notification Templates}}
 +
 +Wie zuvor bei den Hosts, legen wir uns nun noch das Notification Service-Template an.
 +
 +{{ :centos:web_c7:icinga:director_072.png?direct&901 |Bild: Bildschirmhardcopy - Icinga 2 Director Anlegen eines Notification Templates}}
 +
 +Über die **Assigment Rules** müssen wir nun noch kurz definieren, bei welchen Hosts unsere definierten Host Notifications greifen sollen.
 +
 +{{ :centos:web_c7:icinga:director_073.png?direct&902 |Bild: Bildschirmhardcopy - Icinga 2 Director Anlegen der Zuordnung von Hosts zu Host Notification Templates}}
 +
 +Zum Schluss definieren wir auch noch die **Assigment Rules**, damit Icinga 2 weiss, bei welchen Services Benachrichtigungen versandt werden sollen.
 +
 +{{ :centos:web_c7:icinga:director_074.png?direct&902 |Bild: Bildschirmhardcopy - Icinga 2 Director Anlegen der Zuordnung von Services zu Service Notification Templates}}
 +
 +Sofern nun entsprechende Änderungen an Services und/oder Hosts passieren, werden zugehörige Benachrichtigungen per eMAil versendet.
 +
 +{{ :centos:web_c7:icinga:director_075.png?direct&750 |Bild: Bildschirmhardcopy - Icinga 2 Beispiele erfolgreicher Notifications per eMail}}
 +
 +====== Links ======
 +  * **[[centos:web_c7:start| ⇐ Zurück zu Kapitel "Webserverinstallation unter CentOS 7.x"]]**
 +  * **[[wiki:start|Zurück zu Projekte und Themenkapitel]]**
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
  
  
-**[[centos:web_c7:icinga:director#zeitraeume]]** 
  • centos/web_c7/icinga/director.1470394321.txt.gz
  • Zuletzt geändert: 05.08.2016 10:52.
  • von django