Repository
Munin (contrib)
Last change
2020-08-25
Graph Categories
Family
auto
Capabilities
Keywords
Language
Ruby

moblock_connections

Sadly there is no documentation for this plugin.

#!/usr/bin/env ruby

=begin

Plugin to monitor the number of connections blocked by moblock.

Requirements:

      Moblock up and running with generated log files going to /var/log/moblock

Parameters supported:

      config
      autoconf

Configurable variables

      logfile  - Override default moblock logfile

Magic markers

#%# family=auto
#%# capabilities=autoconf

=end

#
# Initialize vars
#
$logfile = ENV['logfile'] || '/var/log/moblock.log'

#
# Configure generated graph
#
def config
  puts 'graph_args --base 1000 -r --lower-limit 0'
  puts 'graph_title Moblock'
  puts 'graph_vlabel Blocked Connections'
  puts 'graph_category fw'
  puts 'graph_info This graph shows the number of connections blocked by Moblock'

  puts 'blocked_in.label Blocked In'
  puts 'blocked_in.draw LINE1'
  puts 'blocked_in.info Number of blocked incoming connections'
  puts 'blocked_in.type GAUGE'

  puts 'blocked_out.label Blocked Out'
  puts 'blocked_out.draw LINE1'
  puts 'blocked_out.info Number of blocked outgoing connections'
  puts 'blocked_out.type GAUGE'

  puts 'blocked_total.label Total Blocked'
  puts 'blocked_total.draw LINE1'
  puts 'blocked_total.info Total Number of blocked connections'
  puts 'blocked_total.type GAUGE'
end

#
# Grep moblock logs for stats
#
def fetch(_debug = false)
  num_in = `cat #{$logfile} | grep --extended-regexp 'IN: ' | wc -l`
  num_out = `cat #{$logfile} | grep --extended-regexp 'OUT: ' | wc -l`
  num_total = num_in.to_i + num_out.to_i

  puts "blocked_in.value #{num_in}"
  puts "blocked_out.value #{num_out}"
  puts "blocked_total.value #{num_total}"
end

#
# If moblock executable on path then allow autoconfiguration
#
def autoconf
  moblock_path = `which moblock`
  if moblock_path.index('moblock')
    puts 'yes'
  else
    puts 'no'
  end
end

#
# Handle command line args
#
case ARGV.first
when 'config'
  config
when 'debug'
  fetch true
when 'autoconf'
  autoconf
else
  fetch
end