Dashing-Icinga Dashboard

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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
</source>

Bei dieser Beispielinstallation sind nachfolgende Parameter so zu setzen:
<pre>
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

Foto Thomas Niedermeier.jpg

Autor: Thomas Niedermeier

Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates.

Icon-Twitter.png 

Das könnte Sie auch interessieren

Abfrage von SNMP-Daten mit snmpget und snmpwalk
Clamscan Monitoring Plugin
Linux Software RAID Monitoring Plugin