Allgemein

Icinga2 incl. Icingaweb2 und Icinga Director Klonen

Notizen zu dem Szenario:

Ich möchte mir Arbeit ersparen und Klone eine bestehende Icinga2 Installation um diese auf einem anderen Rechner einzusetzen. Nach dem Umzug muss natürlich einiges angepasst werden (neue Certs, Datenbank leeren usw.) damit ich eine neue Ausgangsbasis erhalte.

An dieser Stelle stehen die Schritte die notwendig sind / waren (vermutlich im Detail unvollständig):

Nach dem Klonen, welches ich bevorzugt mit einem auf einem PXE Server installierten Clonezilla vornehme, erhalte ich ein identisches System, wie das Quellsystem.

Als allererstes ist es sinnvoll vor weiteren Änderungen die Director – Datenbank zu leeren. Am besten soweit installiert mittels phpmyadmin.  Man kann freilich auch die Objekte einzeln aus dem Director löschen, was aber schnell relativ aufwändig ist.

 

Nach dem ersten Start am besten erst mal den icinga2 Prozess anhalten mittels systemctl stop icinga2.service (bei systemd basierten Distributionen, alternativ /etc/init.d/icinga2 stop ).

Zu ändern sind hier erst mal primär:

  • Hostnamen (vor allem wichtig auch für die Anpassung der Icinga Certs)
  • IP – Adresse
  • ggf. Anpassung der /etc/hosts und /etc/resolv.conf

 

 

Anpassung der Icinga2 Einstellungen:

https://dokuwiki.nausch.org/doku.php/centos:web_c7:icinga:director

https://dokuwiki.tachtler.net/doku.php?id=tachtler:icinga2_-_director

 

Icinga stoppen

Nachfolgender Befehl stoppt den Icinga-Dienst/Daemon:

 # systemctl stop icinga2.service

Datenlöschung

Anschließend sollen nachfolgende Verzeichisse mit nachfolgenden Befehlen geleert werden:

 # rm /var/lib/icinga2/* -f
 # rm /var/lib/icinga2/api/zones/* -rf
 # rm /var/lib/icinga2/api/repository/* -f
 # rm /var/lib/icinga2/api/packages/* -rf
 # rm /var/lib/icinga2/api/log/* -f
 # rm /var/lib/icinga2/repository/* -f
 # rm /var/lib/icinga2/ca/* -f

und

# rm /var/cache/icinga2/* -f

und entfernen die bereits erzeugten Zertifikate:

# rm /etc/icinga2/pki/* -f

Konfigurationssicherung

Mit nachfolgenden Befehl kann die bisher durchgeführte Konfiguration gesichert werden:

# tar czfv icinga2-config-backup.tar.gz /etc/icinga2 -C /root
...

/etc/icinga2/zones.conf

Nachfolgender Inhalt solltein der Konfigurationsdatei /etc/icinga2/zones.conf stehen, falls nicht kann dieser auf nachfolgenden Inhalt zurückgesetzt werden:

/*
 * Endpoint and Zone configuration for a cluster setup
 * This local example requires `NodeName` defined in
 * constants.conf.
 */
 
object Endpoint NodeName {
  host = NodeName
}
 
object Zone ZoneName {
  endpoints = [ NodeName ]
}
 
/*
 * Defines a global zone containing templates,
 * etc. synced to all nodes, if they accept
 * configuration. All remote nodes need
 * this zone configured too.
 */
 
/*
object Zone "global-templates" {
  global = true
}
*/
 
/*
 * Read the documentation on how to configure
 * a cluster setup with multiple zones.
 */
 
/*
object Endpoint "master.example.org" {
  host = "master.example.org"
}
 
object Endpoint "satellite.example.org" {
  host = "satellite.example.org"
}
 
object Zone "master" {
  endpoints = [ "master.example.org" ]
}
 
object Zone "satellite" {
  parent = "master"
  endpoints = [ "satellite.example.org" ]
}
*/

/etc/icinga2/constants.conf

