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:10] – [Eigene Checks einbinden] adilinux:icinga:docker-stack [2025/03/21 20:05] (aktuell) – [Graphite] adi
Zeile 609: Zeile 609:
 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 mit diesen Inhalten+  - neues Kommando erstellen
     - Reiter Kommando     - Reiter Kommando
       - **Kommandotyp**: ''Plugin Check Command''       - **Kommandotyp**: ''Plugin Check Command''
Zeile 615: Zeile 615:
       - **Kommando**: ''/custom_data/custom.conf.d/my-plugins/check_qnap2.sh''       - **Kommando**: ''/custom_data/custom.conf.d/my-plugins/check_qnap2.sh''
     - Reiter Arguments     - Reiter Arguments
-      - **Argumentname**: ''-H'' +      - Argument "-H" 
-      - **Beschreibung**: ''Hostaddress'' +        - **Argumentname**: ''-H'' 
-      - ****: '''' +        - **Beschreibung**: ''Hostaddress'' 
-      - ****: '''' +        - **Werttyp**: ''Zeichenkette'' 
-      - ****: '''' +        - **Wert**: ''$qnap_address$'' 
-      - ****: '''' +        - **Position**: ''0'' 
-      - ****: '''' +        - **Bedingungsformat**: ''Icinga-DSL'' 
-      - ****: ''''+        - **Benötigt**: ''Ja'' 
 +      - Argument "-C" 
 +        - **Argumentname**: ''-C'' 
 +        - **Beschreibung**: ''Community'' 
 +        - **Werttyp**: ''Zeichenkette'' 
 +        - **Wert**: ''$qnap_community$'' 
 +        - **Position**: ''1'' 
 +        - **Bedingungsformat**: ''Icinga-DSL'' 
 +        - **Benötigt**: ''Ja'' 
 +      - Argument "-a" 
 +        - **Argumentname**: ''-a'' 
 +        - **Beschreibung**: ''Argument'' 
 +        - **Werttyp**: ''Zeichenkette'' 
 +        - **Wert**: ''$qnap_argument$'' 
 +        - **Position**: ''1'' 
 +        - **Bedingungsformat**: ''Icinga-DSL'' 
 +        - **Benötigt**: ''Ja'' 
 +  - Neue Datenfelder anlegen 
 +    - Datenfeld "qnap_address" 
 +      - **Feldname**: ''qnap_address'' 
 +      - **Beschriftung**: ''qnap_address'' 
 +      - **Datentyp**: ''String'' 
 +      - **Sichtbarkeit**: ''Sichtbar'' 
 +    - Datenfeld "qnap_community" 
 +      - **Feldname**: ''qnap_community'' 
 +      - **Beschriftung**: ''qnap_community'' 
 +      - **Datentyp**: ''String'' 
 +      - **Sichtbarkeit**: ''Versteckt'' 
 +    - Datenfeld "qnap_argument" 
 +      - **Feldname**: ''qnap_argument'' 
 +      - **Beschriftung**: ''qnap_argument'' 
 +      - **Datentyp**: ''String'' 
 +      - **Sichtbarkeit**: ''Sichtbar'' 
 +  - neue Service Vorlage erstellen 
 +    - hier das Check-Kommando "check_qnap2" einfügen 
 +    - Reiter "Felder" 
 +      - hier die Felder "qnap_address" und "qnap_argument" als Pflichtfelder hinzufügen 
 +    - Reiter "Service" 
 +      - das Feld "qnap_address" erhält den Wert "$host.address$" 
 +  - neue Host Vorlage erstellen 
 +    - hier das Feld "qnap_community" hinzufügen 
 +  - neuen Service, z.B. für CpuLoad, anlegen 
 +    - **Importe**: die Service Vorlage die zuvor angelegt wurde 
 +    - **Host**: die Host Vorlage die zuvor angelegt wurde 
 +    - **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.1741975851.txt.gz · Zuletzt geändert: 2025/03/14 19:10 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