Icinga 2 Director – die Einrichtung

3. März 2016

Gerd Peter
27. März 2017 at 22:02

Hi,
jetzt habe ich erst im Nachhinein den Kommentar von Mictu gelesen, Danke dafür! Das lässt hoffen. Aber sag bitte trotzdem deine Meinung.


Gerd Peter
27. März 2017 at 21:53

Hallo,
erst mal vielen Dank für deine richtig Klasse geschriebenen Beiträge…
Bisher hat sich ein Kollege um das Monitoring mit Nogios gekümmert, der ist jetzt nicht mehr am Start. Da ich das jetzt übernehme möchte ich mit Icinga2 neue in das Thema einsteigen. Frage:
Meinst du es ist jetzt bereits möglich gleich mit Debian 9 (stretch) eine Neuinstallation zu beginnen?
Was dann gelichzeitig die Frage aufwirft, ob der Icanca2 Director auch mit php7 (php7.0-curl) läuft?
Grüße,
Gerd Peter


    Marianne M. Spiller
    28. März 2017 at 10:24

    Hi Gerd,

    der Director läuft definitiv mit PHP 7 (fände es auch ziemlich dämlich, wenn das nicht der Fall wäre). Ich sehe da für Debian 9 keine Probleme, aaaaaber ausprobiert habe ich es bislang nicht ;) Aber du kannst ja mal berichten, wie es geklappt hat!

    Viele Grüße,
    Marianne

Fuchsi
21. März 2017 at 17:45

