Dashing-Icinga Dashboard

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

Dashing ist ein auf Sinatra basierendes Framework zur Erstellung von Dashboards mit vorgefertigten oder auch eigenen Widgets, geschrieben in SCSS, HTML und Coffeescript.[1][2]

Diese Vorgehensweise gilt für Ubuntu 14.04 und ebenso für Ubuntu 16.04, es kann mit einer TKmon 2.2 Installation unter Ubuntu 16.04 verwendet werden.

Die Widgets können per Drag & Drop arrangiert und per APIs mit Daten versorgt werden. Dieser Artikel zeigt die Dashing Adaptierung an ein Icinga Backend des Netways Entwicklers Markus Frosch.[3]

Ruby und Bundler installieren

Zuerst werden die erforderlichen Komponenten installiert, um Dashing später ausführen zu können.

$ sudo apt-get install ruby bundler nodejs
$ sudo gem install bundler
Fetching: bundler-1.10.6.gem (100%)
Successfully installed bundler-1.10.6
1 gem installed
Installing ri documentation for bundler-1.10.6...
Installing RDoc documentation for bundler-1.10.6...
  • bundler wird unter /usr/local/bin abgelegt:
$ which bundler
/usr/local/bin/bundler

dashing-icinga Installation

Im nachfolgenden Abschnitt wird gezeigt, wie dashing-icinga installiert und konfiguriert wird.

Klonen des git-Repos

Das Repo wird zuerst in das Homeverzeichnis geklont.

cd ~
$ git clone https://github.com/lazyfrosch/dashing-icinga.git

Konfiguration von dashing-icinga

  • Wechseln Sie dazu in das Verzeichnis dashing-icinga.
cd dashing-icinga
  • Mit dem Kommando bundle wird der ruby bundler zur Installation aller gem-Abhängigkeiten aufgerufen:
dashing-icinga$ bundle
Fetching gem metadata from https://rubygems.org/...........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Installing addressable (2.3.8) 
Installing backports (3.6.7) 
Installing buftok (0.2.0) 
Installing coffee-script-source (1.10.0) 
Installing execjs (2.0.2) 
Installing coffee-script (2.2.0) 
Installing daemons (1.2.3) 
Installing rack (1.5.5) 
Installing thread_safe (0.3.5) 
Installing tzinfo (1.2.2) 
Installing rufus-scheduler (2.0.24) 
Installing sass (3.2.19) 
Installing rack-protection (1.5.3) 
Installing tilt (1.4.1) 
Installing sinatra (1.4.6) 
Installing multi_json (1.11.2) 
Installing rack-test (0.6.3) 
Installing sinatra-contrib (1.4.6) 
Installing hike (1.2.3) 
Installing sprockets (2.10.1) 
Installing eventmachine (1.0.8) 
Installing thin (1.6.4) 
Using thor (0.18.1.20140116) 
Installing dashing (1.3.4) 
Installing unf_ext (0.0.7.1) 
Installing unf (0.1.4) 
Installing domain_name (0.5.25) 
Installing equalizer (0.0.10) 
Installing multipart-post (2.0.0) 
Installing faraday (0.9.2) 
Installing http-cookie (1.0.2) 
Installing http-form_data (1.0.1) 
Installing http_parser.rb (0.6.0) 
Installing http (0.9.8) 
Installing json (1.8.3) 
Installing memoizable (0.4.2) 
Installing naught (1.1.0) 
Installing simple_oauth (0.3.1) 
Installing twitter (5.15.0) 
Using bundler (1.3.5) 
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

config.ru Anpassungen

Kommentieren Sie folgende Parameter am Anfang der config.ru Datei ein und passen Sie die Einträge entsprechend Ihres Icinga-Users an.

Vorher:

  #set :icinga_cgi,  'http://localhost/cgi-bin/icinga/status.cgi'
  #set :icinga_user, 'icingaadmin'
  #set :icinga_pass, 'test123'

Angepasst an die Icinga-Konfiguration:

 set :icinga_cgi,  'http://localhost/cgi-bin/icinga/status.cgi'
 set :icinga_user, 'icingaadmin'
 set :icinga_pass, '<PASSWORD>'

Verschieben in das /usr/local/bin Verzeichnis

