Serverüberwachung mit Icinga 2 und Icingaweb 2 auf CentOS 7

Icinga 2 ist eine skalierbare Open Source Überwachungssoftware, die die Installation von Icinga 2 zusammen mit Icingaweb auf einem CentOS 7 Server beschreibt.

1. Anforderungen

Um ein solches System zu installieren, benötigen Sie folgendes:

  • Ein Centos 7 minimales Serversystem.
  • Eine schnelle Internetverbindung.

2. Vorbemerkungen

  • In diesem Tutorial verwende ich den Hostnamen icinga2.domain.tld mit der IP-Adresse 192.168.250.250.100/24 und dem Gateway 192.168.250.254. Diese Einstellungen können für Sie unterschiedlich sein, so dass Sie sie gegebenenfalls ersetzen müssen.
  • Die hier gezeigten Ausgaben sind nur ein Beispiel und können je nach Basissystem und bereits installierten Paketen von Ihrem System abweichen.
  • Der Datenbankserver ist maria db und wird auf dem gleichen Host installiert.
  • Ein Benutzeradministrator existiert und befindet sich in der Sudoers-Liste.
  • Wir werden SELinux für dieses Tutorial deaktivieren.

3. Vorbereitung

Melden Sie sich als Administrator an

login as: administrator
administrator@192.168.250.100's password:
[administrator@icinga2 ~]$

Überprüfen der Netzwerkkonnektivität

Wir werden testen, ob unsere Internetverbindung hergestellt ist und die Namensauflösung funktioniert:

ping www.google.de -c3

Die Ausgabe erfolgt wie folgt:

[administrator@icinga2 ~]$ ping www.google.de -c3
PING www.google.de (172.217.20.67) 56(84) bytes of data.
64 bytes from fra02s27-in-f3.1e100.net (172.217.20.67): icmp_seq=1 ttl=57 time=19.2 ms
64 bytes from fra02s27-in-f3.1e100.net (172.217.20.67): icmp_seq=2 ttl=57 time=19.3 ms
64 bytes from fra02s27-in-f3.1e100.net (172.217.20.67): icmp_seq=3 ttl=57 time=19.6 ms

--- www.google.de ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 19.276/19.430/19.649/0.195 ms
[administrator@icinga2 ~]$

Zur Wurzel wechseln

Jetzt werden wir uns selbst zur Wurzel schlagen. Dazu geben Sie ein:

sudo su

Die Ausgabe erfolgt wie folgt:

[administrator@icinga2 ~]$ sudo su

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

         #1) Respect the privacy of others.
         #2) Think before you type.
         #3) With great power comes great responsibility.

[sudo] password for administrator:
[root@icinga2 administrator]#

Vorbereitende Software installieren

Wir werden nun einige vorläufige Software installieren:

  • deltarpm senkt den zu ladenden Betrag, indem es prüft, ob es nur eine differentielle Datei gibt, anstatt das gesamte Paket.
  • nano ist ein Text-Editor.
  • wget wird benötigt, um Dateien von URLs herunterzuladen.
  • net-tools wird für bestimmte Prüfungen von Netzwerkprozessen benötigt.
  • gcc ist der GNU Compiler.
yum -y install deltarpm

Die Ausgabe erfolgt wie folgt:

Loaded plugins: fastestmirror
base                                                                             | 3.6 kB  00:00:00
extras                                                                           | 3.4 kB  00:00:00
updates                                                                          | 3.4 kB  00:00:00
(1/4): extras/7/x86_64/primary_db
...
...
Total download size: 82 k
Installed size: 209 k
Downloading packages:
warning: /var/cache/yum/x86_64/7/base/packages/deltarpm-3.6-3.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for deltarpm-3.6-3.el7.x86_64.rpm is not installed
deltarpm-3.6-3.el7.x86_64.rpm                                                    |  82 kB  00:00:00
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-2.1511.el7.centos.2.10.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : deltarpm-3.6-3.el7.x86_64                                                            1/1
  Verifying  : deltarpm-3.6-3.el7.x86_64                                                            1/1

Installed:
  deltarpm.x86_64 0:3.6-3.el7

Complete!
yum -y install nano wget net-tools gcc

Die Ausgabe erfolgt wie folgt:

Loaded plugins: fastestmirror
base                                                                             | 3.6 kB  00:00:00
extras                                                                           | 3.4 kB  00:00:00
updates                                                                          | 3.4 kB  00:00:00
(1/4): extras/7/x86_64/primary_db
...
...
Installed:
  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

Dependency Installed:
  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.el7

Dependency Updated:
  glibc.x86_64 0:2.17-106.el7_2.4                 glibc-common.x86_64 0:2.17-106.el7_2.4

Complete!

SELinux deaktivieren

editiere die Datei /etc/selinux/config

nano /etc/selinux/config

Finden

SELINUX=enforcing

ändern Sie es in

SELINUX=disabled

Speichern der Datei

System aktualisieren und neu starten

Nun werden wir das System aktualisieren.

yum -y update && yum -y upgrade

Dies kann einige Zeit in Anspruch nehmen. Nach diesem Neustart.

