Zum Inhalt springen

Server Installation/munin: Unterschied zwischen den Versionen

Aus Opennet
Inhalt gelöscht Inhalt hinzugefügt
Skript in Anhang verschoben
MathiasMahnke (Diskussion | Beiträge)
 
(9 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 6: Zeile 6:


=== Munin ===
=== Munin ===
* die munin-spezifischen Direktiven sind unter ''/etc/apache2/conf-available/opennet-munin.conf'' zu finden:
* die munin-spezifischen Direktiven sind unter ''/etc/apache2/...'' zu finden:
<pre>
<pre>
Alias /munin/static /var/cache/munin/www/static
DocumentRoot /var/cache/munin/www
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/>
<Directory /var/cache/munin/www>
Require all granted
Require all granted
Options None
Options None
ExpiresActive On
ExpiresDefault M310
</Directory>
</Directory>


<Directory /usr/lib/munin/cgi>
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
⚫
<Location /munin-cgi/munin-cgi-graph>
Require all granted
Require all granted
<IfModule mod_fcgid.c>
Options +ExecCGI
SetHandler cgi-script
SetHandler fcgid-script
</Directory>
</IfModule>
<IfModule !mod_fcgid.c>

⚫
SetHandler cgi-script
⚫
<Location /munin-cgi/static>
Options -ExecCGI
</IfModule>
⚫
SetHandler None
</Location>
</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>
</pre>
* die obige Datei ist via ''Include'' in allen site-Definitionen einzutragen
* die obige Datei ist via ''Include'' in allen site-Definitionen einzutragen
* einen cron-Job zur Beräumung alter rrd- und png-Dateien anlegen:
<pre>
18 5 * * 3 find /var/lib/munin -type f -mtime +365 -delete
</pre>


=== rrdcached ===
=== rrdcached ===
Zeile 52: Zeile 39:
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.
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
* Skript unter [[Media:munin-oni-update-hosts.sh|/usr/local/bin/munin-oni-update-hosts]] ablegen
* Cron-Jobs unter ''/etc/cron.d/munin-oni-update'' eintragen:
* Cron-Jobs unter ''/etc/cron.d/munin-oni-update'' eintragen:
<pre>
<pre>
*/10 * * * * root /usr/local/bin/munin-oni-update-hosts update-unused
*/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
34 4 * * * root /usr/local/bin/munin-oni-update-hosts update-all && /usr/local/bin/munin-oni-update-hosts remove-outdated
</pre>

=== E-Mail Alarmierung für Server ===

* Mail Werkzeug installieren per ''apt install bsd-mailx''
* Konfiguration unter ''/etc/munin/munin.conf.d/_mail.conf'' ablegen
<pre>
contact.<mailname>.command mail -s "[${var:group};${var:host}] -> ${var:graph_title} ->
warnings: ${var:wfields} /
criticals: ${var:cfields} /
unknowns: ${var:ufields}" <mailaddress>@opennet-initiative.de
[server;]
contacts <mailname>
[ap;]
contacts no
</pre>
</pre>


Zeile 73: Zeile 75:
* falls es nicht klappt, dann simuliere eine Datenabfrage von howmei aus in Richtung des zu überwachenden Servers (mit ''telnet'' oder ''netcat''):
* falls es nicht klappt, dann simuliere eine Datenabfrage von howmei aus in Richtung des zu überwachenden Servers (mit ''telnet'' oder ''netcat''):
<pre>
<pre>
telnet <servername>.on munin
netcat <servername>.on munin
</pre>
</pre>
* 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
Zeile 85: Zeile 87:
** Test: ''telnet 192.168.x.y munin'' (oder mit ''netcat'')
** Test: ''telnet 192.168.x.y munin'' (oder mit ''netcat'')


==== Einsicht in die Munin Datenbank / Schwellwerte ====

* die Inhalte der einzelnen Checks und ihren aktuellen Schwellwerten je Plugin sind abrufbar unter
# grep "maki.*avgwrwait.warning" /var/lib/munin/datafile
server;maki:diskstats_latency.mapper_backup_storage.avgwrwait.warning 0:3
[..]
* daraus können in ''/etc/munin/munin-conf.d/'' neue Schwellwerte erzeugt und hinterlegt werden


[[Kategorie:Server]]
[[Kategorie:Server]]

Aktuelle Version vom 8. Februar 2019, 02:53 Uhr

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

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/... zu finden:
DocumentRoot /var/cache/munin/www

<Directory /var/cache/munin/www>
        Require all granted
        Options None
</Directory>

ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
        Require all granted
	<IfModule mod_fcgid.c>
	    SetHandler fcgid-script
	</IfModule>
        <IfModule !mod_fcgid.c>
            SetHandler cgi-script
        </IfModule>
</Location>
  • die obige Datei ist via Include in allen site-Definitionen einzutragen
  • einen cron-Job zur Beräumung alter rrd- und png-Dateien anlegen:
18 5 * * 3      find /var/lib/munin -type f -mtime +365 -delete

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

E-Mail Alarmierung für Server

  • Mail Werkzeug installieren per apt install bsd-mailx
  • Konfiguration unter /etc/munin/munin.conf.d/_mail.conf ablegen
contact.<mailname>.command mail -s "[${var:group};${var:host}] -> ${var:graph_title} ->
                             warnings: ${var:wfields} /
                             criticals: ${var:cfields} /
                             unknowns: ${var:ufields}" <mailaddress>@opennet-initiative.de
[server;]
  contacts <mailname>
[ap;]
  contacts no

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):
netcat <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)

Einsicht in die Munin Datenbank / Schwellwerte

  • die Inhalte der einzelnen Checks und ihren aktuellen Schwellwerten je Plugin sind abrufbar unter
# grep "maki.*avgwrwait.warning" /var/lib/munin/datafile
server;maki:diskstats_latency.mapper_backup_storage.avgwrwait.warning 0:3
[..]
  • daraus können in /etc/munin/munin-conf.d/ neue Schwellwerte erzeugt und hinterlegt werden