Nach der Konfiguration wird das Verzeichnis in diesem Beispiel nach /usr/local/bin verschoben.

$ sudo mv dashing-icinga/ /usr/local/bin/

Starten von dashing-icinga

Abschließend kann das Dashboard mit folgendem Befehl gestartet werden:

/usr/local/bin/dashing-icinga$ dashing start
[...]
Listening on 0.0.0.0:3030, CTRL+C to stop
[...]

Rufen Sie anschließend in einem Browser das Dashboard unter http://<IP-Adresse>:3030 auf.

dashing-icinga Dashboard

init-Skript für dashing

Um Dashing bequem per init-Skript zu steuern, verwenden Sie z.B. das Dashing init Skript des Entwicklers Andrew Southerland.[4] Da beim Test des Skriptes die Pfad-Variable fehlte, wurde $PATH im Script explizit gesetzt.

Das Repo wird geklont und das Init-Script editiert:

tkmon@TKmon:~$ git clone https://gist.github.com/absoutherland/7554137 dashing-init
tkmon@TKmon:~$ cd dashing-init
tkmon@TKmon:~$ sudo vi dashboard

Bei dieser Beispielinstallation sind nachfolgende Parameter so zu setzen:

DASHING_DIR=/usr/local/bin/dashing-icinga
GEM_HOME=/usr/local/bin
PATH=$PATH:/usr/local:/usr/local/bin:/usr/local/sbin
  • Kopieren in das init.d Verzeichnis:
$ sudo cp dashboard /etc/init.d/
  • Ausführbar machen:
/etc/init.d$ sudo chmod +x dashboard
  • Parameter des init-Skriptes:
/etc/init.d/dashboard {start|stop|restart|status|logs}
  • Starten von dashing-icinga:
$ sudo /etc/init.d/dashboard start

Starting Dashing...
Success!
  • Stoppen:
tkmon@TKmon:~$ sudo /etc/init.d/dashboard stop

Killing Dashing...
RIP Dashing
  • Restart:
tkmon@TKmon:~$ sudo /etc/init.d/dashboard restart

Killing Dashing...
Coming back...
Success!
  • Das dashboard init-Skript wird als Service hinzugefügt:
$ sudo update-rc.d dashboard defaults

Konsolenausgaben unter Ubuntu 14.04 (nicht unter Ubuntu 16.04):

[sudo] password for tkmon: 
 Adding system startup for /etc/init.d/dashboard ...
   /etc/rc0.d/K20dashboard -> ../init.d/dashboard
   /etc/rc1.d/K20dashboard -> ../init.d/dashboard
   /etc/rc6.d/K20dashboard -> ../init.d/dashboard
   /etc/rc2.d/S20dashboard -> ../init.d/dashboard
   /etc/rc3.d/S20dashboard -> ../init.d/dashboard
   /etc/rc4.d/S20dashboard -> ../init.d/dashboard
   /etc/rc5.d/S20dashboard -> ../init.d/dashboard

Unter Ubuntu 16.04 können Sie die Services prüfen, indem Sie z.B. in das Verzeichnis /etc/rcd0.d/ wechseln und sich dort mit ls -la den Verzeichnisinhalt anzeigen lassen. Sie werden dort dann einen Eintrag dashboard auffinden.

lrwxrwxrwx   1 root root   19 Sep 12 09:05 K01dashboard -> ../init.d/dashboard

Einzelnachweise

  1. Dashing - The exceptionally handsome dashboard framework (dashing.io]
  2. Icinga Dashboards mit Dashing (netways.de)
  3. Icinga dashboard for Dashing (github.com)
  4. absoutherland's gists (gist.github.com)
Foto Thomas Niedermeier.jpg

Autor: Thomas Niedermeier

Thomas Niedermeier, Abteilung Communications / Knowledge Transfer bei Thomas-Krenn, absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich hier vor allem um das TKwiki. Er ist ein begeisterungsfähiger, technisch interessierter Linux und Mac Nutzer, fährt im Winter gerne Ski und geht im Sommer gern ins Schwimmbad.


Das könnte Sie auch interessieren

Call-Home-Service mit Icinga 2 nutzen
LM Sensors Monitoring Plugin
LSI RAID Monitoring Plugin unter Windows Server 2012 einrichten