mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
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:
45
includes/polling/applications/fail2ban.inc.php
Normal file
45
includes/polling/applications/fail2ban.inc.php
Normal 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++;
|
||||
}
|
||||
Reference in New Issue
Block a user