Server Installation/munin: Unterschied zwischen den Versionen

Aus Opennet
Wechseln zu: Navigation, Suche
(Installation detaillierter beschrieben)
(Skript in Anhang verschoben)
Zeile 48: Zeile 48:
 
* Rechte und Timing in ''/etc/default/rrdcached'':
 
* Rechte und Timing in ''/etc/default/rrdcached'':
 
  OPTS="-w 1800 -z 1800 -f 3600 -s munin -m 660 -l unix:/var/run/rrdcached.sock -j /var/lib/rrdcached/journal/ -F -b /var/lib/munin -B"
 
  OPTS="-w 1800 -z 1800 -f 3600 -s munin -m 660 -l unix:/var/run/rrdcached.sock -j /var/lib/rrdcached/journal/ -F -b /var/lib/munin -B"
 +
 +
=== AP-Listen-Aktualisierung ===
 +
Regelmäßig läuft ein Skript, das alle APs mit laufendem munin-Dienst ermittelt und daraus eine Konfigurationsdatei für munin erzeugt. Somit müssen die APs lediglich mit munin ausgestattet werden (Paket-Installation ''on-monitoring''), ohne dass eine weitere Interaktion mit dem munin-Server erforderlich ist.
 +
 +
* Skript unter [[:Datei:munin-oni-update-hosts|/usr/local/bin/munin-oni-update-hosts]] ablegen
 +
* Cron-Jobs unter ''/etc/cron.d/munin-oni-update'' eintragen:
 +
<pre>
 +
*/10 *  * * *  root    /usr/local/bin/munin-oni-update-hosts update-unused
 +
34 4    * * *  root    /usr/local/bin/munin-oni-update-hosts update-all && /usr/local/bin/munin-oni-update-hosts remove-outdated
 +
</pre>
  
 
== Betrieb ==
 
== Betrieb ==
Zeile 74: Zeile 84:
 
* alle APs, die in den üblichen Netzwerkbereichen (192.168.[123].0/24) erreichbar sind, werden automatisch erfasst, sofern auf ihnen ein munin-Dienst läuft
 
* alle APs, die in den üblichen Netzwerkbereichen (192.168.[123].0/24) erreichbar sind, werden automatisch erfasst, sofern auf ihnen ein munin-Dienst läuft
 
** Test: ''telnet 192.168.x.y munin'' (oder mit ''netcat'')
 
** Test: ''telnet 192.168.x.y munin'' (oder mit ''netcat'')
 
== Ressourcen ==
 
=== Automatische Aktualisierung der AP-Listen ===
 
Um eine interaktionsfreie Überwachung neuer APs zu ermöglichen, erstellt das folgende Skript regelmäßig eine Host-Liste für munin anhand der aktuell erreichbaren munin-tauglichen APs.
 
<pre>
 
#!/bin/sh
 
#
 
# Erstelle eine munin-Host-Liste (Teil einer munin-Konfiguration) basierend auf der Erreichbarkeit
 
# von erreichbaren munin-node-Gegenstellen in einem definierten Netzwerk-Bereich.
 
# Somit koennen alle Opennet-Knoten mit aktiviertem munin automatisch ueberwacht werden, ohne dass
 
# munin-update aufgrund nicht-erreichbarer Hosts zu viel Zeit benoetigt.
 
#
 
# Folgende cron-Jobs sind empfehlenswert:
 
#
 
#  */10 *      * * *  root    /usr/local/bin/munin-oni-update-hosts update-missing
 
#  34 4        * * *  root    /usr/local/bin/munin-oni-update-hosts update-all && /usr/local/bin/munin-oni-update-hosts remove-outdated
 
#
 
 
set -eu
 
 
NETWORKS="192.168.1.0/24 192.168.2.0/24 192.168.3.0/24"
 
MUNIN_HOST_FILE=/etc/munin/munin-conf.d/ap.conf
 
EXPIRE_DAYS=30
 
TIMESTAMP_DIR=/var/lib/munin-oni-host-timestamps
 
NET_PREFIX="192.168."
 
 
 
update_hosts_timestamps() {
 
        nmap -T insane --min-parallelism 60 --max-parallelism 300 -p munin -oG - "$@" $NETWORKS \
 
                | awk '{ if ($5 == "4949/open/tcp//munin///") print $2; }' \
 
                | while read host; do touch "$TIMESTAMP_DIR/$host"; done
 
}
 
 
 
update_munin_files() {
 
        local name
 
        (
 
                echo "# ACHTUNG: dieses Skript wird regelmaessig via cron-Job durch $0 ueberschrieben"
 
                echo
 
                ls "$TIMESTAMP_DIR" | while read host; do
 
                        name="${host#$NET_PREFIX}"
 
                        echo "[ap;AP$name]"
 
                        echo "  address ${name}.aps.on"
 
                        echo "  use_node_name yes"
 
                        echo
 
                done
 
        ) >"${MUNIN_HOST_FILE}.neu"
 
        mv "${MUNIN_HOST_FILE}.neu" "$MUNIN_HOST_FILE"
 
}
 
 
 
ACTION="${1:-help}"
 
 
mkdir -p "$TIMESTAMP_DIR"
 
