Icinga2, Icinga Web 2 und Icinga Director unter EL7 installieren
Dieser Artikel beschreibt die Installation von Icinga2, Icinga Web 2 und Icinga Director auf Red Hat Enterprise Linux 7 (oder CentOS 7).
Mit Icinga2 gibt es ein sehr leistungsfähiges Monitoring-System, welches optional auch mit der taufrischen Web-Oberfläche Icinga Web 2 benutzt werden kann. Gegenüber Icinga 1.x handelt es sich hier jeweils um komplette Neuentwicklungen, die nichts mehr mit dem veralteten Software-Kern zu tun haben.
Dieses Jahr wurde mit Icinga Director ein Konfigurationswerkzeug für Icinga2 vorgestellt. Es kann dazu verwendet werden, den gesamten Icinga2-Stack zu konfigurieren. Auch eine Integration in Configuration Management- und CMDB-Systeme ist möglich.
Dieser Artikel beschreibt die Grundinstallation eines Icinga2-Systems mit der Icinga Web 2-Oberfläche und dem zusätzlichen Icinga Director-Modul.
Installation
Ich persönlich lege die Daten der MySQL-Datenbank gerne in Kombination mit LVM auf eine dedizierte Festplatte. Die folgenden Befehle lagern das Verzeichnis /var/lib/mysql entsprechend aus:
# pvcreate /dev/sdb # vgcreate vg_data /dev/sdb # lvcreate --name lv_mariadb --size 9G vg_data # mkfs.ext4 /dev/mapper/vg_data-lv_mariadb # vi /etc/fstab ... /dev/mapper/vg_data-lv_mariadb /var/lib/mysql ext4 defaults 1 2 ESC ZZ # mkdir /var/lib/mysql ; mount -a # restorecon -v /var/lib/mysql restorecon reset /var/lib/mysql context system_u:object_r:unlabeled_t:s0->system_u:object_r:mysqld_db_t:s0
Die Installation der benötigten Pakete erfolgt mit YUM:
# yum install icinga{,web}2 icinga2-{selinux,ido-mysql} mariadb-server mysql nagios-plugins-all icingacli php-ldap
Anschließend werden der Apache-Webserver und die MariaDB-Datenbank für Autostart konfiguriert und gestartet. Bei dieser Gelegenheit empfiehlt es sich auch, mittels mysql_secure_installation ein Root-Passwort für die Datenbank zu vergeben und nicht benötigte Testdaten zu entfernen:
# systemctl enable httpd; systemctl start httpd # systemctl enable mariadb ; systemctl start mariadb # mysql_secure_installation Set root password? [Y/n] Y Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Anschließend werden dedizierte Datenbanken für Icinga und die Benutzerauthentifizierung erstellt:
# mysql -u root -p mysql> CREATE DATABASE icinga; mysql> CREATE DATABASE `icinga-auth`; mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY '...'; mysql> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga-auth.<code></code>* TO 'icinga'@'localhost' IDENTIFIED BY '...'; mysql> FLUSH PRIVILEGES;
Danach wird die Icinga-Datenbank mit dem benötigten Schema versehen:
# mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql