mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Final pieces to the smokeping integration
This commit is contained in:
45
doc/Extensions/Smokeping.md
Normal file
45
doc/Extensions/Smokeping.md
Normal 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
36
scripts/gen_smokeping.php
Executable 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);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user