Icinga2: Remote Clients

Ich verwende einen Backup Server der einmal am Tag “aufwacht” und Backups von definierten Rechner via rsnapshot zieht. Der “Server” ist ein Pentium 3 mit einem aktuelle Debian 9.

Ich möchte natürlich auch auf diesem Server eine Überwachung des Festplattenplatzes und der Aktualität des Backups durchführen. Da der Server nicht ständig läuft müssen die Checks von Backup Server angestossen werden und dafür habe ich bisher NSCA verwendet. Leider scheint dieses Verfahren für Icinga2 nicht mehr so verwendbar zu sein denn es gibt etwas viel besserers, an das ich mich aber bisher nicht getraut habe. Heute habe ich diese Beschreibung gefunden und war in 20 Minuten fertig. deeply impressed

Hier meine Notizen

Auf dem Server

Konfiguration des Masters

 icinga2 node wizard
 Welcome to the Icinga 2 Setup Wizard!
 We'll guide you through all required configuration details.
 
 Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]     : n
 Starting the Master setup routine...
 Please specify the common name (CN) [icinga.server.de]: 
 Checking for existing certificates for common name 'icinga.server.de'...
 Certificate '/etc/icinga2/pki/icinga.server.de.crt' for CN 'icinga.server.de'      already existing. Skipping certificate generation.
 Generating master configuration for Icinga 2.
 information/cli: API user config file '/etc/icinga2/conf.d/api-users.conf'      already exists, not creating config file.
 'api' feature already enabled.
 information/cli: Dumping config items to file '/etc/icinga2/zones.conf'.
 information/cli: Created backup file '/etc/icinga2/zones.conf.orig'.
 Please specify the API bind host/port (optional):
 Bind Host []: 
 Bind Port []: 
 information/cli: Created backup file '/etc/icinga2/features-available/api.conf.     orig'.
 information/cli: Updating constants.conf.
 information/cli: Created backup file '/etc/icinga2/constants.conf.orig'.
 information/cli: Updating constants file '/etc/icinga2/constants.conf'.
 information/cli: Updating constants file '/etc/icinga2/constants.conf'.
 information/cli: Updating constants file '/etc/icinga2/constants.conf'.

Eine Zonendatei anpassen und neu starten

vi /etc/icinga2/zones.conf
  object Endpoint "icinga.server.de" {
  }
  object Zone "icinga.server.de" {
          endpoints = ["icinga.server.de" ]
  }
  /etc/init.d/icinga2 restart

Für den Client den wir gleich einrichten müssen wir ein Ticket erstellen:

pki ticket --cn 'client.server.de'
fd6c5fadd492de1fea510600bdd43d949f222202

Auf dem Client

Der Client ist mein alter Backup Server (Pentium 3) auf dem noch Icinga2 installiert werden muss

 apt install icinga2 nagios-plugins

Icinga2 starten und prüfen ob alles läuft

/etc/init.d/icinga2 start    [ ok ] Starting icinga2 (via systemctl): icinga2.service.

Jetzt starten wir wieder einen Wizard der fast alles für uns macht. Einige der Aktionen habe ich für eine bessere Übersicht entfernt.

icinga2 node wizard
Welcome to the Icinga 2 Setup Wizard!

We'll guide you through all required configuration details.

Please specify if this is a satellite setup ('n' installs a master setup) [Y/n]    : y
Starting the Node setup routine...
Please specify the common name (CN) [client.server.de]: 
Please specify the master endpoint(s) this node should connect to:
Master Common Name (CN from your master setup): icinga.server.de
Do you want to establish a connection to the master from this node? [Y/n]: 
Please fill out the master connection information:
Master endpoint host (Your master's IP address or FQDN): icinga.server.de
Master endpoint port [5665]: 
Add more master endpoints? [y/N]: 
Please specify the master connection for CSR auto-signing (defaults to master     endpoint host):
Host [icinga.server.de]: 
Port [5665]: 
information/base: Writing private key to '/etc/icinga2/pki/client.server.de.    key'.
information/base: Writing X509 certificate to '/etc/icinga2/pki/client.server.    de.crt'.
information/cli: Fetching public certificate from master (icinga.server.de,     5665):

Certificate information:

 Subject:     CN = icinga.server.de
 Issuer:      CN = Icinga CA
 Valid From:  Jun 20 06:34:49 2017 GMT
 Valid Until: Jun 16 06:34:49 2032 GMT
 Fingerprint: BA 2C F7 E6 21 88 01 10 17 E6 49 7C 54 81 A2 D7 63 DF F5 A7 

Is this information correct? [y/N]: y
information/cli: Received trusted master certificate.

Please specify the request ticket generated on your Icinga 2 master.
 (Hint: # icinga2 pki ticket --cn 'client.server.de'):     fd6c5fadd492de1fea510600bdd43d949f222202
information/cli: Requesting certificate with ticket     'fd6c5fadd492de1fea510600bdd43d949f222202'.

information/cli: Created backup file '/etc/icinga2/pki/client.server.de.crt.    orig'.
information/cli: Writing signed certificate to file '/etc/icinga2/pki/client.    server.de.crt'.
information/cli: Writing CA certificate to file '/etc/icinga2/pki/ca.crt'.
Please specify the API bind host/port (optional):
Bind Host []: 
Bind Port []: 
Accept config from master? [y/N]: y
Accept commands from master? [y/N]: y
information/cli: Disabling the Notification feature.
Disabling feature notification. Make sure to restart Icinga 2 for these     changes to take effect
......
Done.
Now restart your Icinga 2 daemon to finish the installation!
/etc/init.d/icinga2 restart

Wieder die Zone.conf anpassen

vi /etc/icinga2/zones.conf
  object Endpoint "icinga.server.de" {
          host = "icinga.server.de"
          port = "5665"
  }
  object Zone "master" {
          endpoints = [ "icinga.server.de" ]
  }
  object Endpoint "client.server.de" {
  }
  object Zone "client.server.de"  {
          endpoints = ["client.server.de"  ]
          parent = "master"
  }

Auf dem Server

Auf dem Server kann man sehen welche Services eingerichtet wurden

icinga2 node list
Warning: CLI command 'node list' is DEPRECATED! Please read the Changelog.
Node 'client.server.de' (last seen: Thu Aug 24 20:42:01 2017)
    * Host 'client.server.de'
        * Service 'apt'
        * Service 'disk'
        * Service 'disk /'
        * Service 'http'
        * Service 'icinga'
        * Service 'load'
        * Service 'ping4'
        * Service 'ping6'
        * Service 'procs'
        * Service 'ssh'
        * Service 'swap'
        * Service 'users'

Und dann gibt es einen Befehl der automatisch die Konfigurationen für die Checks des clients anlegt

icinga2 node  update-config
/etc/init.d/icinga2 restart

Und TARAAAA

Auf dem Client

Jetzt sind auf dem Satelliten alle Standardchecks installiert von denen ich in diesem Falle viele nicht brauche. Die kann man wie üblich aus der Service Konfiguration löschen

vi services.conf 
 /etc/init.d/icinga2 restart

Auf dem Server schauen wir jetzt noch mal an was so anliegt

icinga2 node list
Warning: CLI command 'node list' is DEPRECATED! Please read the Changelog.

Node 'client.server.de' (last seen: Thu Aug 24 20:54:34 2017)
    * Host 'client.server.de'
        * Service 'apt'
        * Service 'swap'

Und aktualisieren die Konfiguration

icinga2 node  update-config

dabei werden alle gelöschten Services auch auf dem Master gelöscht

Jetzt muss ich nur noch die alten Checks wieder einrichten die ich früher über NSCA transportiert habe.