Server Installation/munin
Aus Opennet
Version vom 10. September 2016, 01:38 Uhr von Lars (Diskussion | Beiträge)
Software für Opennet Monitoring, Allgemeines zum Opennet Dienst siehe Opennet munin
Inhaltsverzeichnis |
Installation
- erzeugt Graphen zum Systemzustand, insbesondere Netztraffic
- Default-Installation ausreichend, Zugriff via Web (apache)
- Require all granted in /etc/apache2/conf-enables/munin.conf aufnehmen
Abfrage von Hosts
Unter /etc/munin/munin-conf.d/ liegen mehrere Dateien, in denen verschiedene 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)
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.
#!/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