Installation von Icinga2 auf Centos 7

Datum

Anmerkung: Hierbei handelt es sich nur um eine Anleitung zur Installation von Icinga2 ohne icingaweb2.
Die entsprechende Anleitung dafür folgt in einem weiteren Blogbeitrag.

Icinga 2 ist ein Open Source Monitoring Framework, mit dem Sie alle verfügbaren Systeme in Ihrem Netzwerk überwachen können, welches Sie im Alarmfall auf vielen verschiedenen Wegen alarmiert und Ihnen eine Datenbasis für Ihr SLA-Reporting liefert.

Icinga begann als Nagios Fork im Jahr 2009 und hat sich durch die langjährige Arbeit der Community und dem breiten Einsatz im Enterprise Umfeld als feste Größe im Open Source Monitoring etabliert.
Source: www.netways.de

Einbinden der Repositories

Als erstes importieren wir uns den entsprechenden Key für die Icinga2-Repos:
rpm --import https://packages.icinga.com/icinga.key

Nun erfolgt das Einbinden der Icinga2-Repos:
yum install -y https://packages.icinga.com/epel/icinga-rpm-release-7-latest.noarch.rpm

Für die Nagios Plugins wird noch das Epel-Repo (Extra Packages for Enterprise Linux) benötigt:
yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

Nun erneuern wir den yum-Cache:
yum makecache

Installation von Icinga 2

yum install icinga2 nagios-plugins-all icinga2-selinux

Sofern man SELiunx nicht auf seinem System deaktivieren will, sollte das Paket icinga2-selinux installiert werden.

When the SELinux policy package for Icinga Web 2 is installed, it creates its own type of apache content and labels its configuration icingaweb2_config_t to allow confining access to it.
Quelle: Icinga2 – SELinux

Im Anschluss daran starten wir den Dienst und sorgen dafür das dieser auch automatisch startet.
systemctl start icinga2.service && systemctl enable icinga2.service

Installation des Datenbank-Backends

Zur Auswahl stehen MySQL und Postgres

Ich persönlich verwende hierfür MySQL, aber in Form von Percona.
Die entsprechende Installationsanleitung findet sich hier: Installation eines Percona-Servers auf CentOS 7
Passend dazu empfiehlt sich auch das einloggen mit einem verschlüsselten Passwort, die entsprechende Vorgehensweise ist hier dokumentiert: Einloggen in eine Percona-DB mit einem verschlüsselten Passwort

Für die Anbindung an die MySQL-DB muss noch das entsprechende ido-Paket (Icinga Data Out) installiert werden.
yum install icinga2-ido-mysql -y

Einrichten des DB-Benutzers

Hierzu loggen wir uns in die MySQL-Instanz ein und erstellen als erstes die Datenbank mit dem Namen icinga2 und vergeben anschließend entsprechende Rechte an den Benutzer icinga2, welcher auch gleich noch ein Passwort bekommt.

mysql> CREATE DATABASE icinga2;
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2.* TO 'icinga2'@'localhost' IDENTIFIED BY 'Aet]eemiheex)ohci3ie';
mysql> flush privileges;

Nun kann man noch prüfen ob die letzten Schritte erfolgreich waren:

mysql> SHOW GRANTS FOR 'icinga2'@'localhost';
+-----------------------------------------------------------------------------------------------------------------+
| Grants for icinga2@localhost                                                                                    |
+-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'icinga2'@'localhost'                                                                     |
| GRANT SELECT, INSERT, UPDATE, DELETE, DROP, INDEX, EXECUTE, CREATE VIEW ON `icinga2`.* TO 'icinga2'@'localhost' |
+-----------------------------------------------------------------------------------------------------------------+

weitere Datenbank- und IDO-Einstellungen

Erstellen des DB-Schemas

Nun übernehmen wir das fertige Schema für die Datenbank, welches bereits auf der lokalen Platte unter /usr/share/icinga2-ido-mysql/schema/mysql.sql vorliegt.

mysql icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Konfigurieren von ido-mysql

Jetzt prüfen wir ob ido-mysql als Feature bereits aktiv ist:

$ icinga2 feature list
Disabled features: api command compatlog debuglog elasticsearch gelf graphite influxdb livestatus opentsdb perfdata statusdata syslog
Enabled features: checker ido-mysql mainlog notification

Sofern ein Feature enabled wird, wird ein entsprechender Link in /etc/icinga2/features-enabled erstellt.

Die Konfiguration erfolgt in der Konfigurationsdatei für das entsprechende Feature:

$  cat /etc/icinga2/features-enabled/ido-mysql.conf
/**
 * The IdoMysqlConnection type implements MySQL support
 * for DB IDO.
 */
object IdoMysqlConnection "ido-mysql" {
  user = "icinga2"
  password = "Aet]eemiheex)ohci3ie"
  host = "localhost"
  database = "icinga2"
}

Nun sollte der icinga2-Dienst einmal neu geladen werden.
systemctl reload icinga2.service

Als nächster Schritt folgt die Installation und Konfiguration von Icingaweb2

Autor
Kategorien Monitoring, Icinga2

PRTG Map