Reports
Report extension für RackTables mit Custom Report.
Downloads:
Version 0.3: Racktables Extension (216.82 kB) Aktuelle Version
Installation
Verschiebe den Ordner “extensions” in das “wwwroot” Verzeichnis von racktables.
Mit Racktables 0.19.X
Ändere oder erstelle die Datei “local.php” im Verzeichnis “inc” mit folgendem Inhalt:
<?php # Load server report require_once "extensions/reports/server-report.php"; # Load virtual machine report require_once "extensions/reports/vm-report.php"; # Load switch report require_once "extensions/reports/switch-report.php"; # Load custom report require_once "extensions/reports/custom-report.php"; ?>
oder kopiere die Beispieldatei.
Mit Racktables 0.20.0 oder neuer:
Ändere oder erstelle die Datei “extensions.php” im Verzeichnis “plugins” mit folgendem Inhalt:
<?php # Load server report require_once "../wwwroot/extensions/reports/server-report.php"; # Load virtual machine report require_once "../wwwroot/extensions/reports/vm-report.php"; # Load switch report require_once "../wwwroot/extensions/reports/switch-report.php"; # Load custom report require_once "../wwwroot/extensions/reports/custom-report.php"; ?>
oder kopiere die Beispieldatei.
Screenshots:
Benutzung
Nun in die Racktables Webseite einloggen und “Reports” aufrufen.
Man findet nun vier neue Reiter “Server”, “Virtual machines”, “Switches” und “Custom” im Menü.
Bemerkung: Man kann mehrere Spalten gleichzeitig sortieren durch das gedrückthalten von Shift wärend man auf weitere Spalten in der Kopfzeile klickt!
Modifikationen
Eigene Attribute hinzufügen:
Zuerst sucht man sich die ID seines Attributes. In diesem Beispiel ist es die “10002″. Nun öffnet man zum Beispiel die Datei “vm-report.php” und fügt folgende Teile ein:
[...]
$aResult[$Result['id']]['myValue'] = '';
if ( isset( $attributes['10002']['a_value'] ) )
$aResult[$Result['id']]['myValue'] = $attributes['10002']['a_value'];
[...]
[...]
<th>My Value</th>
[...]
[...]
<td>'.$aRow['myValue'].'</td>
[...]
Ein einfacher Weg, die ID seines Custom Attributes zu finden ist sich den Quelltext (mit dem Browser) der Attribute in der Konfiguration anzuschauen.
Bemerkung: Falls es sich um einen Standartwert handelt und nicht um ein Attribut (Nicht in der Attributliste im Konfigurationsmenü enthalten) kann man den Wert direkt auslesen:
Beispiel mit Asset-Tag:
[...] $aResult[$Result['id']]['sAssetTag'] = $Result['asset_no']; [...] [...] <th>Asset Tag</th> [...] [...] <td>'.$aRow['sAssetTag'].'</td> [...]
Eigene Sortierung:
Ich habe jede Menge Server mit Namen wie vServer1, vServer2, … vServer11, etc. und ich möchte vServer 10 nach vServer2 in meiner Liste haben. Deswegen habe ich eine eigene Sortierung gebaut.
Zuerst erstellt man eine neue Datei mit dem Namen “sorter.js” im JQuery-Verzeichnis mit folgendem Inhalt:
$.tablesorter.addParser ( {
id: 'vserver',
is: function(s) {
return false;
},
format: function(s) {
s = s.replace(/<a\b[^>]*>/i,'');
s = s.replace(/[^0-9]+/g,'');
return s.trim(s);
},
type: 'numeric'
});
Nun öffnet man seine Report Datei wie zum Beispiel “vm-report.php” und fügt folgendes hinzu:
Zuerst den neuen Sorter einfügen:
"echo ' <script type="text/javascript" src="extensions/jquery/sorter.js"/>';"
und unterhalb der Tabelle im Tablesorter JS-Teil:
[...]
headers: {
0: { sorter: "vserver" },
3: { sorter: "ipAddress" }
}
[...]
Dieser Customsorter entfernt den Hyperlink (durch den Report hinzugefügt) und alle Textteile vom Servernamen (nur für die Sortierung) und sortiert den Rest nummerisch.
Farben und Icons für den Report:
Öffne “extensions/jquery/themes/racktables/style.css” und suche nach den Beipielen am Ende der Datei. Wie zum Beispiel diese:
table.tablesorter tbody tr span.object_typeid_4 a {
color:red;
}
Dies ändert die Farbe für alle physikalischen Server (type4) auf rot.
Downloads:
Version 0.3: Racktables Extension (216.82 kB) Aktuelle Version
Plugins
Nagios
Nagios Plugin für Racktables
Download: Racktables Nagios Plugin (102.51 kB)
Die Datei einfach in das Pluginverzeichnis von Racktables kopieren.
$nagios_user = 'nagiosadmin'; $nagios_password = 'nagios'; $nagios_url = 'https://localhost/nagios3';
Diese Variablen müssen ggf. angepasst werden.
Bemerkung: “Common name” in Racktables und “Hostname” in Nagios müssen identisch sein.
Das Plugin benötigt die php curl Erweiterung. (aptitude install php5-curl)
Für Racktables 0.19.XX kopiert man die nagios.php Datei in das “inc” Verzeichnis und fügt folgende Zeile in die “local.php” im “inc” Verzeichnis ein:
require_once "inc/nagios.php";
FQDN anstelle des Hostnamens verwenden:
Ersetze:
[...]
$object = spotEntity ('object', $_REQUEST['object_id']);
[...]
$nagios_url_cgi = str_replace("%%NAGIOS%%", urlencode($object['name']), $nagios_url_cgi);
[...]
durch:
[...]
$attributes = getAttrValues ($_REQUEST['object_id']);
[...]
$nagios_url_cgi = str_replace("%%NAGIOS%%", urlencode($attributes[3]['value']), $nagios_url_cgi);
[...]
Verschiedenes
NDOUtils – has problems
Ein kleines Script, dass Probleme aus einer Nagios NDO Datenbank liest und das has_problems Flag in Racktables setzt:
Racktables Update Problems (10 kB)Einfach herunterladen und entpacken. Warscheinlich möchte man auch einen Cronjob wie diesen anlegen (crontab -e):
*/5 * * * * /path/to/updateProblems.pl
Dieser Cronjob führt das Skript alle 5 Minuten aus.
Funktioniert mit einer normalen Nagios Installation mit NDOUtils oder einer Centreon Installation. Allerdings muss man den Servern in beiden Systemen den selben Namen geben.
Donations
Wenn dir meine Arbeit gefällt und du mich unterstützen möchtest, spende einfach ein paar Euro via Paypal:







