diff options
author | mh <mh@immerda.ch> | 2015-03-15 12:27:18 +0100 |
---|---|---|
committer | mh <mh@immerda.ch> | 2015-03-15 12:50:18 +0100 |
commit | 3cf7362f383d2cfa705c3897f6199087c5ddb033 (patch) | |
tree | 5724c1d74f8745bbc6ad981b0c957af7420d412d /files/munin/tor_openfds | |
parent | 19a44ce97f59633002d844e2b37f2b26b2f1cfbc (diff) |
exchange connections munin plugin
tor_connections started blocking and I wasn't able to find the root
cause for it nor an updated version of the plugin.
This also blocked munin itself, which had the issue that the node
disappeared within munin.
Based on https://lists.torproject.org/pipermail/tor-talk/2006-June/010486.html
it seems to more or less match the open filedescriptors and hence
we monitor rather this than rely on a unmanageable plugin.
The only drawback is that this must run as root, as non-root users
can't read the filedescriptors from proc.
Diffstat (limited to 'files/munin/tor_openfds')
-rw-r--r-- | files/munin/tor_openfds | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/files/munin/tor_openfds b/files/munin/tor_openfds new file mode 100644 index 0000000..69f63bc --- /dev/null +++ b/files/munin/tor_openfds @@ -0,0 +1,32 @@ +#!/usr/bin/perl -w +# https://lists.torproject.org/pipermail/tor-talk/2006-June/010486.html + +use strict; + +# Script to monitor the amount of FDs used by +# the Tor process (var/run/tor/tor.pid) + +if ($ARGV[0] and $ARGV[0] =~ /^\s*config\s*$/i) +{ + print "graph_title Open file descriptors for Tor\n"; + print "graph_args --base 1000 -l 0\n"; + print "graph_vlabel open FDs\n"; + print "graph_category network\n"; + print "count.label TorFDs\n"; + exit 0; +} + +open (PID, "/var/run/tor/tor.pid") or exit 1; +my $pid = <PID>; +close PID; +chomp $pid; + +$pid =~ /^[0-9]+$/ or exit 1; + +opendir (FDS, "/proc/$pid/fd") or exit 1; +my @fds = readdir(FDS); +closedir FDS; + +my $count = scalar @fds - 2; + +print "count.value $count\n"; |