Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| linux:icinga:docker-stack [2025/03/13 19:02] – [Eigene Checks einbinden] adi | linux:icinga:docker-stack [2025/03/21 19:05] (aktuell) – [Graphite] adi | ||
|---|---|---|---|
| Zeile 602: | Zeile 602: | ||
| < | < | ||
| const CustomPluginDir = " | const CustomPluginDir = " | ||
| - | |||
| - | Eigene Icinga-Service Konfiguration erstellen. | ||
| - | <code bash>/ | ||
| - | |||
| - | Inhalt am Beispiel vom Check für QNap-Nas: | ||
| - | < | ||
| - | import " | ||
| - | command = [ CustomPluginDir + "/ | ||
| - | arguments += { | ||
| - | " | ||
| - | description = "Host name, IP Address, or unix socket (must be an absolute path)" | ||
| - | value = " | ||
| - | } | ||
| - | " | ||
| - | description = " | ||
| - | value = " | ||
| - | } | ||
| - | " | ||
| - | description = "SNMP protocol version (defalt: 2c)" | ||
| - | value = " | ||
| - | } | ||
| - | " | ||
| - | description = "Port number (default: 161)" | ||
| - | value = " | ||
| - | } | ||
| - | " | ||
| - | description = " | ||
| - | value = " | ||
| - | } | ||
| - | " | ||
| - | description = " | ||
| - | value = " | ||
| - | } | ||
| - | } | ||
| - | vars.check_address = { | ||
| - | arguments = [ ] | ||
| - | deprecated = false | ||
| - | name = "< | ||
| - | side_effect_free = false | ||
| - | type = " | ||
| - | } | ||
| - | vars.check_ipv4 = false | ||
| - | vars.check_ipv6 = false | ||
| - | vars.qnap_address = " | ||
| - | }</ | ||
| Nun noch den Icinga stack neu starten. | Nun noch den Icinga stack neu starten. | ||
| Zeile 653: | Zeile 608: | ||
| Jetzt kann der neu definierte Check im Director normal verwendet werden. | Jetzt kann der neu definierte Check im Director normal verwendet werden. | ||
| + | |||
| + | - neues Kommando erstellen | ||
| + | - Reiter Kommando | ||
| + | - **Kommandotyp**: | ||
| + | - **Kommandoname**: | ||
| + | - **Kommando**: | ||
| + | - Reiter Arguments | ||
| + | - Argument " | ||
| + | - **Argumentname**: | ||
| + | - **Beschreibung**: | ||
| + | - **Werttyp**: | ||
| + | - **Wert**: '' | ||
| + | - **Position**: | ||
| + | - **Bedingungsformat**: | ||
| + | - **Benötigt**: | ||
| + | - Argument " | ||
| + | - **Argumentname**: | ||
| + | - **Beschreibung**: | ||
| + | - **Werttyp**: | ||
| + | - **Wert**: '' | ||
| + | - **Position**: | ||
| + | - **Bedingungsformat**: | ||
| + | - **Benötigt**: | ||
| + | - Argument " | ||
| + | - **Argumentname**: | ||
| + | - **Beschreibung**: | ||
| + | - **Werttyp**: | ||
| + | - **Wert**: '' | ||
| + | - **Position**: | ||
| + | - **Bedingungsformat**: | ||
| + | - **Benötigt**: | ||
| + | - Neue Datenfelder anlegen | ||
| + | - Datenfeld " | ||
| + | - **Feldname**: | ||
| + | - **Beschriftung**: | ||
| + | - **Datentyp**: | ||
| + | - **Sichtbarkeit**: | ||
| + | - Datenfeld " | ||
| + | - **Feldname**: | ||
| + | - **Beschriftung**: | ||
| + | - **Datentyp**: | ||
| + | - **Sichtbarkeit**: | ||
| + | - Datenfeld " | ||
| + | - **Feldname**: | ||
| + | - **Beschriftung**: | ||
| + | - **Datentyp**: | ||
| + | - **Sichtbarkeit**: | ||
| + | - neue Service Vorlage erstellen | ||
| + | - hier das Check-Kommando " | ||
| + | - Reiter " | ||
| + | - hier die Felder " | ||
| + | - Reiter " | ||
| + | - das Feld " | ||
| + | - neue Host Vorlage erstellen | ||
| + | - hier das Feld " | ||
| + | - neuen Service, z.B. für CpuLoad, anlegen | ||
| + | - **Importe**: | ||
| + | - **Host**: die Host Vorlage die zuvor angelegt wurde | ||
| + | - **qnap_argument**: | ||
| + | |||
| + | ===== Notifications ===== | ||
| + | Damit Icinga Benachrichtungen per Mail senden kann muss man sich eine '' | ||
| + | Diese steuert den lokalen Mailbefehl '' | ||
| + | <code bash>cd / | ||
| + | mkdir -p etc_data/ | ||
| + | vi etc_data/ | ||
| + | |||
| + | Hier diesen Inhalt einfügen und nach belieben anpassen. | ||
| + | < | ||
| + | # On this port, TLS is activated via STARTTLS. | ||
| + | defaults | ||
| + | tls on | ||
| + | # | ||
| + | tls_trust_file | ||
| + | logfile | ||
| + | # | ||
| + | |||
| + | # Define a mail account | ||
| + | account | ||
| + | # Host name of the SMTP server | ||
| + | host            < | ||
| + | port            < | ||
| + | tls_starttls | ||
| + | # Envelope-from address | ||
| + | from            < | ||
| + | # Authentication | ||
| + | auth on | ||
| + | user            < | ||
| + | # | ||
| + | passwordeval | ||
| + | |||
| + | account default: < | ||
| + | |||
| + | Dann erstellt man sich die verschlüsslete Datei mit dem Passwort. | ||
| + | <code bash>vi etc_data/ | ||
| + | Hier das Passwort einfügen und danach verschlüsseln. | ||
| + | <code bash>gpg -c .msmtp-cred.txt</ | ||
| + | Die Passphrase merken, wird im Container jedes mal wenn er neu gestartet wurde abgefragt. | ||
| + | Möchte man gpg nicht verwenden, dann einfach wie oben beschrieben das Passwort als Plaintext einfügen. | ||
| + | |||
| + | Den Inhalt kann man so prüfen. | ||
| + | <cocde bash>gpg -d --no-tty -q .msmtp-cred.txt.gpg</ | ||
| + | |||
| + | Die beiden Dateien '' | ||
| + | Dazu in der " | ||
| + | < | ||
| + | - ./ | ||
| + | |||
| + | Jetzt noch die Konfiguration bekannt machen. | ||
| + | <code bash> | ||
| + | |||
| + | Die Grundlage zum Senden von Mails ist nun vorhanden. | ||
| + | Man kann im " | ||
| + | <code bash> | ||
| + | |||
| + | Jetzt noch IcingaWeb konfigurieren. | ||
| + | - Felder erstellen | ||
| + | - notification_from | ||
| + | - **Datentyp**: | ||
| + | - Zeitperiode erstellen | ||
| + | - im Reiter " | ||
| + | - Benutzer erstellen | ||
| + | - **Zeitraum**: | ||
| + | - **Benachrichtigungen senden**: ja | ||
| + | - **E-Mail**: Mailadresse des Benutzers | ||
| + | - **Zustände**: | ||
| + | - **Änderungsstypen**: | ||
| + | - Benachrichtigungsvorlage für Hosts und Services erstellen | ||
| + | - **Felder hinzufügen**: | ||
| + | - **Benutzer**: | ||
| + | - **Benachrichtigungskommando**: | ||
| + | - **Benachrichtigungsintervall**: | ||
| + | - **Zeitraum**: | ||
| + | - **notification_from**: | ||
| + | - **Zustände**: | ||
| + | - **Änderungsstypen**: | ||
| + | - Benachrichtigung für Hosts und Services erstellen | ||
| + | - **Importe**: | ||
| + | - **Benutzer**: | ||
| + | - **Anwenden auf**: Hosts bzw. Services | ||
| + | - **Zuweisen wo**: 1. Textfeld: " | ||
| + | |||
| + | Wenn nun noch der Host oder Service die Benachrichtigungen aktiviert hat, werden Mails gesendet. | ||
| + | Man kann in IcingaWeb an einem Host oder Server eine Benutzerdefinierte Benachrichtigung senden und dann im Log des Containers das senden der Mail sehen. | ||
| + | Dazu müssen Benutzerdefinierte Benachrichtigungen oben überall als Änderungsstypen angegeben werden. | ||
| + | Die Logs des Containers kann man sich so anzeigen. | ||
| + | <code bash>cd / | ||
| + | docker compose logs -f icinga2</ | ||
| + | ===== Graphite ===== | ||
| + | Mit Graphite kann man Performancedaten der einzelnen Checks grafisch darstellen. | ||
| + | Zum einbinden von Graphite folgendes tun. | ||
| + | - Docker Container erstellen <code bash>cd / | ||
| + | vi docker-compose.yml</ | ||
| + | - hier beim Service " | ||
| + | - danach folgendes unter den letzten Service einfügen < | ||
| + | container_name: | ||
| + | image: graphiteapp/ | ||
| + | restart: always | ||
| + | ports: | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | - " | ||
| + | hostname: graphite | ||
| + | volumes: | ||
| + | #- ./ | ||
| + | #- ./ | ||
| + | - ./ | ||
| + | #- ./ | ||
| + | #- ./ | ||
| + | #- ./ | ||
| + | #- ./ | ||
| + | #- ./ | ||
| + | #- ./ | ||
| + | environment: | ||
| + | - GRAPHITE_TIME_ZONE=Europe/ | ||
| + | - GRAPHITE_DATE_FORMAT=%m/ | ||
| + | - COLLECTD=1</ | ||
| + | - Volumeordner für Graphite erstellen <code bash> | ||
| + | - Icinga Konfiguration zum senden von Performancedaten erstellen <code bash> | ||
| + | - hier die Datei graphite.conf mit folgendem Inhalt erstellen < | ||
| + | * The GraphiteWriter type writes check result metrics and | ||
| + | * performance data to a graphite tcp socket. | ||
| + | */ | ||
| + | |||
| + | object GraphiteWriter " | ||
| + | host = " | ||
| + | port = 2003 | ||
| + | }</ | ||
| + | - Graphite Container starten <code bash> | ||
| + | - ggf. in IcingaWeb unter Einstellungen (Zahnrad) -> " | ||
| + | - im Reiter " | ||
| + | - In der Ansicht eines Hosts oder Service werden nun die Graphen angezeigt, vorausgesetzt die Performancedaten sind in den jew. Icinga-Objekten eingeschaltet | ||
| + | - Über die URL " | ||