stiziwik
Sie befinden sich hier: Willkommen » linux » Icinga » Docker Compose Icinga stack
Zuletzt angesehen:

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
linux:icinga:docker-stack [2025/03/14 19:30] – [Eigene Checks einbinden] adilinux:icinga:docker-stack [2025/03/21 20:05] (aktuell) – [Graphite] adi
Zeile 667: Zeile 667:
     - **Host**: die Host Vorlage die zuvor angelegt wurde     - **Host**: die Host Vorlage die zuvor angelegt wurde
     - **qnap_argument**: ''cpuload''     - **qnap_argument**: ''cpuload''
 +
 +===== Notifications =====
 +Damit Icinga Benachrichtungen per Mail senden kann muss man sich eine ''msmtprc'' Datei erstellt werden.
 +Diese steuert den lokalen Mailbefehl ''msmtp''.
 +<code bash>cd /opt/docker-compose-icinga/
 +mkdir -p etc_data/msmtp/
 +vi etc_data/msmtp/msmtprc</code>
 +
 +Hier diesen Inhalt einfügen und nach belieben anpassen.
 +<code># Set default values: use the mail submission port 587, and always use TLS.
 +# On this port, TLS is activated via STARTTLS.
 +defaults
 +tls on
 +#tls_starttls on
 +tls_trust_file  /etc/ssl/certs/ca-certificates.crt
 +logfile         /var/log/msmtp.log
 +#aliases         /etc/aliases
 +
 +# Define a mail account
 +account         <NAME>
 +# Host name of the SMTP server
 +host            <MAILHOST>
 +port            <MAILHOST_PORT>
 +tls_starttls    <on|off>
 +# Envelope-from address
 +from            <ABSENDERADRESSE>
 +# Authentication
 +auth            on
 +user            <USERNAME>
 +#password        <PLAINTEXT_PASSWORD>
 +passwordeval    gpg2 --no-tty -q -d /etc/.msmtp-cred.gpg
 +
 +account default: <ACCOUNT_NAME></code>
 +
 +Dann erstellt man sich die verschlüsslete Datei mit dem Passwort.
 +<code bash>vi etc_data/msmtp/.msmtp-cred.txt</code>
 +Hier das Passwort einfügen und danach verschlüsseln.
 +<code bash>gpg -c .msmtp-cred.txt</code>
 +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</code>
 +
 +Die beiden Dateien ''msmtp'' und ''.msmtp-cred.php'' müssen noch in den "icinga2" container eingebunden werden.
 +Dazu in der "docker-compose.yml" unter dem Service "icinga2" folgende Volumes hinzufügen.
 +<code>- ./etc_data/msmtp/msmtprc:/etc/msmtprc:ro
 +- ./etc_data/msmtp/.msmtp-cred.txt.gpg:/etc/.msmtp-cred.txt.gpg:ro</code>
 +
 +Jetzt noch die Konfiguration bekannt machen.
 +<code bash>docker compose stop && docker compose up -d</code>
 +
 +Die Grundlage zum Senden von Mails ist nun vorhanden.
 +Man kann im "icinga2" container das senden mit diesem Befehl testen.
 +<code bash>echo "Irgend ein Text" | mail -a "From: <ABSENDER_ADRESSE" -s "Mailtest" <EMPFAENGER_ADRESSE> --debug-level=all</code>
 +
 +Jetzt noch IcingaWeb konfigurieren.
 +  - Felder erstellen
 +    - notification_from
 +      - **Datentyp**: String
 +  - Zeitperiode erstellen
 +    - im Reiter "Bereiche" jeden Tag den man benachrichtigt werden will definieren
 +  - Benutzer erstellen
 +    - **Zeitraum**: den vorhin definierten
 +    - **Benachrichtigungen senden**: ja
 +    - **E-Mail**: Mailadresse des Benutzers
 +    - **Zustände**: benötigte wählen
 +    - **Änderungsstypen**: benötigte wählen
 +  - Benachrichtigungsvorlage für Hosts und Services erstellen
 +    - **Felder hinzufügen**: notification_from
 +    - **Benutzer**: den erstellten Benutzer wählen
 +    - **Benachrichtigungskommando**: mail-host-notification bzw. mail-service-notification
 +    - **Benachrichtigungsintervall**: wie oft sollen benachrichtungen bei Ereignissen wiederholt werden
 +    - **Zeitraum**: den zuvor erstellten
 +    - **notification_from**: Absender Mailadresse
 +    - **Zustände**: benötigte wählen
 +    - **Änderungsstypen**: benötigte wählen
 +  - Benachrichtigung für Hosts und Services erstellen
 +    - **Importe**: zuvor erstellte Vorlage für Host/Service
 +    - **Benutzer**: zuvor erstellten Benutzer
 +    - **Anwenden auf**: Hosts bzw. Services
 +    - **Zuweisen wo**: 1. Textfeld: "host.enable_notifications" 2. Operatorfeld: "is true (or set)"
 +
 +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 /opt/docker-compose-icinga
 +docker compose logs -f icinga2</code>
 +===== Graphite =====
 +Mit Graphite kann man Performancedaten der einzelnen Checks grafisch darstellen.
 +Zum einbinden von Graphite folgendes tun.
 +  - Docker Container erstellen <code bash>cd /opt/docker-compose-icinga
 +vi docker-compose.yml</code>
 +    - hier beim Service "icingaweb" diese Zeile wie folgt anpassen <code>icingaweb.enabledModules: director, icingadb, incubator, graphite</code>
 +    - danach folgendes unter den letzten Service einfügen <code>graphite:
 +    container_name: graphite
 +    image: graphiteapp/graphite-statsd
 +    restart: always
 +    ports:
 +      - "50080:80"
 +      - "52003-52004:2003-2004"
 +      - "52023-52024:2023-2024"
 +      - "58125:8125/udp"
 +      - "58126:8126"
 +    hostname: graphite
 +    volumes:
 +      #- ./backup:/opt/backup
 +      #- ./conf/graphite/conf:/opt/graphite/conf
 +      - ./graphite/graphite/storage:/opt/graphite/storage
 +      #- ./conf/webapp/graphite/functions/custom:/opt/graphite/webapp/graphite/functions/custom
 +      #- ./conf/nginx:/etc/nginx
 +      #- ./conf/statsd/config:/opt/statsd/config
 +      #- ./conf/logrotate.d:/etc/logrotate.d
 +      #- ./var/log:/var/log
 +      #- ./var/lib/redis:/var/lib/redis
 +    environment:
 +      - GRAPHITE_TIME_ZONE=Europe/Berlin
 +      - GRAPHITE_DATE_FORMAT=%m/%d
 +      - COLLECTD=1</code>
 +   - Volumeordner für Graphite erstellen <code bash>mkdir -p ./graphite/graphite/storage</code>
 +   - Icinga Konfiguration zum senden von Performancedaten erstellen <code bash>mkdir -p ./icinga2.conf.d/features-enabled</code>
 +     - hier die Datei graphite.conf mit folgendem Inhalt erstellen <code>/**
 + * The GraphiteWriter type writes check result metrics and
 + * performance data to a graphite tcp socket.
 + */
 +
 +object GraphiteWriter "graphite" {
 +  host = "graphite"
 +  port = 2003
 +}</code>
 +   - Graphite Container starten <code bash>docker compose stop && docker compose up -d</code>
 +   - ggf. in IcingaWeb unter Einstellungen (Zahnrad) -> "Modul" das Modul "graphite" einschalten
 +     - im Reiter "Backend" unter "Graphite Web URL" die URL "http://graphite:80/" einfügen
 +   - 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 "http://<DOCKER_HOST_IP>:50080/" kann man direkt auf die Graphite Webseite zugreifen

