Monitoring mit Munin und SNMP

Eine Anleitung wie man Netzwerkgeräte mit Munin überwachen kann. Der Dienst SNMP (Simple Network Management Protocol) dient zum Monitoring von Netzwerkgeräten wie Server, Router, Drucker usw. SNMP läuft auf Port 161 TCP. Diese Anleitung setzt einen korrekt installierten Munin-Server voraus.

Zunächst muss SNMP auf dem zu überwachenden Gerät installiert bzw. enabled werden sodass der Munin-Server mit ihm kommunizieren kann. SNMP Version 2 ist ausreichend, ist allerdings ohne Benutzernamen/Passwort und unverschlüsselt. Man muss lediglich eine Community festlegen.

In dieser Anleitung soll ein Medienserver mit LibreELEC und Hostnamen libreelec.lan mit IP-Adresse 192.168.0.13 mit hinzugefügt werden.

munin.conf

Bei Munin erfolgt die Kommunikation mit SNMP über localhost und nicht direkt über die IP-Adresse des Clients.

vi /etc/munin/munin.conf
[libreelec.lan]
        address 127.0.0.1
        use_node_name no

plugin-conf.d

In diesem Ordner eine Datei anlegen

vi /etc/munin/plugin-conf.d/libreelec.lan
[snmp_libreelec.lan_*]
env.community libreelec
env.port 161
env.ip 192.168.0.13
env.version 2

munin-node-configure

Zuerst nachsehen welche Metriken zur Verfügung stehen

munin-node-configure --snmp libreelec.lan --snmpcommunity libreelec
Plugin                     | Used | Suggestions
------                     | ---- | -----------
snmp__cpuload              | yes  | yes (libreelec.lan)
snmp__df                   | yes  | yes (libreelec.lan)
snmp__df_ram               | yes  | yes (libreelec.lan)
snmp__fc_if_               | no   | no
snmp__fc_if_err_           | no   | no
snmp__if_                  | yes  | yes (libreelec.lan/1 libreelec.lan/2)
snmp__if_err_              | yes  | yes (libreelec.lan/1 libreelec.lan/2)
snmp__if_multi             | yes  | yes (libreelec.lan)
snmp__load                 | yes  | yes (libreelec.lan)
snmp__memory               | yes  | yes (libreelec.lan)
snmp__netapp_diskusage_    | no   | no
snmp__netapp_inodeusage_   | no   | no
snmp__netstat              | yes  | yes (libreelec.lan)
snmp__print_pages          | no   | no
snmp__print_supplies       | no   | no
snmp__processes            | yes  | yes (libreelec.lan)
snmp__rdp_users            | no   | no
snmp__sensors_fsc_bx_fan   | no   | no
snmp__sensors_fsc_bx_temp  | no   | no
snmp__sensors_fsc_fan      | no   | no
snmp__sensors_fsc_temp     | no   | no
snmp__sensors_mbm_fan      | no   | no
snmp__sensors_mbm_temp     | no   | no
snmp__sensors_mbm_volt     | no   | no
snmp__swap                 | yes  | yes (libreelec.lan)
snmp__uptime               | yes  | yes (libreelec.lan)
snmp__users                | yes  | yes (libreelec.lan)
snmp__winload              | yes  | yes (libreelec.lan)
snmp__winmem               | yes  | yes (libreelec.lan)

Symlinks erstellen

munin-node-configure --snmp libreelec.lan --snmpcommunity libreelec -shell
ln -s '/usr/share/munin/plugins/snmp__df' '/etc/munin/plugins/snmp_libreelec.lan_df'
ln -s '/usr/share/munin/plugins/snmp__df_ram' '/etc/munin/plugins/snmp_libreelec.lan_df_ram'
.
.
.

Munin neu starten

service munin-node restart
service munin-node status
 munin-node.service - Munin Node
   Loaded: loaded (/lib/systemd/system/munin-node.service; enabled)
   Active: active (running) since Sun 2021-10-03 18:02:13 CEST; 1min 49s ago
     Docs: man:munin-node(1)
           http://munin.readthedocs.org/en/stable-2.0/reference/munin-node.html
  Process: 12302 ExecStart=/usr/sbin/munin-node $DAEMON_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 12304 (munin-node)
   CGroup: /system.slice/munin-node.service
           └─12304 /usr/bin/perl -wT /usr/sbin/munin-node

Fertig!

 munin-run snmp_libreelec.lan_cpuload
cpu196610.value 15
cpu196611.value 16
cpu196609.value 17
cpu196608.value 8