Nachfolgender Inhalt solltein der Konfigurationsdatei /etc/icinga2/constants.conf stehen, falls nicht kann dieser auf nachfolgenden Inhalt zurückgesetzt werden:

/**
 * This file defines global constants which can be used in
 * the other configuration files.
 */
 
/* The directory which contains the plugins from the Monitoring Plugins project. */
const PluginDir = "/usr/lib64/nagios/plugins"
 
/* The directory which contains the Manubulon plugins.
 * Check the documentation, chapter "SNMP Manubulon Plugin Check Commands", for details.
 */
const ManubulonPluginDir = "/usr/lib64/nagios/plugins"
 
/* The directory which you use to store additional plugins which ITL provides user contributed command definitions for.
 * Check the documentation, chapter "Plugins Contribution", for details.
 */
const PluginContribDir = "/usr/lib64/nagios/plugins"
 
/* Our local instance name. By default this is the server's hostname as returned by `hostname --fqdn`.
 * This should be the common name from the API certificate.
 */
//const NodeName = "localhost"
 
/* Our local zone name. */
const ZoneName = NodeName
 
/* Secret key for remote node tickets */
const TicketSalt = ""

/etc/icinga2/icinga2.conf

Nachfolgender Inhalt solltein der Konfigurationsdatei /etc/icinga2/icinga2.conf stehen, falls nicht kann dieser auf nachfolgenden Inhalt zurückgesetzt werden:

/**
 * Icinga 2 configuration file
 * - this is where you define settings for the Icinga application including
 * which hosts/services to check.
 *
 * For an overview of all available configuration options please refer
 * to the documentation that is distributed as part of Icinga 2.
 */
 
/**
 * The constants.conf defines global constants.
 */
include "constants.conf"
 
/**
 * The zones.conf defines zones for a cluster setup.
 * Not required for single instance setups.
 */
include "zones.conf"
 
/**
 * The Icinga Template Library (ITL) provides a number of useful templates
 * and command definitions.
 * Common monitoring plugin command definitions are included separately.
 */
include <itl>
include <plugins>
include <plugins-contrib>
include <manubulon>
 
/**
 * This includes the Icinga 2 Windows plugins. These command definitions
 * are required on a master node when a client is used as command endpoint.
 */
include <windows-plugins>
 
/**
 * This includes the NSClient++ check commands. These command definitions
 * are required on a master node when a client is used as command endpoint.
 */
include <nscp>
 
/**
 * The features-available directory contains a number of configuration
 * files for features which can be enabled and disabled using the
 * icinga2 feature enable / icinga2 feature disable CLI commands.
 * These commands work by creating and removing symbolic links in
 * the features-enabled directory.
 */
include "features-enabled/*.conf"
 
/**
 * The repository.d directory contains all configuration objects
 * managed by the 'icinga2 repository' CLI commands.
 */
include_recursive "repository.d"
 
/**
 * Although in theory you could define all your objects in this file
 * the preferred way is to create separate directories and files in the conf.d
 * directory. Each of these files must have the file extension ".conf".
 */
include_recursive "conf.d"

 

 

Danach am besten den Director als Modul deaktivieren und entfernen sowie physisch löschen. In der Datenbank das Schema samt Inhalten löschen (am einfachsten mit phpmyadmin).

Danach mittels git die aktuelleste Version klonen …

/usr/share/icingaweb2/modules# git clone https://github.com/Icinga/icingaweb2-module-director.git director

Sowie danach vorgehen wie bei einer Erst/Neu  Installation (DB-Schema erstellen lassen).

Es kann sein, das danach noch Deploys angezeigt werden –> Ausführen lassen. In meinem Fall lief das ohne Fehler durch, es wurde ein Host (localhost) neu erzeugt und angezeigt.

Danach sollte nur der Monitoring Server selbst angezeigt werden.

 

weitere Links:

Graphite/Grafana Konfiguration:

https://www.linuxfrickeln.de/visualisierung-von-performancedaten-in-der-icingaweb2-gui/

https://dokuwiki.nausch.org/doku.php/centos:web_c7:icinga:graphite

 

 

…..to be continued

Related Posts