feature: add fail2ban application support (#5924)

* add single pool based poller for php-fpm

* add the page for php-fpm

* add graph for php-fpm

* I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md.

* use named OID as suggest by @laf

* document PHP-FPM monitoring

* link it in the index

* clean up the named oid

* add how to grab the script in question

* add f2b poller

* add f2b app page

* add f2b graph

* add fail2ban notes

* minor formatting cleanup

* ...more formatting cleanup

* rename it so it can be called via the app page

* Revert "rename it so it can be called via the app page"

This reverts commit 0bde88a038.

* *rename it so it can be called via the apps page
*setup the apps page to call it

* renamed the graph

* now include fail2ban in the apps properly

* correct the wget command so it does not stomp on phpfpm-sp

* update the fail2ban poller for the newest fail2ban script and now build multiple RRDs

* update for now graphing firewalled and banned

* update fail2ban docs to match the newest snmpd extend method

* search automatically for jails and graph them

* graphs the currently banned for a fail2ban jail

* change the tital of the graph for the total banned to make it more descriptive

* Add a explanation of the two variables in the total graph.

* misc. white space cleans ups

* misc. white space cleanup

* minor white space cleanup

* correct descr lenght

* correct descr lenght

* Update fail2ban.inc.php

* Use rrd_name properly

* note the cache file bits

* make caching optional and note why

* Update to new RrdDefinition class

* And the use statement ;/

* Messed the second rrd_def

* correct two minor errors that did not seem to be causing issues

* don't use $vars as per pull #5994

* don't use $vars as per pull #5994

* fix jails graphs

* Remove loops and temp variables

* whitespace

* Change graph so we don't get fractions
This commit is contained in:
VVelox
2017-02-24 11:50:33 -06:00
committed by Tony Murray
parent fdb0656c17
commit 6cf5add528
6 changed files with 199 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
<?php
use LibreNMS\RRD\RrdDefinition;
$name = 'fail2ban';
$app_id = $app['app_id'];
$options = '-O qv';
$mib = 'NET-SNMP-EXTEND-MIB';
$oid = 'nsExtendOutputFull.8.102.97.105.108.50.98.97.110';
$f2b = snmp_walk($device, $oid, $options, $mib);
$bannedStuff = explode("\n", $f2b);
$banned=$bannedStuff[0];
$firewalled=$bannedStuff[1];
$rrd_name = array('app', $name, $app_id);
$rrd_def = RrdDefinition::make()
->addDataset('banned', 'GAUGE', 0)
->addDataset('firewalled', 'GAUGE', 0);
$fields = array(
'banned' =>$banned,
'firewalled' => $firewalled,
);
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
data_update($device, 'app', $tags, $fields);
$int=2;
while (isset($bannedStuff[$int])) {
list( $jail, $banned )=explode(" ", $bannedStuff[$int]);
if (isset($jail) && isset($banned)) {
$rrd_name = array('app', $name, $app_id, $jail);
$rrd_def = RrdDefinition::make()->addDataset('banned', 'GAUGE', 0);
$fields = array('banned' =>$banned);
$tags = array('name' => $name, 'app_id' => $app_id, 'rrd_def' => $rrd_def, 'rrd_name' => $rrd_name);
data_update($device, 'app', $tags, $fields);
}
$int++;
}