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