RenWal / fritzbox-munin-fast

A faster & cleaner collection of munin plugins to monitor your AVM FRITZ!Box router
GNU General Public License v2.0
7 stars 1 forks source link
fritzbox munin-plugins

Munin Plugins for FritzBox

A collection of munin plugins to monitor your AVM FRITZ!Box router. The scripts have been developed using a FRITZ!Box 7590 running FRITZ!OS 7.50 and a FRITZ!WLAN Repeater 1750E running FRITZ!OS 7.27.

If you are using the scripts on a different FRITZ!Box model please let me know by

These python scripts are Munin plugins for monitoring the FRITZ!Box router by AVM.

Purpose of this Fork

The scripts are build upon the original fritzbox-munin with the goal to make use of the modern APIs that FRITZ!OS 7 provides.
The main differences to the original version are:

Requirements

Available Plugins

Connection Uptime

Plugin: fritzbox_connection_uptime.py
Shows the WAN connection uptime.
Connection Uptime

DSL Errors

Plugin: fritzbox_dsl.py
Multigraph plugin, showing:

CPU & Memory

Plugin: fritzbox_ecostat.py
Multigraph plugin, showing:

Smart Home Temperature

Plugin: fritzbox_smart_home_temperature.py
Smart Home Temperature

Energy

Plugin: fritzbox_energy.py
Multigraph plugin, showing:

Link Saturation

Plugin: fritzbox_link_saturation.py
Multigraph plugin, showing saturation of WAN uplink and downlink by QoS priority

Traffic

Plugin: fritzbox_traffic.py
Similar to fritzbox_link_saturation, but single-graph and without QoS monitoring.

Wifi

Plugin: fritzbox_wifi_load.py
Multigraph plugin, showing for 2.4GHz and 5GHz

Installation & Configuration

  1. Pre-requisites for the fritzbox_traffic and fritzbox_connection_uptime plugins are the fritzconnection and requests package. To install run

    pip install -r requirements.txt
  2. Make sure the FRITZ!Box has UPnP status information enabled. (web interface: Home Network > Network > Network Settings > Universal Plug & Play (UPnP))

  3. Copy all the scripts from src/ folder to /usr/share/munin/plugins

  4. (optional) If you want to connect to FRITZ!Box using SSL, download the Fritz certificate (web interface: Internet > Freigaben > FritzBox Dienste > Zertifikat > Zertifikat herunterladen) and save it to /etc/munin/box.cer.

  5. Create entry in /etc/munin/plugin-conf.d/munin-node:

    [fritzbox_*]
    env.fritzbox_password <fritzbox_password>
    env.fritzbox_user <fritzbox_user>
    env.fritzbox_use_tls true
    host_name fritzbox

    See the plugin files for plugin-specific configuration options.

  6. For each plugin you want to activate, create a symbolic link to /etc/munin/plugins, e.g.:

    ln -s fritzbox_dsl.py /etc/munin/plugins/fritzbox_dsl.py
  7. Restart the munin-node daemon: service munin-node restart.

  8. Done. You should now start to see the charts on the Munin pages!

Localization

The fritzbox_energy script depends on the language selected in your FRITZ!Box. Currently, two locales are supported:

  1. German: de (default)
  2. English: en

You can change the used locale by setting an environment variable in your plugin configuration:

env.locale en

Different hosts for the FRITZ!Box and your system

You can split the graphs of your FRITZ!Box from the localhost graphs by following the next steps:

  1. Use the following as your host configuration in /etc/munin/munin.conf

    [home.yourhost.net;server]
        address 127.0.0.1
        use_node_name yes
    
    [home.yourhost.net;fritzbox]
        address 127.0.0.1
        use_node_name no
  2. Restart your munin-node: service munin-node restart

Testing

To test a plugin use

munin-run --debug fritzbox_connection_uptime.py