IT-Zukunft Schule

Nutzungshinweise zu Icinga2

Icinga2 ist der vom Projekt IT-Zukunft-Schule verwendete Monitoring-Service zur Fernüberwachung der System an Projektstandorten.

Einbinden von Icinga2-Nodes

Damit ein Server im IT-Zukunft Schule Projekt in das Monitoring des Projekts eingebunden werden kann, muss es in die VPN-Infrastruktur des Projekts eingebunden sein. Vergl. hierzu Technik/Installation/VPN.

Alle folgenden Arbeiten werden in der Console via SSH ausgeführt. Jetzt auf dem einzubindenden Host-System per SSH anmelden.

Nach der VPN-Einbindung muss dem Icinga2-Node die IP des Hosts monitoring.itzks bekannt gemacht werden. D.h. in der Datei /etc/hosts auf dem Icinga2-Node wird diese Zeile eingetragen:

172.17.1.1 monitoring.itzks

Nun Icinga2 installieren:

sudo apt-get install icinga2

und dann den Icinga2 Node Wizard starten:

sudo icinga2 node wizard

Der Icinga2 Node Wizard wird nun die nötigen Informationen abfragen, um die Verbindung zum Icinga2 Master herzustellen.

Die zu tätigenden Eingaben sind immer in der Zeile unter der Abfrage eingerückt dargestellt.

Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]:

 y

Please specify the common name (CN) [<jetziger CN der Maschine>]: 

 <HOST>.<SCHULE> 

Master Common Name (CN from your master setup):

 monitoring.itzks

Do you want to establish a connection to the master from this node? [Y/n]: 

 y

