Munin plugin to render various values taken from the a tor daemon.
Requires the stem library (https://stem.torproject.org/).
Resolve dependencies for example by using pip:
pip install -r requirements.txt
ln -s /usr/share/munin/plugins/tor_ /etc/munin/plugins/tor_connections
ln -s /usr/share/munin/plugins/tor_ /etc/munin/plugins/tor_traffic
ln -s /usr/share/munin/plugins/tor_ /etc/munin/plugins/tor_dormant
ln -s /usr/share/munin/plugins/tor_ /etc/munin/plugins/tor_countries
Create a hashed password:
$ tor --hash-password MyVeryStrongPassword
Add the hashed password to /etc/tor/torrc and reload Tor:
HashedControlPassword 16:<long_hex_string>
Create /etc/munin/plugin-conf.d/tor_
[tor_*]
env.torpassword MyVeryStrongPassword
By default, the plugin connects to Tor using TCP on port 9051. This can be changed by setting env.port.
The plugin can also connect using a socket file. This is done by setting env.connectmethod to 'socket'. The default path for the socket file is /var/run/tor/control, but it can be changed using env.socket.
You can query infos from the tor daemon via its GETINFO¹ command. The get_info.py script helps you to look up the return values/format quickly, to see if the desired information can be efficiently extracted.
[1] 3.9 GETINFO - https://gitweb.torproject.org/torspec.git/blob/HEAD:/control-spec.txt