reboot

4. icinga2 und zusätzliche Software installieren

Zusätzliche Repositories installieren

Nachdem das System neu gestartet wurde, melden Sie sich als Administrator an und machen Sie sich wieder root.

Verzeichnis wechseln zu /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 aufbauen (kann einige Zeit dauern)

yum makecache

Installieren Sie icinga2, icinga2 mysql connector und nagios plugins.

yum install -y nagios-plugins-all icinga2 icinga2-ido-mysql icinga-idoutils-libdbi-mysql

Installation von Apache, php und Vorbereitung der 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

php.ini bearbeiten

Finden

; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

ändern Sie es in

; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Europe/Berlin"

Speichern der Datei

Apache beim Start aktivieren

systemctl enable httpd
[root@icinga2 tmp]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
systemctl start httpd

Überprüfen Sie, ob der Apache läuft.

netstat -nlp | grep 80
[root@icinga2 tmp]# netstat -nlp | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      10360/httpd

Installation und Konfiguration von mariadb

yum install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb

Output:

[root@icinga2 tmp]# systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

Überprüfen Sie, ob mariadb läuft.

netstat -nlp | grep 3306

Output:

[root@icinga2 tmp]# netstat -nlp | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      11623/mysqld

Passwort für Benutzer „root“ festlegen

mysql -u root

Output:

