Icinga2 Dashing installieren

Icinga2 Dashing installieren

Dashing ist auf Sinatra basierendes Framework, mit dem man sehr schöne Dashboards bauen kann.

 

In das Verzeichnis /usr/share wechseln

[root@vlicinga002 ~]# cd /usr/share/

Pakete nachinstallieren

[root@vlicinga002 share]# yum install ruby ruby-devel nodejs

Abhängigkeiten aufgelöst

================================================================================
 Package                 Arch        Version                    Paketquelle
                                                                          Größe
================================================================================
Installieren:
 nodejs                  x86_64      0.10.42-4.el7              epel      2.0 M
 ruby                    x86_64      2.0.0.598-25.el7_1         base       67 k
 ruby-devel              x86_64      2.0.0.598-25.el7_1         base      127 k
Als Abhängigkeiten installiert:
 libuv                   x86_64      1:0.10.34-2.el7            epel       62 k
 libyaml                 x86_64      0.1.4-11.el7_0             base       55 k
 ruby-irb                noarch      2.0.0.598-25.el7_1         base       88 k
 ruby-libs               x86_64      2.0.0.598-25.el7_1         base      2.8 M
 rubygem-bigdecimal      x86_64      1.2.0-25.el7_1             base       79 k
 rubygem-io-console      x86_64      0.4.2-25.el7_1             base       50 k
 rubygem-json            x86_64      1.7.7-25.el7_1             base       75 k
 rubygem-psych           x86_64      2.0.0-25.el7_1             base       77 k
 rubygem-rdoc            noarch      4.0.0-25.el7_1             base      318 k
 rubygems                noarch      2.0.14-25.el7_1            base      212 k

Transaktionsübersicht
================================================================================
Installieren  3 Pakete (+10 Abhängige Pakete)

 

Bundler installieren

[root@vlicinga002 share]# gem install bundler

Dashing installieren

[root@vlicinga002 share]# gem install dashing

Exexjs installieren

[root@vlicinga002 dashing-icinga2]# gem install execjs

api-user.conf anpassen

[root@vlicinga002 ~]# vim /etc/icinga2/conf.d/api-users.conf

folgendes ergänzend eintragen

object ApiUser "dashing" {
password = "icinga2ondashingr0xx"
permissions = [ "status/query", "objects/query/*" ]
}

Icinga2 Service neustarten

[root@vlicinga002 ~]# systemctl restart icinga2

Git Repo von Dashing herunterladen

[root@vlicinga002 ~]# git clone https://github.com/Icinga/dashing-icinga2.git

Ins Dashing Verzeichnis wechseln

[root@vlicinga002 ~]# cd dashing-icinga2/

Bundle ausführen

[root@vlicinga002 ~]# bundle install --path binpaths

Dashing starten

[root@vlicinga002 ~]# ./restart-dashing
Restarted Dashing with PID 10083 listening on port 8005.

http://serveradresse:8005 öffnen

dashing1

 

Da mich aktuell nicht nur interessiert wieviele Hosts oder Services Probleme haben – sondern vorallem welcher – habe ich das widget „Iframe“ bentutz um IcingaWeb2 ebenfalls in Dashing einzubauen.

Hierzu habe ich folgende Anpassungen durchgeführt:

unter /usr/share/dashing-icinga2/widgets/iframe

folgende Dateien anpassen (alle): iframe.coffee; iframe.html, iframe.scss

iframe.coffee

[root@vlicinga002 iframe]# cat iframe.coffee

class Dashing.Iframe extends Dashing.Widget

  ready: ->
    $(@node).find(".iframe").attr('src', @get('src'))

  onData: (data) ->
    $(@node).find(".iframe").attr('src', data.src)

iframe.html

[root@vlicinga002 iframe]# cat iframe.html
<iframe class=“iframe“ data-bind-src=“src“ scrolling=“no“></iframe>

iframe.scss

[root@vlicinga002 iframe]# cat iframe.coffee
class Dashing.Iframe extends Dashing.Widget

  ready: ->
    $(@node).find(".iframe").attr('src', @get('src'))

  onData: (data) ->
    $(@node).find(".iframe").attr('src', data.src)
[root@vlicinga002 iframe]# cat iframe.html
<iframe class="iframe" data-bind-src="src" scrolling="no"></iframe>
[root@vlicinga002 iframe]# cat iframe.scss
// ----------------------------------------------------------------------------
// Sass declarations
// ----------------------------------------------------------------------------
$background-color:  #FFF;

$title-color:       #333;
$moreinfo-color:    #333;

$iframe-background:  darken($background-color, 25%);

// ----------------------------------------------------------------------------
// Widget-iframe styles
// ----------------------------------------------------------------------------
.widget-iframe {

  background-color: $background-color;
  padding: 0 !important;
  margin: 0 !important;

  iframe {
    width: 100%;
    height: 100%;
    border: 0;
    padding: 0;
    margin: 0;
    overflow: hidden;
  }

}

Nun müssen wir das Widget im Dashboard plazieren hierzu das Dashboard im editor öffnen:

[root@vlicinga002 dashboards]# vi /usr/share/dashing-icinga2/dashboards/icinga2.erb

 

Und folgendes zwischen dem letzen </li> und dem </ul> einfügen

