Icinga 2 ist eine skalierbare OpenSource-Überwachungssoftware. Dieses Tutorial beschreibt die Installation von Icinga 2 zusammen mit Icingaweb auf einem CentOS 7 Server.
1. Anforderungen
Um ein solches System zu installieren, benötigen Sie Folgendes:
- Ein minimales Centos 7-Serversystem. Dies kann ein von Grund auf neu installierter Server sein, wie im Centos 7.1-Minimalserver-Tutorial beschrieben, oder ein virtueller Server oder Root-Server von einem Hosting-Unternehmen, das ein minimales Centos 7-Setup installiert hat.
- Eine schnelle Internetverbindung.
2. Vorbemerkungen
- In diesem Tutorial verwende ich den Hostnamen icinga2.domain.tld mit der IP-Adresse 192.168.250.100/24 und dem Gateway 192.168.250.254. Diese Einstellungen können für Sie abweichen, daher müssen Sie sie gegebenenfalls ersetzen.
- Die hier gezeigten Ausgaben sind nur ein Beispiel und können je nach Basissystem und bereits installierten Paketen auf Ihrem System abweichen.
- Der Datenbankserver ist maria db und wird auf demselben Host installiert.
- Ein Benutzeradministrator existiert und ist in der sudoers-Liste.
- Wir werden SELinux für dieses Tutorial deaktivieren.
3. Vorbereitung
Melden Sie sich als Administrator an
Anmelden als:Administrator[E-Mail-geschützt] Passwort:[[E-Mail-geschützt] ~]$
Überprüfen Sie die Netzwerkverbindung
wir werden testen, ob unsere Internetverbindung aufgebaut ist und die Namensauflösung funktioniert:
ping www.google.de -c3
Die Ausgabe sieht folgendermaßen aus:
[[email protected] ~]$ ping www.google.de -c3PING www.google.de (172.217.20.67) 56(84) Byte Daten.64 Byte von fra02s27-in-f3.1e100.net ( 172.217.20.67):icmp_seq=1 ttl=57 Zeit=19,2 ms64 Bytes von fra02s27-in-f3.1e100.net (172.217.20.67):icmp_seq=2 ttl=57 Zeit=19,3 ms64 Bytes von fra02s27-in-f3. 1e100.net (172.217.20.67):icmp_seq=3 ttl=57 time=19,6 ms--- www.google.de Ping-Statistik ---3 Pakete übertragen, 3 empfangen, 0% Paketverlust, Zeit 2001msrtt min/avg/ max/mdev =19,276/19,430/19,649/0,195 ms[[email protected] ~]$
Zur Root wechseln
Jetzt werden wir uns selbst verwurzeln. Geben Sie dazu ein:
sudo su
Die Ausgabe sieht folgendermaßen aus:
[[email protected] ~]$ sudo suWir hoffen, dass Sie den üblichen Vortrag vom lokalen Systemadministrator erhalten haben. Es läuft normalerweise auf diese drei Dinge hinaus:#1) Respektieren Sie die Privatsphäre anderer. #2) Denken Sie nach, bevor Sie tippen. #3) Mit großer Macht kommt große Verantwortung.[sudo] Passwort für Administrator:[[email protected] Administrator]#
Vorläufige Software installieren
Wir werden nun einige vorläufige Software installieren:
- deltarpm verringert die herunterzuladende Menge, indem überprüft wird, ob es nur eine Differenzdatei statt des gesamten Pakets gibt
- nano ist ein Texteditor
- wget wird benötigt, um Dateien von URLs herunterzuladen
- net-tools wird für bestimmte Überprüfungen von Netzwerkprozessen benötigt
- gcc ist der GNU-Compiler
yum -y installiere deltarpm
Die Ausgabe sieht folgendermaßen aus:
Geladene Plugins:fastestmirrorbase | 3,6 kB 00:00:00Extras | 3,4 kB 00:00:00Aktualisierungen | 3,4 kB 00:00:00(1/4):extras/7/x86_64/primary_db......Gesamtgröße des Downloads:82 kInstallierte Größe:209 kPakete werden heruntergeladen:Warnung:/var/cache/yum/x86_64/7 /base/packages/deltarpm-3.6-3.el7.x86_64.rpm:Header V3 RSA/SHA256-Signatur, Schlüssel-ID f4a80eb5:NOKEYÖffentlicher Schlüssel für deltarpm-3.6-3.el7.x86_64.rpm ist nicht installiertdeltarpm-3.6-3. el7.x86_64.rpm | 82 kB 00:00:00Schlüssel aus file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7Importing GPG key 0xF4A80EB5:Userid :"CentOS-7 Key (CentOS 7 Official Signing Key) <[E-Mail-geschützt]>" Fingerabdruck:6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5 Paket:centos-release-7-2.1511.el7.centos.2.10.x86_64 (@anaconda) Von:/etc/pki/rpm-gpg/ RPM-GPG-KEY-CentOS-7Laufende TransaktionsprüfungLaufender TransaktionstestTransaktionstest erfolgreichLaufende Transaktion Installieren:deltarpm-3.6-3.el7.x86_64 1/1 Verifizieren:deltarpm-3.6-3.el7.x86_64 1/1Installiert:deltarpm.x86_64 0:3.6-3.el7Fertig!
yum -y install nano wget net-tools gcc
Die Ausgabe sieht folgendermaßen aus:
Geladene Plugins:fastestmirrorbase | 3,6 kB 00:00:00Extras | 3,4 kB 00:00:00Aktualisierungen | 3,4 kB 00:00:00(1/4):extras/7/x86_64/primary_db...... Installiert:gcc.x86_64 0:4.8.5-4.el7 nano.x86_64 0:2.3.1-10 .el7 net-tools.x86_64 0:2.0-0.17.20131004git.el7 wget.x86_64 0:1.14-10.el7_0.1 Installierte Abhängigkeit:cpp.x86_64 0:4.8.5-4.el7 glibc-devel.x86_64 0:2.17 -106.el7_2.4 glibc-headers.x86_64 0:2.17-106.el7_2.4 kernel-headers.x86_64 0:3.10.0-327.13.1.el7 libmpc.x86_64 0:1.0.1-3.el7 mpfr. x86_64 0:3.1.1-4.el7Abhängigkeit aktualisiert:glibc.x86_64 0:2.17-106.el7_2.4 glibc-common.x86_64 0:2.17-106.el7_2.4Fertig!
SELinux deaktivieren
Bearbeiten Sie die /etc/selinux/config
nano /etc/selinux/config
Suchen
SELINUX=erzwingen
ändern Sie es in
SELINUX=deaktiviert
Speichern Sie die Datei
System aktualisieren und neu starten
Jetzt werden wir das System aktualisieren.
yum -y update &&yum -y upgrade
Das kann ein bisschen dauern. Danach Neustart.
Neustart
4. Installieren Sie icinga2 und zusätzliche Software
Zusätzliche Repositories installieren
Melden Sie sich nach dem Neustart des Systems als Administrator an und melden Sie sich erneut als Root an.
Wechseln Sie in das Verzeichnis /tmp
cd /tmp
Epel-Repository installieren
yum install -y epel-release
Icinga-Repository installieren
rpm --import http://packages.icinga.org/icinga.key
wget http://packages.icinga.org/epel/ICINGA-release.repo -O /etc/yum.repos .d/ICINGA-release.repo
Yum-Cache neu erstellen (kann einige Zeit dauern)
lecker Makecache
Installieren Sie icinga2, icinga2 mysql connector und nagios plugins
yum install -y nagios-plugins-all icinga2 icinga2-ido-mysql icinga-idoutils-libdbi-mysql
Installieren von Apache, php und Vorbereiten von php.ini
yum install -y httpd
yum install -y php-cli php-pear php-xmlrpc php-xsl php-pdo php-soap php-gd php-ldap
Bearbeiten Sie die php.ini
Suchen
; Definiert die von den Datumsfunktionen verwendete Standardzeitzone; http://php.net/date.timezone;date.timezone=
ändern Sie es in
; Definiert die von den Datumsfunktionen verwendete Standardzeitzone; http://php.net/date.timezonedate.timezone ="Europa/Berlin"
Speichern Sie die Datei
Apache beim Start aktivieren
systemctl aktiviert httpd
[[email protected] tmp]# systemctl enable httpdSymlink von /etc/systemd/system/multi-user.target.wants/httpd.service nach /usr/lib/systemd/system/httpd.service erstellt.systemctl startet httpdÜberprüfen Sie, ob Apache ausgeführt wird
netstat -nlp | grep80[[email protected] tmp]# netstat -nlp | grep 80tcp6 0 0 :::80 :::* LISTEN 10360/httpd
Installation und Konfiguration von mariadb
yum install -y mariadb-serversystemctl startet mariadbsystemctl aktiviert mariadbAusgabe:
[[email protected] tmp]# systemctl enable mariadbSymlink von /etc/systemd/system/multi-user.target.wants/mariadb.service zu /usr/lib/systemd/system/mariadb.service erstellt.Überprüfen Sie, ob Mariadb läuft
netstat -nlp | grep 3306Ausgabe:
[[email protected] tmp]# netstat -nlp | grep 3306tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 11623/mysqldLegen Sie das Passwort für den Benutzer „root“ fest
mysql -u rootAusgabe:
[[email protected] tmp]# mysql -u rootWillkommen beim MariaDB-Monitor. Befehle enden mit; oder \g.Ihre MariaDB-Verbindungs-ID ist 2Server-Version:5.5.47-MariaDB MariaDB ServerCopyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab und andere. Geben Sie 'help;' oder '\h' für Hilfe. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen. MariaDB [(keine)]>[MariaDB [(keine)]> mysql verwendenAusgabe:
[MariaDB [(none)]> use mysql;Lesen von Tabelleninformationen zur Vervollständigung von Tabellen- und SpaltennamenSie können diese Funktion für einen schnelleren Start mit -ADatabasechangedMariaDB [mysql]>deaktivieren[MariaDB [(mysql)]> update user set password=PASSWORD("root_password") where User='root';Ausgabe:
user set password=PASSWORD("root_password") aktualisieren, wobei User='root';Abfrage OK, 4 Zeilen betroffen (0,00 Sek.)Zeilen übereinstimmen:4 Geändert:4 Warnungen:0[MariaDB [(mysql)]> Flush-Privilegien;Ausgabe:
MariaDB [mysql]> Flush-Privilegien;Abfrage OK, 0 Zeilen betroffen (0,00 Sek.0[MariaDB [(mysql)]> beenden;Ausgabe:
MariaDB [mysql]> exit;TschüssMariaDB neu starten
systemctl startet mariadb neu
Datenbank für icinga2 erstellen und füllen
Melden Sie sich mit dem Passwort für root bei MySQL an.
mysql -u root -pAusgabe:
[[email protected] tmp]# [[email protected] tmp]# mysql -u root -pPasswort eingeben:Willkommen beim MariaDB-Monitor. Befehle enden mit; oder \g.Ihre MariaDB-Verbindungs-ID ist 7Server-Version:5.5.47-MariaDB MariaDB ServerCopyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab und andere. Geben Sie 'help;' oder '\h' für Hilfe. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen. MariaDB [(keine)]>[MariaDB [(keine)]>DATENBANK ERSTELLEN icinga2;Ausgabe:
MariaDB [(keine)]> CREATE DATABASE icinga2;Abfrage OK, 1 Zeile betroffen (0,00 Sek.)MariaDB [(keine)]>[MariaDB [(keine)]>GEWÄHREN SIE SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2.* TO 'icinga2'@'localhost' IDENTIFIED BY 'icinga2_password';Ausgabe:
MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2.* TO 'icinga2'@'localhost' IDENTIFIED BY 'icinga2_password';Abfrage OK, 0 Zeilen betroffen (0.00 Sek.)MariaDB [(keine)]>[MariaDB [(keine)]>Flush-Privilegien;;Ausgabe:
MariaDB [(keine)]> Flush-Privilegien;Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)MariaDB [(keine)]>[MariaDB [(keine)]> beenden;Ausgabe:
MariaDB [none]> exit;TschüssDatenbank füllen
mysql -u root -picinga2
Ido-mysql.conf ändern
Damit sich icinga2 mit unserer Mariadb-Datenbank verbindet, müssen wir /etc/icinga2/ido-mysql.conf
ändernnano /etc/icinga2/features-available/ido-mysql.confSuchen
/** * Die Bibliothek db_ido_mysql implementiert IDO-Funktionalität * für MySQL. */library "db_ido_mysql"object IdoMysqlConnection "ido-mysql" { //user ="icinga" //password ="icinga" //host ="localhost" //database ="icinga"}ändern Sie es in
/** * Die Bibliothek db_ido_mysql implementiert IDO-Funktionalität * für MySQL. */library "db_ido_mysql"object IdoMysqlConnection "ido-mysql" { user ="icinga2" password ="icinga2_password" host ="localhost" database ="icinga2"}
Aktiviere und starte icinga2 beim Start
icinga2 beim Start aktivieren
systemctl aktiviert icinga2Ausgabe:
[[email protected] tmp]# systemctl enable icinga2Symlink von /etc/systemd/system/multi-user.target.wants/icinga2.service zu /usr/lib/systemd/system/icinga2.service erstellt.Starten Sie icinga2
systemctl starte icinga2Um zu überprüfen, ob alles funktioniert, machen wir tail -f /var/log/icinga2/icinga2.log. Sie können die Ausgabe stoppen, indem Sie STRG-C drücken.
tail -f /var/log/icinga2/icinga2.logDie Ausgabe sollte in etwa so aussehen
[[email protected] tmp]# tail -f /var/log/icinga2/icinga2.log[2016-05-10 23:21:50 +0200] information/DbConnection:IDO-Verbindung wird fortgesetzt:ido-mysql[ 2016-05-10 23:21:50 +0200] information/ConfigItem:Alle Objekte aktiviert.[2016-05-10 23:21:50 +0200] information/ConfigCompiler:Compiling config file:/var/lib/icinga2/ Modified-attributes.conf[2016-05-10 23:21:50 +0200] information/IdoMysqlConnection:MySQL IDO-Instanz-ID:1 (Schemaversion:'1.14.0')[2016-05-10 23:21:50 +0200] information/IdoMysqlConnection:Wiederverbindung zur MySQL-IDO-Datenbank in 0,201981 Sekunde(n) abgeschlossen.Lassen Sie icinga2 beim Booten starten:
systemctl aktiviert icinga2Ausgabe:
[[email protected] tmp]# systemctl enable icinga2Symlink von /etc/systemd/system/multi-user.target.wants/icinga2.service zu /usr/lib/systemd/system/icinga2.service erstellt.icinga2-Befehlsmodul aktivieren:
icinga2-FunktionsaktivierungsbefehlAusgabe:
[[email protected] tmp]# icinga2 feature enable commandEnabling feature command. Stellen Sie sicher, dass Sie Icinga 2 neu starten, damit diese Änderungen wirksam werden.Starten Sie icinga2 neu
systemctl icinga2 neu starten