Webseiten-Werkzeuge

  • Letzte Änderungen
  • Medien-Manager
  • Übersicht

Seiten-Werkzeuge

  • Seite anzeigen
  • Ältere Versionen
  • Links hierher
  • Nach oben

Benutzer-Werkzeuge

  • Anmelden
linux/icinga/docker-stack.1741977013.txt.gz · Zuletzt geändert: 2025/03/14 19:30 von adi
stiziwik

Table of Contents

  • Android
  • Bild-und-video
  • Datenverarbeitung
  • Fahrzeuge
  • Hausautomatisation
  • linux
    • Alix-router
    • Icinga
      • Docker Compose Icinga stack
      • Installation-full
      • Installation-Quick
      • Konfigurationsbeispiele
    • Log-Server
    • Mail
    • Mysql
    • Nagios
    • Owncloud
    • Virtualisierung
    • Webcam
    • Accl Attr
    • Alternativen-System
    • Antivirus-live
    • Anzahl
    • Audacious
    • Audiodateien-umwandeln
    • Avira-Live-Rescue
    • Backupscript
    • Bash
    • Beep-mit-Ringtones
    • Benutzerpassword Deaktivieren
    • Bluetooth
    • Bootvorgang
    • CD-Ripper
    • Clonezilla
    • Coredump
    • Datenrettung
    • Datum Und Uhrzeit
    • dd
    • Desktop-dateien
    • Docker
    • Duplikate
    • Fail2ban
    • Festplatten
    • Fingerprintsensor
    • Gddrescue
    • Geda
    • Genisoimage mkisofs
    • Grub
    • Internetradio
    • Ipod
    • Journalctl
    • Keepass
    • Kernel Bauen
    • Keystore
    • Live-CD erstellen
    • Lnav
    • Lshw-hardware
    • Mailcow
    • Message-of-the-day
    • Midnight Commander
    • Mongodb
    • Nohup, Hintergrund, anhalten und Co
    • Openssl
    • Pakete bauen
    • Paketverwaltung
    • Passwort-Generator
    • Patches
    • Prüfsumme
    • Quota
    • Remote Desktop Verbindung
    • Request Tracker
    • Rsync
    • Samba
    • Scriptschnipsel
    • Serielle-Konsole
    • Smartmontools
    • Sms-gateway
    • Softwareraid
    • Squid
    • SSH
    • Stats
    • Stresstest
    • Strongswan VPN
    • Sudo
    • Supergrub2disk
    • Supervisord
    • Swap
    • Syslog
    • Systemrescue
    • Tftp
    • Thunderbird
    • Umbenennen
    • Unity Fenstermanager
    • Video-streaming
    • Virenscan-script
    • Virtualbox
    • Virtualisierung
    • Vnc-vino
    • Watchdog
    • Webmin
    • Wmctrl
    • Zeitsynchronisation Mit DCF-77 Empfänger
    • Zoneminder
  • Nas
  • Netzwerk
  • PlayGround
  • Programieren
  • Projekte
  • Raspberry Pi
  • sonstiges
  • VDR
  • Web
  • Werkstatt
  • Wiki
  • sidebar-acmenu
  • sidebar-indexmenu
  • sidebar-simplenavi