<!-- IcingaWeb2 -->
<li data-row="1" data-col="1" data-sizex="2" data-sizey="3">
      <div data-id="iframeId1" data-view="Iframe" data-src="http://10.61.0.152/icingaweb2/"></div>
</li>

Um jetzt das ganze auf FullHD anzupassen muss die größe der angzeigten Widgets angepasst werden. Hierzu die application.coffee anpassen.

[root@vlicinga002 javascripts]# vi /usr/share/dashing-icinga2/assets/javascripts/application.coffee

Folgende Zeile muss angepasst werden (erster Wert = breite, zweiter Wert = höhe)

Dashing.widget_base_dimensions ||= [300, 353]

Interessant ist auch der Wert von „Dashing.numColumns“ dieser gibt an – wieviel Widgets pro Zeile angezeigt werden soll.

 

dashing-problem2

IMG_3641

 

 

About the author

mbrunner administrator

20 Comments so far

abdiPosted on9:32 am - Aug 26, 2016

your config to many wrong,

you can test again config with your config, is not working bro

abdiPosted on3:45 pm - Sep 6, 2016

vi /usr/share/dashing-icinga2/dashboards/icinga2

test it

DSPosted on9:13 pm - Sep 17, 2016

Leider hat es bei mir nicht geklappt, wieso auch immer startet die Installation bei mir nicht. Habe allesmögliche zusätzlich installiert, können Sie evtl. sagen was man noch extra installieren muss, damit es klappt. (Bei einer sauberen CENTOS7 Neuinstallation.)

VMPosted on1:30 pm - Sep 29, 2016

After all setup no data on the right side only blank white window. Can you advise how to solve this problem?

NPlaPosted on10:50 am - Okt 20, 2016

Hey, nice tutorial but i just get a White Window on the right side.
Is it possible that i need a login for icingaweb2 including the config?

Greez

    mbrunnerPosted on12:02 pm - Okt 25, 2016

    Which browser do you use?
    I have the same problem in internet Explorer.
    Please test it in Chrome or Firefox.
    Thank you!

      NPlaPosted on2:43 pm - Nov 7, 2016

      I find it out,
      in my case there was to much “ and change the src to the pageaddress we want to see. It looks nice, thanks for the tutorial!

      iframe.coffee
      class Dashing.Iframe extends Dashing.Widget

      ready: ->
      $(@node).find(„.iframe“).attr(’src‘, @get(’src‘))

      onData: (data) ->
      $(@node).find(„.iframe“).attr(’src‘, data.src)

      iframe.html

      iframe.scss
      $background-color: #FFF;

      $title-color: #333;
      $moreinfo-color: #333;

      $iframe-background: darken($background-color, 25%);
      .widget-iframe {

      background-color: $background-color;
      padding: 0 !important;
      margin: 0 !important;

      iframe {
      width: 100%;
      height: 100%;
      border: 0;
      padding: 0;
      margin: 0;
      overflow: hidden;
      }
      }

MTPosted on11:52 am - Nov 15, 2016

Hey,

bei mir bleiben die Kacheln leer :/ hab keine Ahmung warum das nicht funktioniert..
Ist sowas bekannt?

Argjend GanijiPosted on6:24 pm - Nov 23, 2016

Hallo, bei mir wird das Iframe nicht angezeigt und bleibt leer

Argjend GanijiPosted on6:25 pm - Nov 23, 2016

Noch eine Frage, wie hast du die Uhrzeit, da hinzugefügt? die ist im normalerweise nicht dabei

ferwePosted on4:38 pm - Jan 1, 2017

Wenn ihr nur plain die Probleme sehen wollt (Ohne die ganze Icinga-Seite mit Navigations-Leiste) dann fügt folgenden Code in der icinga2.erp hinzu:

&showFullscreen&showCompact

Sieth dann so aus:

Hinweis:
Wenn das Iframe leer bleibt, dann schaut mal ob folgende Änderung was bringt:
<div data-id="iframeId1" data-view="Iframe" data-url

zu

<div data-id="iframeId1" data-view="Iframe" data-src

oder andersherum.
Ich habe nicht ganz durschaut wie das zusammenhängt, aber ich hatte data-url und nach der Änderung auf "src" zeigt er alles richtig an.

Danke für das Tutorial. Hat mir auf jeden Fall geholfen.

memphisPosted on9:10 am - Apr 6, 2017

Hallo,

sehr guter Artikel, hat auf Anhieb geklappt. Allerdings habe ich eine Frage zur automatischen Aktualisierung. Bei mir macht er diese nicht. Wenn ich „./restart-dashing“ starte, sehe ich alle Werte, aber ohne Aktualisierung. Starte ich „dashing start“ sehe ich zwar auf der Kommando Zeile die Werte aus Icinga auslesen aber die werden mir nicht angezeigt. Habe ich was vergessen oder einen Fehler drin?

Gruß

SaschaPosted on3:09 pm - Jul 11, 2017

Hallo,

erstmal Danke für die tolle Anleitung.
Jedoch habe ich ab ./restart-dashing ein Problem es kommt der Fehler

./restart-dashing: line 90: dashing: command not found
Restart failed. Bailing out.

Ich benutze Centos 7 hast du vielleicht eine Idee ?

Leave a Reply