Please fill out the master connection information:
Master endpoint host (Your master's IP address or FQDN): 

 monitoring.itzks

Master endpoint port [5665]: 

[Enter]

Add more master endpoints? [y/N]: 

 N

Please specify the master connection for CSR auto-signing (defaults to master endpoint host):
Host [monitoring.itzks]: 

 [Enter]

Port [5665]: 

 [Enter]

Nun wird der Icinga2 Node Wizard versuchen, eine Verbindung zum Icinga2 Master herzustellen. Ist dies erfolgreich, werden die Zertifikat Informationen des Icinga2 Masters zur Überprüfung dargestellt und die Abfrage

Is this information correct [y/N]:

folgt.

Sind die Informationen korrekt und werden diese bestätigt, folgt nun die Abfrage:

Please specify the request ticket generated on your Icinga2 Master.

Nun in einem weiteren Terminal per SSH auf dem vpn.it-zukunft-schule einloggen und sich mit

sudo icinga2 pki ticket --cn '<HOST>.<SCHULE>'

die vom System generierte Zeichenfolge anzeigen lassen. Diese kopieren und als Antwort auf die Abfrage einfügen.

Weitere Abfragen folgen.

Die zu tätigenden Eingaben sind immer in der Zeile unter der Abfrage eingerückt dargestellt.

Please specify the API bin host/port (optional):
Bind Host []:

 [Enter]

Bind Port []:

 [Enter]

Accept config from master [y/N]:

 y

Accept commands from master [y/N]:

 y

Danach Icinga2 auf dem Node neu starten

sudo invoke-rc.d icinga2 restart

und auf vpn.it-zukunft-schule.de nach einiger Zeit mittels

sudo icinga2 node update-config
sudo invoke-rc.d icinga2 restart

den neuen Node einbinden.

Hinweis: Dieses Vorgehen wird in der nächsten größeren Version von Icinga2 nicht mehr aktuell sein. Die Option icinga2 node update-config ist in Version 2.6.x bereits deprecated. Zukünftige Versionen von Icinga2 werden nur noch Top-Down Konfiguration von Satellites zulassen, aber nicht mehr Bottom-Up.

Anpassungen an den Icinga2-Einstellungen auf dem Node

Anpassungen an den abzuprüfenden Informationen / aufzurufenden Scripten können allgemein unter /etc/icinga2/conf.d/* vorgenommen werden.

Anpassungen an den eigentlichen Scripten können unter /usr/lib/nagios/plugins/* vorgenommen werden.

Nützliche Terminal Befehle (Notizsammlung)

Wenn mal was praktisches auffällt, kann man das ja hier eintragen.

Wo ist ein Befehl/eine Konfiguration in der Icinga-Konfiguration zu finden/eingetragen?

sudo icinga2 object list --type <Typ> -- name "<Name>"

zB

sudo icinga2 object list --type Service --name "load"

wirft dann aus:

Object 'tjener.dev!load' of type 'Service':
  % declared in '/etc/icinga2/conf.d/services.conf', lines 109:1-109:20
  * __name = "tjener.dev!load"
  * action_url = ""
  * check_command = "load"
    % = modified in '/etc/icinga2/conf.d/services.conf', lines 112:3-112:24
  * check_interval = 60
    % = modified in '/etc/icinga2/conf.d/templates.conf', lines 28:3-28:21
  * check_period = ""
  * check_timeout = null
  * command_endpoint = ""
  * display_name = "load"
  * enable_active_checks = true
  * enable_event_handler = true
  * enable_flapping = false
  * enable_notifications = true
  * enable_passive_checks = true
  * enable_perfdata = true
  * event_command = ""
  * flapping_threshold = 30
  * groups = [ ]
  * host_name = "tjener.dev"
    % = modified in '/etc/icinga2/conf.d/services.conf', lines 109:1-109:20
  * icon_image = ""
  * icon_image_alt = ""
  * max_check_attempts = 5
    % = modified in '/etc/icinga2/conf.d/templates.conf', lines 27:3-27:24
  * name = "load"
    % = modified in '/etc/icinga2/conf.d/services.conf', lines 109:1-109:20
  * notes = ""
  * notes_url = ""
  * package = "_etc"
    % = modified in '/etc/icinga2/conf.d/services.conf', lines 109:1-109:20
  * retry_interval = 30
    % = modified in '/etc/icinga2/conf.d/templates.conf', lines 29:3-29:22
  * templates = [ "load", "generic-service" ]
    % = modified in '/etc/icinga2/conf.d/services.conf', lines 109:1-109:20
    % = modified in '/etc/icinga2/conf.d/templates.conf', lines 26:1-26:34
  * type = "Service"
  * vars
    * backup_downtime = "02:00-03:00"
      % = modified in '/etc/icinga2/conf.d/services.conf', lines 115:3-115:38
  * volatile = false
  * zone = ""

Austragen von Icinga2-Nodes

Auf vidar (hier läuft der Icinga2-Master) per SSH einloggen.

Zuerst per

sudo icinga2 node remove <Names des Satellites; meist <HOST>.<SCHULE>>

den Node/Satellite aus Icinga2-Überwachung entfernen.

Hinweis: Nach dem Entfernen wird allerdings eventuell immer noch in der Icinga2 WebGUI der Node/Satellite als "nicht verbunden" angezeigt.

Zum vollständigen Austragen von host und endpoint diese Änderungen vormerken (Icinga2 regelt so etwas über ein internes commit-System)

sudo icinga2 repository host remove name=<Names des Hosts>
sudo icinga2 repository endpoint remove name=<Name des Endpoints>
sudo icinga2 repository zone remove name=<Name der Zone>

Ganz wichtig!!!: Dann die vorgemerkten Änderungen durchführen

sudo icinga2 repository commit

Icinga2 neu starten

sudo invoke-rc.d icinga2 restart

Anmerkung: Ggf. gibt es beim Neustart von Icinga2 Fehler, da die Repository-Anpassungen noch nicht übertragen (?) sind. In diesem Fall vorher einmal

sudo icinga2 node update-config

ausführen und dann den Neustart von Icinga2 erneut versuchen.

Icinga2 guide / cheat sheet

Ein paar Hinweise zum Anpassen / Bauen von Abfragen für Icinga2 kann man hier finden. Achtung: Externer Link!

IT-Zukunft Schule: Technik/Nutzungshinweise/Icinga2 (zuletzt geändert am 2018-12-06 10:49:15 durch BenjaminSchlueter)