Generell kann ich das Buch Icinga 2 (ix Edition): Ein praktischer Einstieg ins Monitoring zum Einstieg in Icinga 2 sehr empfehlen.
Grundinstallation Raspbian
(http://docs.icinga.org/icinga2/latest/doc/module/icinga2/chapter/getting-started#getting-started)

Download RASPBIAN JESSIE LITEhttps://www.raspberrypi.org/downloads/raspbian/

Auf SD-Karte installieren mit Win32DiskImager

SD-Karte in RaspberryPi einsetzen und booten
Mit Putty verbinden zum RaspberryPi
Einloggen mit Login: pi Passwort: raspberry
Raspberry Konfigurieren mit “sudo raspi-config”

Expand Filesystem
Internationalisation Options

Change Localede@utf-8
Change Timezone Europe/Berlin
Change Keyboard Layout
Change Wi-fi Country

reboot

Root account mit neuem Passwort versehen
$ sudo passwd root

Root-Login per ssh erlauben
$ nano -w /etc/ssh/sshd_config

#PermitRootLogin without-password
PermitRootLogin yes

Aktuelle Updates einspielen
# sudo apt-get update && sudo apt-get dist-upgrade

Netzwerk konfigurieren
# vim /etc/network/interfaces

allow-hotplug eth0
iface eth0 inet static
address 192.168.11.100
netmask 255.255.255.0
gateway 192.168.11.1
dns-domain example.com
dns-nameservers 192.168.11.1

Diverse kleinere Tools
# apt-get install mc htop unzip

reboot

Grundinstallation Icinga 2
Icinga 2 Core
# sudo -s
# wget -O - https://debmon.org/debmon/repo.key 2>/dev/null | apt-key add -
# echo 'deb http://debmon.org/debmon debmon-jessie main' >/etc/apt/sources.list.d/debmon.list
# apt-get update

# apt-get install icinga2

# icinga2 feature list
Disabled features: api command compatlog debuglog graphite icingastatus ido-mysql ido-pgsql livestatus notification perfdata statusdata syslog
Enabled features: checker mainlog notification

# icinga2 feature enable api command compatlog livestatus perfdata statusdata
By default Icinga 2 uses the following files and directories:

PATH
DESCRIPTION

/etc/icinga2
Contains Icinga 2 configuration files.

/etc/init.d/icinga2
The Icinga 2 init script.

/usr/sbin/icinga2
The Icinga 2 binary.

/usr/share/doc/icinga2
Documentation files that come with Icinga 2.

/usr/share/icinga2/include
The Icinga Template Library and plugin command configuration.

/var/run/icinga2
PID file.

/var/run/icinga2/cmd
Command pipe and Livestatus socket.

/var/cache/icinga2
status.dat/objects.cache, icinga2.debug files

/var/spool/icinga2
Used for performance data spool files.

/var/lib/icinga2
Icinga 2 state file, cluster log, local CA and configuration files.

/var/log/icinga2
Log file location and compat/ directory for the CompatLogger feature.

Syntax Highlighting
$ apt-get install vim-icinga2 vim-addon-manager
$ vim-addon-manager -w install icinga2
Info: installing removed addon 'icinga2' to /var/lib/vim/addons

$ vim ~/.vimrc
syntax on

$ cp /etc/nanorc ~/.nanorc
$ vim ~/.nanorc

## Icinga 2
include "/usr/share/nano/icinga2.nanorc"
Icinga Plugins (wurden bei Debian bereits installiert)
# apt-get install nagios-plugins
IDOdb
# apt-get install mysql-server mysql-client
# apt-get install icinga2-ido-mysql
# mysql -u root -p

CREATE DATABASE icinga;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icinga.* TO 'icinga'@'localhost' IDENTIFIED BY 'icinga';
quit
# mysql -u root -p icinga < /usr/share/icinga2-ido-mysql/schema/mysql.sql
# icinga2 feature enable ido-mysql
Module 'ido-mysql' was enabled.
Make sure to restart Icinga 2 for these changes to take effect.

# vim /etc/icinga2/features-available/ido-mysql.conf

/**
* 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“
}

# service icinga2 restart
Webserver (Apache)
# apt-get install apache2
# usermod -a -G nagios www-data
Icinga Classic-UI
# apt-get install icinga2-classicui
# a2enconf icinga2-classicui
# service apache2 restart
Finally visit Icinga Classic UI in your browser to access it: /icinga2-classicui
IcingaWeb2
# wget -O - http://packages.icinga.org/icinga.key | apt-key add -
# echo 'deb http://packages.icinga.org/debian icinga-jessie main' >/etc/apt/sources.list.d/icinga.list
# apt-get update

# apt-get install icingaweb2
# sudo mysql -p

CREATE DATABASE icingaweb2;
GRANT SELECT, INSERT, UPDATE, DELETE, DROP, CREATE VIEW, INDEX, EXECUTE ON icingaweb2.* TO 'icingaweb2'@'localhost' IDENTIFIED BY 'icingaweb2';
quit

# mysql -p icingaweb2 < /usr/share/icingaweb2/etc/schema/mysql.schema.sql
# mysql -p icingaweb2

INSERT INTO icingaweb_user (name, active, password_hash) VALUES ('icingaadmin', 1, '$1$EzxLOFDr$giVx3bGhVm4lDUAw6srGX1');
quit

# addgroup –system icingaweb2
# usermod -a -G icingaweb2 www-data
# a2enconf icingaweb2

# icingacli setup token create
# icingacli setup token show
# apt-get install php5-intl php5-imagick
# vim /etc/php5/apache2/php.ini

date.timezone = Europe/Berlin
# vim /etc/php5/cli/php.ini

date.timezone = Europe/Berlin
# service apache2 restart
Finally visit Icinga Web 2 in your browser to access the setup wizard and complete the installation: /icingaweb2/setup
Icinga Web 2 Manual Configuration
resources.ini providing the details for the Icinga Web 2 and Icinga 2 IDO database configuration. Example for MySQL:
# vim /etc/icingaweb2/resources.ini

[icingaweb2]
type = "db"
db = "mysql"
host = "localhost"
port = "3306"
dbname = "icingaweb2"
username = "icingaweb2"
password = "icingaweb2"

[icinga2]
type = "db"
db = "mysql"
host = "localhost"
port = "3306"
dbname = "icinga"
username = "icinga"
password = "icinga"

config.ini defining general application settings.
# vim /etc/icingaweb2/config.ini

[logging]
log = "syslog"
level = "ERROR"
application = "icingaweb2"

[preferences]
type = "db"
resource = "icingaweb2"

authentication.ini for e.g. using the previously created database.
# vim /etc/icingaweb2/authentication.ini

[icingaweb2]
backend = "db"
resource = "icingaweb2"

roles.ini granting the previously added icingaadmin user all permissions.
# vim /etc/icingaweb2/roles.ini

[admins]
users = "icingaadmin"
permissions = "*"
Icinga Web 2 Manual Configuration Monitoring Module
config.ini defining additional security settings.
# mkdir /etc/icingaweb2/modules/monitoring
# vim /etc/icingaweb2/modules/monitoring/config.ini

[security]
protected_customvars = "*pw*,*pass*,community"

backends.ini referencing the Icinga 2 DB IDO resource.
# vim /etc/icingaweb2/modules/monitoring/backends.ini

[icinga2]
type = "ido"
resource = "icinga2"

commandtransports.ini defining the Icinga command pipe.
# vim /etc/icingaweb2/modules/monitoring/commandtransports.ini

[icinga2]
transport = "local"
path = "/var/run/icinga2/cmd/icinga2.cmd"

Icinga Web 2 Manual Setup Login
Finally visit Icinga Web 2 in your browser to login as icingaadmin user: /icingaweb2.
Default PW is icingaadmin
Icinga Director
# apt-get install php5-curl
# service apache2 restart
# mysql -p

CREATE DATABASE director CHARACTER SET 'utf8';
GRANT ALL ON director.* TO director@localhost IDENTIFIED BY 'director';
quit;

# vim /etc/icingaweb2/resources.ini

[Director DB]
type = „db“
db = „mysql“
host = „localhost“
dbname = „director“
username = „director“
password = „director“
charset = „utf8“
# cd /usr/share/icingaweb2/modules/
# wget https://github.com/Icinga/icingaweb2-module-director/archive/master.zip
# unzip master.zip
# mv icingaweb2-module-director-master director
# rm -r master.zip
# mkdir /etc/icingaweb2/modules/director
# vim /etc/icingaweb2/modules/director/config.ini

[db]
resource = „Director DB“
# icinga2 api setup
# vim /etc/icinga2/conf.d/api-users.conf

object ApiUser „director“ {
password = „director“
//client_cn = „“

permissions = [ „*“ ]
}
# service icinga2 restart
# icingacli director migration run –verbose
Weitergehende Links zum Director:

https://github.com/Icinga/icingaweb2-module-director/tree/master/doc
https://www.unixe.de/icinga2-director-die-einrichtung/
https://www.unixe.de/icinga2-director-erste-schritte-und-nutzung/
https://www.netways.de/webinare/archiv/icinga_webinare/icinga_director_konfiguration_leicht_gemacht/


Mictu
4. März 2017 at 10:14

Hi – diesmal ein Tipp von mir:
Ab Ubuntu 16.04 wird per Standard nur noch PHP7.0 angeboten. PHP5.6-CURL ist zwar mit Aufwand möglich aber nicht so schön.
Ich habe ein apt-get install php7.0-curl installiert. Aber dann läuft es noch nicht.
Damit es läuft muss man in der /etc/php/7.0/cli/php.ini und /etc/php/7.0/apache2/php.ini jeweils die extension anpassen.
Aus einem ;extension=php_curl.dll muss ein extension=curl.so gemacht werden. Apache neu starten und schon lief der Director Import problemlos.
Vielleicht magst Du das ja noch in Deiner Beschreibung aufnehmen. Hat mich einige Zeit gekostet.


Basti
3. Februar 2017 at 13:00

Ich bekomme immer einen Curl-Timeout, wenn ich versuche das Datenbankschema zu übertragen via Kickstart-Assisten: CURL ERROR: Connection timed out after 3000 milliseconds

Jemand eine Idee, wie ich das weg bekomme?

Grüße


Faust
1. Dezember 2016 at 20:15

Hallo Frau Spiller,

die Anleitung ist super. Nur kommt auf meinem System bei der Inbetriebnahme der Reiter Configuration nicht. Warn kann das denn liegen? Bis dahin wer die Installation kein Problem.

MFG Faust


8. Juni 2016 at 13:22

Thank you!!!


Daniel
20. Mai 2016 at 10:26

Ich bekomme bei der Konfiguration den Fehler: „CURL ERROR: Failed to connect to localhost port 5665: Verbindungsaufbau abgelehnt“, kann jemand helfen? Bin nicht soo mega Linux versiert


malt0r
27. April 2016 at 22:00

Hallo,

ich habe das Problem, dass wenn ich die Datenbank Resource im Director einstellen will dies nicht funktioniert. Ich kriege angezeigt „Form successfully sent“ aber die Resource ist nicht ausgewählt und muss neu eingestellt werden. Vielleicht eine Idee?

Ich wäre über jeden Tipp dankbar.


Frank
8. April 2016 at 15:28

Leider lässt sich die Datenbank bei mir nicht als Database Backend einstellen.
Ich habe wie beschrieben das Schema mysql.sql eingespielt.
Irgendeine Idee was es noch sein könnte? :-(


safa
22. März 2016 at 16:42

Hallo alle zusammen,
wie die Endpunktname hinzuzufügen, weil ich diesen Fehler in meiner Konfiguration haben
„Failed to load icinga_zone … “ und ich weiß nicht, wie es zu lösen.


safa
22. März 2016 at 16:39

Hi everybody,

how to add the Endpoint Name because i have this error in my configuration
„Failed to load icinga_zone … “ and i don’t know how to resolve it.


Michael
8. März 2016 at 10:15

Hallo zusammen,

die Installation an sich kein Problem. Nach dem die Freischaltungen in der FW erfolgt sind (unser Icingaweb2 steht in der DMZ) konnte auch der director eigentlich intuitiv angebunden werden. Sofort waren die endpoints,commands und zones sichtbar. nun beginnt die eigentliche arbeit: Zuordnen der Endpoints zu den eingelesen zones. Aber auch hier ist Arbeit eigentlich selbsterklärend. Einen Blick in die Preview: sieht so aus wie in der Umgebung ==> kann also schon einmal nicht falsch sein ;-)

Und nun beginnt das Drama : Imporieren der bestehden Config (user, usregroup… ) alles noch einmal eingeben und pflegen ? ne das kann es nicht sein.


Marianne M. Spiller
5. März 2016 at 20:17

Hi, freut mich mich zu „hören“ :-) Die Einrichtung ist in der Tat nochmal eine Sache für sich, vor allem dann, wenn eine bestehende Konfig übernommen werden soll; ich verweise an der Stelle mal auf https://dev.icinga.org/issues/11300 :)Am Montag soll das Release fertig sein – und mit ihm auch Dokumentation. Mal abwarten. Ansonsten schreibe ich gerade am Artikel zur Einrichtung, aber ich ringe da stellenweise auch noch mit der Technik. Ich denke, in den nächsten Tagen sind wir alle schlauer… :-)Viele Grüße!


knollo
3. März 2016 at 21:55

Danke für deine Anleitung. Werde ich morgen gleich mal ausprobieren.


Malte
3. März 2016 at 16:04

Deine Installationsanleitung ist sehr viel hilfreicher als die bisher vorhandene im git! :-)

Im allerersten Anlauf dachte ich erst, er holt sich das director Schema selbst, aber in diesem Schritt gibt es ja wenigstens noch eine eindeutige Fehlermeldung.

Es macht jetzt schon einen guten Eindruck und mit dem Stable release wird es bestimmt richtig nützlich sein.


Python L0ver
3. März 2016 at 15:57

sehr gerne! Aber das solltest du ja schon wissen das ich zur Not doof nachfrage ;-)


Marianne M. Spiller
3. März 2016 at 15:56

Cool! Rückmeldung erwünscht :-)


Python L0ver
3. März 2016 at 15:56

werde ich nachher direkt mal ausprobieren


Bits United
3. März 2016 at 15:55

Icinga2 steht bei mir auf dem Homeserver auch noch an…