Dashing-Icinga Dashboard
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.
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
- ↑ Dashing - The exceptionally handsome dashboard framework (dashing.io]
- ↑ Icinga Dashboards mit Dashing (netways.de)
- ↑ Icinga dashboard for Dashing (github.com)
- ↑ absoutherland's gists (gist.github.com)
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. |