case "$ACTION" in
 
        update-all)
 
                update_hosts_timestamps
 
                update_munin_files
 
                ;;
 
        update-unused)
 
                tmp_file=$(tempfile)
 
                ls "$TIMESTAMP_DIR" >"$tmp_file"
 
                update_hosts_timestamps "--excludefile=$tmp_file"
 
                rm -f "$tmp_file"
 
                update_munin_files
 
                ;;
 
        remove-outdated)
 
                find "$TIMESTAMP_DIR" -type f -maxdepth 1 -mtime "+$EXPIRE_DAYS" -delete
 
                update_munin_files
 
                ;;
 
        help|--help)
 
                echo "Syntax:  $0  { update-all | update-unused | remove-outdated }"
 
                echo
 
                ;;
 
        *)
 
                "$0" help >&2
 
                exit 1
 
                ;;
 
esac
 
</pre>
 
  
  
 
[[Kategorie:Server]]
 
[[Kategorie:Server]]

Version vom 10. September 2016, 14:14 Uhr

Software für das Monitoring von Hosts im Opennet (Verkehr, AP-Zustände, ...). Allgemeines zum Opennet Dienst siehe Opennet munin.

Inhaltsverzeichnis

Installation

Munin zusammen mit rrdcached einrichten, um die IO-Last zu reduzieren:
apt install munin rrdcached

Graphen werden on-demand (beim Abruf via CGI) erzeugt.

Munin

  • die munin-spezifischen Direktiven sind unter /etc/apache2/conf-available/opennet-munin.conf zu finden:
Alias   /munin/static   /var/cache/munin/www/static
RedirectMatch ^/(munin)?$       /munin/
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
ScriptAlias /munin-cgi/munin-cgi-html /usr/lib/munin/cgi/munin-cgi-html
ScriptAlias /munin /usr/lib/munin/cgi/munin-cgi-html

<Directory /var/cache/munin/www/>
        Require all granted
        Options None
        ExpiresActive On
        ExpiresDefault M310
</Directory>

<Directory /usr/lib/munin/cgi>
        Require all granted
        Options +ExecCGI
        SetHandler cgi-script
</Directory>

<Location /munin-cgi/static>
        Options -ExecCGI
        SetHandler None
</Location>

# Graphen/HTML-Caching
CacheEnable     disk /munin
CacheRoot       /var/cache/apache2/mod_cache_disk
CacheDirLevels  2
CacheDirLength  1
# fuer gemeinsamen Cache aller ServerAlias-Namen
CacheKeyBaseURL "http://howmei.opennet-initiative.de/"
# munin setzt fuer die Graphen "expire"-Header, jedoch nicht fuer die html-Seiten (auch dynamisch erzeugt)
ExpiresActive On
ExpiresByType text/html A900
  • die obige Datei ist via Include in allen site-Definitionen einzutragen

rrdcached

  • Rechte und Timing in /etc/default/rrdcached:
OPTS="-w 1800 -z 1800 -f 3600 -s munin -m 660 -l unix:/var/run/rrdcached.sock -j /var/lib/rrdcached/journal/ -F -b /var/lib/munin -B"

AP-Listen-Aktualisierung

Regelmäßig läuft ein Skript, das alle APs mit laufendem munin-Dienst ermittelt und daraus eine Konfigurationsdatei für munin erzeugt. Somit müssen die APs lediglich mit munin ausgestattet werden (Paket-Installation on-monitoring), ohne dass eine weitere Interaktion mit dem munin-Server erforderlich ist.

*/10 *  * * *   root    /usr/local/bin/munin-oni-update-hosts update-unused
34 4    * * *   root    /usr/local/bin/munin-oni-update-hosts update-all && /usr/local/bin/munin-oni-update-hosts remove-outdated

Betrieb

Abfrage von Hosts

Unter /etc/munin/munin-conf.d/ liegen mehrere Dateien, in denen die verschiedenen Hosts aufgeführt sind, die überwacht werden sollen.

Server

  • für Server könnte es dieser Block in der Datei server.conf sein:
[<standort>;<servername>]
    address <servername>.on
    use_node_name yes
  • ein paar Minuten später dürfte der neue Rechner im munin-Web-Interface auf Server/howmei auftauchen: https://monitor.opennet-initiative.de/
  • falls es nicht klappt, dann simuliere eine Datenabfrage von howmei aus in Richtung des zu überwachenden Servers (mit telnet oder netcat):
telnet <servername>.on munin
  • der üblichste Grund für ein Fehlschlagen ist die fehlende allow-Zeile in der munin-node.conf oder der fehlende munin-node-Neustart

Access-Points

  • in der Datei /etc/munin/munin-conf.d/ap.conf sind alle aktuell überwachten APs aufgeführt
    • die Überwachung wird durch Installation des on-monitoring-Pakets aktiviert
    • alternativ: muninlite installieren und xinetd aktivieren
  • diese Datei wird automatisiert erstellt (siehe unten) - manuelle Änderungen werden also regelmäßig überschrieben
  • alle APs, die in den üblichen Netzwerkbereichen (192.168.[123].0/24) erreichbar sind, werden automatisch erfasst, sofern auf ihnen ein munin-Dienst läuft
    • Test: telnet 192.168.x.y munin (oder mit netcat)
Meine Werkzeuge
Namensräume

Varianten
Aktionen
Start
Opennet
Kommunikation
Karten
Werkzeuge