Server Installation/munin: Unterschied zwischen den Versionen
Aus Opennet
Lars (Diskussion | Beiträge) K (Formulierung) |
Lars (Diskussion | Beiträge) (Installation detaillierter beschrieben) |
||
Zeile 1: | Zeile 1: | ||
− | Software für | + | Software für das Monitoring von Hosts im Opennet (Verkehr, AP-Zustände, ...). Allgemeines zum Opennet Dienst siehe [[Opennet munin]]. |
== Installation == | == Installation == | ||
− | + | Munin zusammen mit rrdcached einrichten, um die IO-Last zu reduzieren: <pre>apt install munin rrdcached</pre> | |
− | + | Graphen werden on-demand (beim Abruf via CGI) erzeugt. | |
− | + | ||
− | == Abfrage von Hosts == | + | === Munin === |
+ | * die munin-spezifischen Direktiven sind unter ''/etc/apache2/conf-available/opennet-munin.conf'' zu finden: | ||
+ | <pre> | ||
+ | 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 | ||
+ | </pre> | ||
+ | * 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" | ||
+ | |||
+ | == 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. | Unter ''/etc/munin/munin-conf.d/'' liegen mehrere Dateien, in denen die verschiedenen Hosts aufgeführt sind, die überwacht werden sollen. | ||
− | === Server === | + | ==== Server ==== |
* für Server könnte es dieser Block in der Datei ''server.conf'' sein: | * für Server könnte es dieser Block in der Datei ''server.conf'' sein: | ||
<pre> | <pre> | ||
Zeile 23: | Zeile 67: | ||
* der üblichste Grund für ein Fehlschlagen ist die fehlende ''allow''-Zeile in der ''munin-node.conf'' oder der fehlende munin-node-Neustart | * 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 === | + | ==== Access-Points ==== |
* in der Datei ''/etc/munin/munin-conf.d/ap.conf'' sind alle aktuell überwachten APs aufgeführt | * 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 | ** die Überwachung wird durch Installation des ''on-monitoring''-Pakets aktiviert |
Version vom 10. September 2016, 14:08 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"
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)
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