#acl AdminGroup:read,write,delete,revert,admin All:read <> == 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) []: . 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 '.' }}} 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 -- 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 .> }}} 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= sudo icinga2 repository endpoint remove name= sudo icinga2 repository zone remove name= }}} '''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 [[https://icinga.com/docs/icinga2/latest/doc/17-language-reference/|hier]] finden. '''Achtung: Externer Link!'''