no way to compare when less than two revisions
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | linux:icinga:installation-full [2024/02/26 14:37] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Installation-full ====== | ||
+ | <code bash> | ||
+ | echo 'deb http:// | ||
+ | deb-src http:// | ||
+ | apt-get update | ||
+ | apt-get install icinga2</ | ||
+ | Damit icinga2 bei einem Crash neustartet, noch folgende Datei erstellen und mit Inhalt füllen. | ||
+ | <code bash>vi / | ||
+ | |||
+ | Inhalt: | ||
+ | < | ||
+ | Restart=always | ||
+ | RestartSec=1 | ||
+ | StartLimitInterval=10 | ||
+ | StartLimitBurst=3</ | ||
+ | |||
+ | Danach diese Einstellungen noch aktivieren. | ||
+ | <code bash> | ||
+ | |||
+ | ==== Pfade ==== | ||
+ | ^ Pfad ^ Beschreibung ^ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | | ''/ | ||
+ | |||
+ | ==== Vim-Erweiterungen ==== | ||
+ | Icinga bietet Erweiterungen für vim an. | ||
+ | Installiert werden diese wie folgt. | ||
+ | <code bash> | ||
+ | vim-addon-manager -w install icinga2</ | ||
+ | |||
+ | Dann noch ggf. das Syntax Highlighting einschalten (ist bei Ubuntu systemweit eingeschaltet). | ||
+ | <code bash>vim ~/ | ||
+ | |||
+ | Inhalt: | ||
+ | < | ||
+ | |||
+ | Testen kann man dies so: | ||
+ | <code bash>vim / | ||
+ | |||
+ | ==== Plugins ==== | ||
+ | Zu icinga2 müssen noch Check-Plugins installiert werden. | ||
+ | <code bash> | ||
+ | |||
+ | ===== Features ===== | ||
+ | * Status der installierten Features prüfen <code bash> | ||
+ | * Features ein-/ | ||
+ | |||
+ | ==== Debugging ==== | ||
+ | * Debug-Konsole einschalten (in Linux und Windows-Client) < | ||
+ | * Debug-LOG einschalten <code bash> | ||
+ | service icinga2 restart</ | ||
+ | * Log-Datei: ''/ | ||
+ | * Debug-LOG ausschalten <code bash> | ||
+ | service icinga2 restart</ | ||
+ | |||
+ | ===== Konfiguration testen ===== | ||
+ | Wenn man Änderungen an der Konfiguration von Icinga vorgenommen hat, kann man diese vor dem neustarten testen. | ||
+ | <code bash> | ||
+ | ===== Icinga Web ===== | ||
+ | Über Icinga Web lässt sich icinga konfigurieren, | ||
+ | |||
+ | ==== MySQL ==== | ||
+ | Das Icinga Web schreibt seine Konfiguration in eine Datenbank. | ||
+ | Hier wird die Installation anhand von MySQL veranschaulicht. | ||
+ | <code bash> | ||
+ | mysql_secure_installation</ | ||
+ | |||
+ | Nun noch die IDO Module für MySQL installieren und die Datenbank erstellen und einrichten. | ||
+ | <code bash> | ||
+ | |||
+ | Im Installationsablauf, | ||
+ | Die Konfiguration von icinga zum Verbinden mit der Datenbank, stehen in der Datei ''/ | ||
+ | |||
+ | Zuletzt noch das neue Feature einschalten und icinga neustarten. | ||
+ | <code bash> | ||
+ | systemctl restart icinga2.service</ | ||
+ | |||
+ | ==== Webserver ==== | ||
+ | Als Webserver wird nginx verwendet. | ||
+ | <code bash> | ||
+ | |||
+ | ==== Rest API ==== | ||
+ | Um die Rest API zu aktivieren, folgendes tun. | ||
+ | <code bash> | ||
+ | Hierbei werden Certifikate und der API-Benutzer " | ||
+ | Da der neue API-Benutzer alle Rechte für die API hat, sollte man sich einen anderen Benutzer erstellen und diesem zunächst nur minimale Rechte geben. | ||
+ | <code bash>vi / | ||
+ | |||
+ | Inhalt unten hinzufügen: | ||
+ | < | ||
+ | password = "< | ||
+ | permissions = [ " | ||
+ | }</ | ||
+ | |||
+ | Zuletzt natürlich icinga neustarten zum aktivieren der neuen Einstellungen | ||
+ | < | ||
+ | |||
+ | ==== Web GUI ==== | ||
+ | Nun kann die Web GUI installiert werden. | ||
+ | <code bash> | ||
+ | |||
+ | Mit folgendem Befehl lässt sich die Konfiguration für den jew. Webserver (Apache|Nginx) auf der Konsole ausgeben. | ||
+ | <code bash> | ||
+ | |||
+ | Die Ausgabe kopiert man in eine Webseiten Konfigurationsdatei ins Konfigurationsverzeichniss des Webservers und passt diese an (Stichwort: [[web: | ||
+ | Danach die Konfiguration noch aktivieren und folgende Daemons neustarten | ||
+ | <code bash>ln -s / | ||
+ | systemctl restart php7.2-fpm.service nginx.service</ | ||
+ | |||
+ | Jetzt kann icinga über die Web-GUI erstmalig konfiguriert werden. | ||
+ | Dazu öffnet man folgende URL im Browser: [[http://< | ||
+ | |||
+ | Auf der ersten Seite des Setups wird nach einem Token gefragt. | ||
+ | Dieses erstellt man sich per CLI: | ||
+ | * Token erstellen <code bash> | ||
+ | * Token nochmal ansehen <code bash> | ||
+ | |||
+ | Mit diesem Token kann man nun die Konfiguration mit Hilfe des Wizard durchgehen. | ||
+ | Je nach Auswahl, muss noch mehr oder weniger auf der Konsole gemacht werden. | ||
+ | U. U. muss noch ein weiterer administrativer Benutzer in der mysql Datenbank angelegt werden, da der Root Benutzer mittlerweile nicht mehr verwendet werden kann. | ||
+ | < | ||
+ | flush privileges;</ | ||
+ | |||
+ | ===== Director ===== | ||
+ | Der Director ist das Web-Konfigurationstool für Icinga. | ||
+ | ==== Installation ==== | ||
+ | Folgende Pakete sollten zuvor installiert sein | ||
+ | * icinga2 | ||
+ | * icingaweb2 | ||
+ | * mysql | ||
+ | * php | ||
+ | * php-curl | ||
+ | |||
+ | Zunächst benötigt man eine Datenbank und einen dafür priviligierten Benutzer. | ||
+ | <code bash> | ||
+ | GRANT ALL ON director.* TO director@localhost IDENTIFIED BY '< | ||
+ | |||
+ | Danach erstellt man in der icinga Web-Gui eine neu Ressource für die gerade erstellte Datenbankverbindung. | ||
+ | Diese erstellt man unter Menü: Konfiguration-> | ||
+ | Als Datensatz muss auch hier **" | ||
+ | |||
+ | Jetzt holt man sich noch das Modul lokal auf den Server: | ||
+ | <code bash>cd / | ||
+ | git clone https:// | ||
+ | In der Web-Gui kann man das neue Modul nun aktivieren. | ||
+ | Dies geschieht im Menü: Konfiguration-> | ||
+ | Im Menü erscheint danach ein neuer Eintrag namens " | ||
+ | Dieser fragt irgendwann nach dem Namen des Endpunktes und nach dem Icinga-Host. | ||
+ | Der Name des Endpunktes ist der der auch im Host-Zertifikat unter " | ||
+ | <code bash> | ||
+ | Beim Eintrag " | ||
+ | Als Benutzer wählt man den beim Api-Setup erstellten Benutzer " | ||
+ | |||
+ | Wenn man den Director das erste benutzt, müssen noch einige Anpassungen an der bestehenden Icinga-Konfiguration gemacht werden. | ||
+ | * neue globale Zone <code bash>vi / | ||
+ | global = true | ||
+ | }</ | ||
+ | * neuer API-Benutzer <code bash>vi / | ||
+ | password = "< | ||
+ | permissions = [ " | ||
+ | //client_cn = "" | ||
+ | }</ | ||
+ | |||
+ | Zuletzt noch icinga2 neustarten. | ||
+ | <code bash> | ||
+ | ==== Upgrade ==== | ||
+ | Zum Upgraden muss erneut das GIT-Repo geholt werden (git pull) und die Dateien ersetzt werden. | ||
+ | Danach das Upgrade der DB ausführen und den Job-Runner-Daemon neustarten. | ||
+ | <code bash> | ||
+ | Mit diesem Befehl sieht man ob alles durchgelaufen ist. | ||
+ | <code bash> | ||
+ | <code bash> | ||
+ | |||
+ | ===== Graphite ===== | ||
+ | Mit Graphite lassen sich Performancedaten grafisch darstellen. | ||
+ | ==== Installation ==== | ||
+ | Zunächst benötigt man folgende Pakete: carbon-cache, | ||
+ | <code bash> | ||
+ | |||
+ | Konfiguration graphite: ''/ | ||
+ | < | ||
+ | # General Configuration # | ||
+ | ##################################### | ||
+ | # | ||
+ | LOG_ROTATION = False | ||
+ | |||
+ | ##################################### | ||
+ | # Filesystem Paths # | ||
+ | ##################################### | ||
+ | # | ||
+ | GRAPHITE_ROOT = '/ | ||
+ | CONF_DIR = '/ | ||
+ | STORAGE_DIR = '/ | ||
+ | STATIC_ROOT = '/ | ||
+ | LOG_DIR = '/ | ||
+ | INDEX_FILE = '/ | ||
+ | WHISPER_DIR = '/ | ||
+ | |||
+ | ########################## | ||
+ | # Database Configuration # | ||
+ | ########################## | ||
+ | # | ||
+ | DATABASES = { | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | } | ||
+ | }</ | ||
+ | |||
+ | |||
+ | Konfiguration uwsgi: ''/ | ||
+ | < | ||
+ | |||
+ | vacuum = true | ||
+ | master = true | ||
+ | processes = 4 | ||
+ | chmod-socket = 666 | ||
+ | gid = _graphite | ||
+ | uid = _graphite | ||
+ | chdir = / | ||
+ | wsgi-file = graphite.wsgi | ||
+ | pymodule-alias = graphite.local_settings=/ | ||
+ | buffer-size = 65536 | ||
+ | plugin = python</ | ||
+ | |||
+ | Konfiguration nginx: ''/ | ||
+ | < | ||
+ | server unix:/ | ||
+ | } | ||
+ | |||
+ | server { | ||
+ | listen 9002; | ||
+ | server_name _; | ||
+ | |||
+ | access_log / | ||
+ | error_log / | ||
+ | |||
+ | root / | ||
+ | |||
+ | location / { | ||
+ | add_header Access-Control-Allow-Origin " | ||
+ | add_header Access-Control-Allow-Methods "GET, OPTIONS"; | ||
+ | add_header Access-Control-Allow-Headers " | ||
+ | |||
+ | uwsgi_pass graphite; | ||
+ | include / | ||
+ | } | ||
+ | |||
+ | # location /media { | ||
+ | # This makes static media available at the /media/ url. The | ||
+ | # media will continue to be available during site downtime, | ||
+ | # allowing you to use styles and images in your maintenance page. | ||
+ | # alias / | ||
+ | # } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | Nach der Konfiguration der Software noch die Daemons neustarten. | ||
+ | <code bash> | ||
+ | |||
+ | Danach aktiviert man das Icinga-Modul. | ||
+ | <code bash> | ||
+ | Die Konfigurationsdatei ''/ | ||
+ | < | ||
+ | |||
+ | object GraphiteWriter " | ||
+ | //host = " | ||
+ | //port = 2003 | ||
+ | enable_send_thresholds = true | ||
+ | }</ | ||
+ | |||
+ | Jetzt startet man icinga neu. | ||
+ | <code bash> | ||
+ | |||
+ | Das Graphite Modul lädt man sich wie immer in den folgenden Ordner herunter. | ||
+ | <code bash>cd / | ||
+ | git clone https:// | ||
+ | Nun noch im IcingaWeb2 Menü aktivieren: Konfiguration→Module. | ||
+ | |||
+ | Graphite speichert seine Graphen-DBs unter ''/ | ||
+ | Hier sollte nach rel. kurzer Zeit der Ordner " | ||
+ | |||
+ | Für eine längere Vorhaltezeit der Graphen muss noch in der Datei ''/ | ||
+ | < | ||
+ | # intervals like PNP4Nagios uses them per default | ||
+ | pattern = ^icinga2\. | ||
+ | retentions = 1m: | ||
+ | ==== Kofiguration in Icinga-Web ==== | ||
+ | Im Icingaweb2 in der Konfiguration des Graphite-Moduls, | ||
+ | Im Reiter " | ||
+ | |||
+ | ==== Templates ==== | ||
+ | Templates sind INI-Daeien und regeln das aussehend er Graphen. | ||
+ | Im Download des Graphite-Moduls befinden sich schon viele Templates. Man findet diese im Ordner ''/ | ||
+ | |||
+ | Um eigene Templates einzubinden oder vorhandene Templates zu überschreiben, | ||
+ | Hier werden auch Ordnerstrukturen unterstützt. | ||
+ | Kopiert man ein vorhandenes Template vom Graphite-Modul hier hinein, kann man dieses wie gewünscht anpassen. Dieses Template hat dann vor dem originalen Vorrang. | ||
+ | Weitere Infos zum konfigurieren von Templates findet man unter [[https:// | ||
+ | ===== Agents ===== | ||
+ | ==== Windows ==== | ||
+ | Der Windows Agent kann auf verschiedene Weise installiert werden, hier die Anleitung über das Powershellmodul von [[https:// | ||
+ | Das Modul befindet sich auch im Reiter " | ||
+ | |||
+ | Zunächst clont man sich den Odner " | ||
+ | Diesen Ordner kopiert man nach " | ||
+ | Mit dem Befehl '' | ||
+ | Dann aktiviert man dieses in der Powershell, deaktivert aber zuvor die Ausführungsrestrictionen mit | ||
+ | < | ||
+ | Import-Module Icinga2Agent</ | ||
+ | |||
+ | Dieses Modul importiert den aktuellen Host mit den folgenden Befehlen in Icinga2. | ||
+ | **WICHTIG**: | ||
+ | < | ||
+ | -AgentName | ||
+ | -Ticket | ||
+ | -ParentZone | ||
+ | -ParentEndpoints '< | ||
+ | -CAServer | ||
+ | -RunInstaller</ | ||
+ | |||
+ | Danach noch die " | ||
+ | |||
+ | Hat man den Agent auf einem Webserver oder einer Freigabe hinterlegt, kann man dem o.g. Parametern noch folgende hinzufügen, | ||
+ | < | ||
+ | -DownloadUrl '< | ||
+ | |||
+ | Das Ticket bekommt man über den Icinga2Director, | ||
+ | Damit wird ein Ticket erstellt, welches dauerhaft für alle Client-Importe gilt. | ||
+ | Der Modul aufruf sieht dann etwas anders aus (hier mit dem Installationsaufruf des Icinga2 Agents: | ||
+ | < | ||
+ | -InstallAgentVersion | ||
+ | -DownloadUrl | ||
+ | -AgentName | ||
+ | -DirectorUrl | ||
+ | -DirectorAuthToken | ||
+ | -RunInstaller</ | ||
+ | |||
+ | ===== Backup ===== | ||
+ | Folgendes sollte gesichert werden: | ||
+ | * Verzeichnisse | ||
+ | * ''/ | ||
+ | * ''/ | ||
+ | * Datenbanken | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' |