[root@icinga2 tmp]# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.47-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
[MariaDB [(none)]> use mysql

Output:

[MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]>
[MariaDB [(mysql)]> update user set password=PASSWORD("root_password") where User='root';

Output:

update user set password=PASSWORD("root_password") where User='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4  Changed: 4  Warnings: 0
[MariaDB [(mysql)]> flush privileges;

Output:

MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec0
[MariaDB [(mysql)]> exit;

Output:

MariaDB [mysql]> exit;
Bye

MariaDB neu starten

systemctl restart mariadb

Erstellen und Füllen der Datenbank für icinga22

Melden Sie sich bei MySQL mit dem Passwort für root an.

mysql -u root -p

Output:

[root@icinga2 tmp]# [root@icinga2 tmp]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 7
Server version: 5.5.47-MariaDB MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>
[MariaDB [(none)]>CREATE DATABASE icinga2;

Output:

MariaDB [(none)]> CREATE DATABASE icinga2;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]>
[MariaDB [(none)]>GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2.* TO 'icinga2'@'localhost' IDENTIFIED BY 'icinga2_password';

Output:

MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga2.* TO 'icinga2'@'localhost' IDENTIFIED BY 'icinga2_password';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>
[MariaDB [(none)]>flush privileges;;

Output:

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]>
[MariaDB [(none)]> exit;

Output:

MariaDB [none]> exit;
Bye

Datenbank ausfüllen

mysql -u root -p icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Ändere ido-mysql.conf

Damit icinga2 sich mit unserer mariadb Datenbank verbinden kann, müssen wir /etc/icinga2/ido-mysql.conf anpassen.

nano /etc/icinga2/features-available/ido-mysql.conf

Finden

/**
 * The db_ido_mysql library implements IDO functionality
 * for MySQL.
 */

library "db_ido_mysql"

object IdoMysqlConnection "ido-mysql" {
  //user = "icinga"
  //password = "icinga"
  //host = "localhost"
  //database = "icinga"
}

ändern Sie es in

/**
 * The db_ido_mysql library implements IDO functionality
 * for MySQL.
 */

library "db_ido_mysql"

object IdoMysqlConnection "ido-mysql" {
  user = "icinga2"
  password = "icinga2_password"
  host = "localhost"
  database = "icinga2"
}

icinga2 beim Start aktivieren und starten

icinga2 beim Start aktivieren

systemctl enable icinga2

Output:

[root@icinga2 tmp]# systemctl enable icinga2
Created symlink from /etc/systemd/system/multi-user.target.wants/icinga2.service to /usr/lib/systemd/system/icinga2.service.

Starten Sie icinga2

systemctl start icinga2

Um zu überprüfen, ob alles funktioniert, werden wir tail -f /var/log/icinga2/icinga2.log verwenden. Sie können die Ausgabe stoppen, indem Sie STRG-C drücken.

tail -f /var/log/icinga2/icinga2.log

Die Ausgabe sollte etwa so aussehen

[root@icinga2 tmp]# tail -f /var/log/icinga2/icinga2.log
[2016-05-10 23:21:50 +0200] information/DbConnection: Resuming IDO connection: ido-mysql
[2016-05-10 23:21:50 +0200] information/ConfigItem: Activated all objects.
[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 instance id: 1 (schema version: '1.14.0')
[2016-05-10 23:21:50 +0200] information/IdoMysqlConnection: Finished reconnecting to MySQL IDO database in 0.201981 second(s).

Lassen Sie icinga2 beim Booten starten:

systemctl enable icinga2

Output:

[root@icinga2 tmp]# systemctl enable icinga2
Created symlink from /etc/systemd/system/multi-user.target.wants/icinga2.service to /usr/lib/systemd/system/icinga2.service.

Aktivieren Sie das icinga2-Befehlsmodul:

icinga2 feature enable command

Output:

[root@icinga2 tmp]# icinga2 feature enable command
Enabling feature command. Make sure to restart Icinga 2 for these changes to take effect.

icinga2 neu starten

systemctl restart icinga2

5. icingaweb2 installieren

Bevor Sie icingaweb2 installieren, stellen Sie sicher, dass Sie den Port 80 Ihrer Firewall öffnen.

Installieren Sie icingaweb2:

yum -y install icingaweb2

Vereisungsacli installieren. Wir werden es später benötigen, um ein Setup-Token für den webbasierten Teil der Installation zu erstellen.

yum -y install icingacli

Wir werden nun prüfen, ob die Gruppe icingaweb2 existiert und ob der Apache ein Mitglied dieser Gruppe ist:

cat /etc/group | grep icingaweb2

Output:

[root@icinga2 tmp]# cat /etc/group | grep icingaweb2
icingaweb2:x:990:apache

icinga2 wird eine Warnung für den http-Dienst melden, da sich keine index.hml-Datei im Webroot befindet.
Um dies zu verhindern, werden wir eine leere erstellen:

touch /var/www/html/index.html
chown apache /var/www/html/index.html

Wir werden nun das Setup-Token für den webbasierten Teil der Installation erstellen.

icingacli setup config directory --group icingaweb2

Output:

[root@icinga2 tmp]# icingacli setup config directory --group icingaweb2
Successfully created configuration directory /etc/icingaweb2
icingacli setup token create

Output:

[root@icinga2 tmp]# icingacli setup token create
The newly generated setup token is: 1826XXXXXXXXXXXX

Notieren oder kopieren Sie den Setup-Token.

Starten Sie den Apache neu.

systemctl restart httpd

Webbasierter Teil der Installation

Öffnen Sie einen Browser und gehen Sie zu http://192.168.250.100/icingaweb2/setup

Installation von Icinga 2 und Icingaweb 2 - Schritt 1

Fügen Sie den erzeugten Token ein und drücken Sie die Taste

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 2

Drücken

Weiter (Continue)

Installation von Icinga 2 und Icingaweb 2 - Schritt 3

Installation von Icinga 2 und Icingaweb 2 - Schritt 4

Überprüfen Sie, ob alle Teile grün sind und drücken Sie die Taste

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 5

Halten Sie die gewählte Art der Authentifizierung (SQL-Datenbank) gedrückt.

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 6

Fügen Sie die folgenden Werte ein:

Resourcename = icingaweb2
Keep Databasetype (Datenbanktyp) to MySQL
Keep Host as localhost
Change Databasename (Datenbanknamen) to icingaweb2
Change Username to icingaweb2
Enter a password

Drücken

Validate Configuration

Installation von Icinga 2 und Icingaweb 2 - Schritt 7

Du solltest sehen

Configuration sucessfully validated

oben auf der Seite.

Drücken

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 9

Um die Datenbank und den angegebenen Benutzer zu erstellen, geben Sie hier die Anmeldedaten für root ein. Dann drücken Sie

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 10

Behalten Sie icingaweb2 als BackendName und drücken Sie die Taste

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 11

Legen Sie den Benutzeradministrator an. Geben Sie Benutzername und Passwort ein (zweimal). Dann drücken Sie

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 12

Lassen Sie alles wie vorgeschlagen und drücken Sie die Taste

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 13

Installation von Icinga 2 und Icingaweb 2 - Schritt 14

Diese Seite enthält eine Zusammenfassung Ihrer Eingaben.
Überprüfen Sie alles und drücken Sie dann

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 15

Drücken

Weitermachen (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 16

Lassen Sie alles wie vorgeschlagen und drücken Sie die Taste

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 17

Lassen Sie alles wie vorgeschlagen und drücken Sie die Taste

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 18

Fügen Sie die folgenden Werte ein:

Resourcename = icniga2_ldo
Keep Databasetype (Datenbanktyp) to MySQL
Keep Host as localhost
Change Databasename (Datenbanknamen) to icinga2
Change Username to icnga2
Enter a mysql password for user icinga2 ("icinga2_password")
Hit Validate Configuration

Wenn die Validierung in Ordnung ist, drücken Sie auf

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 19

Lassen Sie alles wie vorgeschlagen und drücken Sie die Taste

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 20

Lassen Sie alles wie vorgeschlagen und drücken Sie die Taste

Weitermachen (Weiter).

Installation von Icinga 2 und Icingaweb 2 - Schritt 21

Installation von Icinga 2 und Icingaweb 2 - Schritt 22

Diese Seite enthält eine Zusammenfassung Ihrer Eingaben.
Überprüfen Sie alles und drücken Sie dann

Continue (Weiter)

Installation von Icinga 2 und Icingaweb 2 - Schritt 23

Drücken

Login to icinga Web 2

Icingaweb 2 Anmeldung

Melden Sie sich als Administrator mit dem definierten Passwort an.

Icinga Web-Schnittstelle

Erledigt.

Das könnte Dich auch interessieren …