Final pieces to the smokeping integration

This commit is contained in:
laf
2015-07-07 20:24:09 +01:00
parent c8232887d3
commit 0b30d18733
2 changed files with 81 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
# Smokeping integration
We currently have two ways to use Smokeping with LibreNMS, the first is using the included script generator to generate the config for Smokeping. The
second is to utilise an existing Smokeping setup.
### Included Smokeping script
To use this, please add something similar to your smokeping config file:
```bash
@include /opt/smokeping/etc/librenms.conf
```
Then you need to generate the config file (maybe even add a cron to schedule this in and reload smokeping). We've assumed a few locations for smokeping, the config file you want
to call it and where LibreNMS is:
```bash
cd /opt/librenms/scripts/
php ./gen_smokeping.php > /opt/smokepgin/etc/librenms.conf
/opt/smokeping/bin/smokeping --reload
```
Sample cron:
```bash
15 0 * * * root cd /opt/librenms/scripts && php ./gen_smokeping.php > /opt/smokepgin/etc/librenms.conf && /opt/smokeping/bin/smokeping --reload >> /dev/null 2>&1
```
Now configure LibreNMS (make sure you point dir to your smokeping data directory:
```php
$config['smokeping']['dir'] = '/opt/smokeping/data';
$config['smokeping']['integration'] = true;
```
### Standard Smokeping
This is quite simple, just point your dir at the smokeping data directory - please be aware that all RRD files need to be within this dir and NOT sub dirs:
```php
$config['smokeping']['dir'] = '/opt/smokeping/data';
$config['own_hostname']
```
You should now see a new tab in your device page called ping.

36
scripts/gen_smokeping.php Executable file
View File

@@ -0,0 +1,36 @@
<?php
/*
* LibreNMS
*
* Copyright (c) 2015 Søren Friis Rosiak <sorenrosiak@gmail.com>
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*/
include_once("../config.php");
include_once("../includes/defaults.inc.php");
include_once("../includes/definitions.inc.php");
include_once("../includes/functions.inc.php");
?>
menu = Top
title = Network Latency Grapher
<?php
foreach (dbFetchRows("SELECT `type` FROM `devices` WHERE `ignore` = 0 AND `disabled` = 0 AND `type` != '' GROUP BY `type`") as $devices) {
echo ("+ " . $devices['type'] . PHP_EOL);
echo ("menu = " . $devices['type'] . PHP_EOL);
echo ("title = " . $devices['type'] . PHP_EOL);
foreach (dbFetchRows("SELECT `hostname` FROM `devices` WHERE `type` = ? AND `ignore` = 0 AND `disabled` = 0", array($devices['type'])) as $devices) {
//Dot needs to be replaced, since smokeping doesn't accept it at this level
echo("++ " . str_replace(".","_",$devices['hostname']) . PHP_EOL);
echo("menu = " . $devices['hostname'] . PHP_EOL);
echo("title = " . $devices['hostname'] . PHP_EOL);
echo("host = " . $devices['hostname'] . PHP_EOL . PHP_EOL);
}
}