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 20:02] – [Eigene Checks einbinden] adi | linux:icinga:docker-stack [2025/03/21 20: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 " |