Icinga2 - Dashing
Icinga ist eine vollständig auf Open-Source-Basis basierende, skalierbare und erweiterbare Monitoring-Lösung welche die Verfügbarkeit von definierten Ressource überprüft und über eine Benachrichtigungssystem verfügt.
Dashing ist ein Möglichkeit schöne Dashboards erstellen zu können. Icinga Dashing verwendet die Icinga2-API, um zu visualisieren, welcher Status der Überwachung gerade in Icinga ermittelt wurde. Es kombiniert mehrere beliebte Widgets und bietet auch die Möglichkeit für eigene Implementierung und Erweiterungen. Das Dashboard von Icinga Dashing, erlaubt auch das Einbetten der von Icinga2-Web bereitgestellten Host- und Service-Problemlisten als iframe
.
Beschreibung | Externer Link |
---|---|
Homepage | https://github.com/Icinga/dashing-icinga2 |
Dokumentation | https://github.com/Icinga/dashing-icinga2 https://www.icinga.com/2016/01/28/awesome-dashing-dashboards-with-icinga-2/ https://gist.github.com/hussfelt/a6fe71ebd7cce327df29 |
Andere HowTos | http://brunner-it.de/2016/08/04/icinga2-dashing-installieren/ |
Download | https://github.com/Icinga/dashing-icinga2 |
Ab hier werden zur Ausführung nachfolgender Befehle root
-Rechte benötigt. Um der Benutzer root
zu werden, melden Sie sich bitte als root
-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root
:
$ su - Password
Voraussetzungen
Als Voraussetzung für die Installation von Icinga Dashing sind folgende Komponenten erforderlich:
- Lauffähige Version von Icinga 2 ab der API Version 2.6+
- Siehe auch den internen Link Icinga2
- Lauffähiger Datenbank-Server z.B. MariaDB
- Siehe auch den internen Link: MariaDB CentOS 7
- Lauffähiger Web-Server z.B. Apache HTTP Server
- Siehe auch den internen Link: Apache HTTP Server CentOS 7
- RPM-Paket
ruby
, Programmierumgebung mit der Icinga Dashing realisiert wurde.- Siehe auch den externen Link Ruby
- RPM-Paket
rubygem-bundler
, eine Möglichkeit um Ruby Anwendung zu verwalten- Siehe auch den externen Link Bundler
- RPM-Paket
ruby-devel
, Entwicklungsumgebung für Ruby um einige Abhängigkeiten auflösen zu können. - RPM-Paket
nodejs
, ist ein JavaScript-Laufzeitumgebung- Siehe auch den externen Link Node.js
- RPM-Paket
gcc-c''**, Compiler-Umgebung für das **''gem''-Paket** - ''dashing'' und das darin enthaltene **''gem''-Paket** - ''eventmachine'' Nachfolgende **''gems''** (welches das offizielle Paketsystem für die Programmiersprache Ruby ist) siehe nachfolgenden externen Link * [[https://rubygems.org/?locale=de RubyGems]] müssen ebenfalls Installiert werden: *
bundler
*dashing
*execjs
===== Vorbereitung ===== Zur Installation von Icinga Dashing, muss nachfolgendes Repository genutzt bzw. eingebunden werden: * EPEL-Repository ==== Repository: EPEL ==== Nachfolgende Beschreibung bindet das Drittanbieter-Repository von EPEL ein, damit darüber die Installation von Node.js erfolgen kann. * Siehe nachfolgenden internen Link: EPEL CentOS 7 ===== Herunterladen ===== ==== icinga2-dashing ==== Mit nachfolgendem Befehl kann direkt von GitHub eine gepackte Datei als Archiv direkt in das temporäre Verzeichnis/tmp
heruntergeladen werden:# wget -P /tmp https://github.com/Icinga/dashing-icinga2/archive/master.zip --2016-12-26 10:37:44-- https://github.com/Icinga/dashing-icinga2/archive/master.zip Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112 Connecting to github.com (github.com)|192.30.253.113|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://codeload.github.com/Icinga/dashing-icinga2/zip/master [following] --2016-12-26 10:37:46-- https://codeload.github.com/Icinga/dashing-icinga2/zip/master Resolving codeload.github.com (codeload.github.com)... 192.30.253.121, 192.30.253.120 Connecting to codeload.github.com (codeload.github.com)|192.30.253.121|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 575833 (562K) [application/zip] Saving to: ‘/tmp/master.zip’ 100%[======================================>] 575,833 132KB/s in 4.3s 2016-12-26 10:37:53 (132 KB/s) - ‘/tmp/master.zip’ saved [575833/575833]
===== Installation ===== ==== RPM-Pakete ==== Nachdem das Drittanbieter-Repository * EPEL CentOS 7 erfolgreich eingebunden wurde, können mit nachfolgendem Befehl, die
rpm
-Pakete - *ruby
*rubygem-bundler
*ruby-devel
*nodejs
und die Compiler-Umgebung und deren Abhängigkeiten *gcc-c''** installiert werden: <code> # yum install ruby rubygem-bundler ruby-devel nodejs Loaded plugins: changelog, priorities 382 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package nodejs.x86_64 1:6.9.1-4.el7 will be installed --> Processing Dependency: npm = 1:3.10.8-1.6.9.1.4.el7 for package: 1:nodejs-6.9.1-4.el7.x86_64 --> Processing Dependency: libuv >= 1:1.9.1 for package: 1:nodejs-6.9.1-4.el7.x86_64 --> Processing Dependency: libuv.so.1()(64bit) for package: 1:nodejs-6.9.1-4.el7.x86_64 ---> Package ruby.x86_64 0:2.0.0.648-29.el7 will be installed --> Processing Dependency: ruby-libs(x86-64) = 2.0.0.648-29.el7 for package: ruby-2.0.0.648-29.el7.x86_64 --> Processing Dependency: rubygem(bigdecimal) >= 1.2.0 for package: ruby-2.0.0.648-29.el7.x86_64 --> Processing Dependency: ruby(rubygems) >= 2.0.14.1 for package: ruby-2.0.0.648-29.el7.x86_64 --> Processing Dependency: libruby.so.2.0()(64bit) for package: ruby-2.0.0.648-29.el7.x86_64 ---> Package ruby-devel.x86_64 0:2.0.0.648-29.el7 will be installed ---> Package rubygem-bundler.noarch 0:1.7.8-3.el7 will be installed --> Processing Dependency: rubygem(thor) >= 0.19.0 for package: rubygem-bundler-1.7.8-3.el7.noarch --> Processing Dependency: rubygem(net-http-persistent) for package: rubygem-bundler-1.7.8-3.el7.noarch --> Running transaction check ---> Package libuv.x86_64 1:1.9.1-1.el7 will be installed ---> Package npm.x86_64 1:3.10.8-1.6.9.1.4.el7 will be installed ---> Package ruby-libs.x86_64 0:2.0.0.648-29.el7 will be installed ---> Package rubygem-bigdecimal.x86_64 0:1.2.0-29.el7 will be installed ---> Package rubygem-net-http-persistent.noarch 0:2.8-5.el7 will be installed ---> Package rubygem-thor.noarch 0:0.19.1-1.el7 will be installed ---> Package rubygems.noarch 0:2.0.14.1-29.el7 will be installed --> Processing Dependency: rubygem(rdoc) >= 4.0.0 for package: rubygems-2.0.14.1-29.el7.noarch --> Processing Dependency: rubygem(psych) >= 2.0.0 for package: rubygems-2.0.14.1-29.el7.noarch --> Processing Dependency: rubygem(io-console) >= 0.4.2 for package: rubygems-2.0.14.1-29.el7.noarch --> Running transaction check ---> Package rubygem-io-console.x86_64 0:0.4.2-29.el7 will be installed ---> Package rubygem-psych.x86_64 0:2.0.0-29.el7 will be installed ---> Package rubygem-rdoc.noarch 0:4.0.0-29.el7 will be installed --> Processing Dependency: ruby(irb) = 2.0.0.648 for package: rubygem-rdoc-4.0.0-29.el7.noarch --> Processing Dependency: rubygem(json) >= 1.7.7 for package: rubygem-rdoc-4.0.0-29.el7.noarch --> Running transaction check ---> Package ruby-irb.noarch 0:2.0.0.648-29.el7 will be installed ---> Package rubygem-json.x86_64 0:1.7.7-29.el7 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: nodejs x86_64 1:6.9.1-4.el7 epel 4.6 M ruby x86_64 2.0.0.648-29.el7 base 68 k ruby-devel x86_64 2.0.0.648-29.el7 base 128 k rubygem-bundler noarch 1.7.8-3.el7 base 147 k Installing for dependencies: libuv x86_64 1:1.9.1-1.el7 epel 79 k npm x86_64 1:3.10.8-1.6.9.1.4.el7 epel 2.4 M ruby-irb noarch 2.0.0.648-29.el7 base 89 k ruby-libs x86_64 2.0.0.648-29.el7 base 2.8 M rubygem-bigdecimal x86_64 1.2.0-29.el7 base 80 k rubygem-io-console x86_64 0.4.2-29.el7 base 51 k rubygem-json x86_64 1.7.7-29.el7 base 76 k rubygem-net-http-persistent noarch 2.8-5.el7 base 22 k rubygem-psych x86_64 2.0.0-29.el7 base 78 k rubygem-rdoc noarch 4.0.0-29.el7 base 319 k rubygem-thor noarch 0.19.1-1.el7 base 52 k rubygems noarch 2.0.14.1-29.el7 base 216 k Transaction Summary ================================================================================ Install 4 Packages (+12 Dependent packages) Total download size: 11 M Installed size: 39 M Is this ok [y/d/N]: y Downloading packages: (1/16): libuv-1.9.1-1.el7.x86_64.rpm 79 kB 00:00 (2/16): npm-3.10.8-1.6.9.1.4.el7.x86_64.rpm | 2.4 MB 00:00 (3/16): nodejs-6.9.1-4.el7.x86_64.rpm | 4.6 MB 00:00 (4/16): ruby-2.0.0.648-29.el7.x86_64.rpm | 68 kB 00:00 (5/16): ruby-devel-2.0.0.648-29.el7.x86_64.rpm | 128 kB 00:00 (6/16): ruby-irb-2.0.0.648-29.el7.noarch.rpm | 89 kB 00:00 (7/16): rubygem-bigdecimal-1.2.0-29.el7.x86_64.rpm | 80 kB 00:00 (8/16): ruby-libs-2.0.0.648-29.el7.x86_64.rpm | 2.8 MB 00:00 (9/16): rubygem-bundler-1.7.8-3.el7.noarch.rpm | 147 kB 00:00 (10/16): rubygem-io-console-0.4.2-29.el7.x86_64.rpm | 51 kB 00:00 (11/16): rubygem-json-1.7.7-29.el7.x86_64.rpm | 76 kB 00:00 (12/16): rubygem-net-http-persistent-2.8-5.el7.noarch.rpm | 22 kB 00:00 (13/16): rubygem-psych-2.0.0-29.el7.x86_64.rpm | 78 kB 00:00 (14/16): rubygem-rdoc-4.0.0-29.el7.noarch.rpm | 319 kB 00:00 (15/16): rubygem-thor-0.19.1-1.el7.noarch.rpm | 52 kB 00:00 (16/16): rubygems-2.0.14.1-29.el7.noarch.rpm | 216 kB 00:00 ——————————————————————————– Total 15 MB/s | 11 MB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction
Installing : ruby-libs-2.0.0.648-29.el7.x86_64 1/16 Installing : rubygem-io-console-0.4.2-29.el7.x86_64 2/16 Installing : rubygem-bigdecimal-1.2.0-29.el7.x86_64 3/16 Installing : rubygem-json-1.7.7-29.el7.x86_64 4/16 Installing : rubygem-psych-2.0.0-29.el7.x86_64 5/16 Installing : ruby-irb-2.0.0.648-29.el7.noarch 6/16 Installing : ruby-2.0.0.648-29.el7.x86_64 7/16 Installing : rubygem-rdoc-4.0.0-29.el7.noarch 8/16 Installing : rubygems-2.0.14.1-29.el7.noarch 9/16 Installing : rubygem-thor-0.19.1-1.el7.noarch 10/16 Installing : rubygem-net-http-persistent-2.8-5.el7.noarch 11/16 Installing : 1:libuv-1.9.1-1.el7.x86_64 12/16 Installing : 1:npm-3.10.8-1.6.9.1.4.el7.x86_64 13/16 Installing : 1:nodejs-6.9.1-4.el7.x86_64 14/16 Installing : rubygem-bundler-1.7.8-3.el7.noarch 15/16 Installing : ruby-devel-2.0.0.648-29.el7.x86_64 16/16 Verifying : rubygems-2.0.14.1-29.el7.noarch 1/16 Verifying : ruby-libs-2.0.0.648-29.el7.x86_64 2/16 Verifying : ruby-devel-2.0.0.648-29.el7.x86_64 3/16 Verifying : 1:libuv-1.9.1-1.el7.x86_64 4/16 Verifying : rubygem-thor-0.19.1-1.el7.noarch 5/16 Verifying : rubygem-bundler-1.7.8-3.el7.noarch 6/16 Verifying : rubygem-io-console-0.4.2-29.el7.x86_64 7/16 Verifying : ruby-irb-2.0.0.648-29.el7.noarch 8/16 Verifying : rubygem-bigdecimal-1.2.0-29.el7.x86_64 9/16 Verifying : rubygem-net-http-persistent-2.8-5.el7.noarch 10/16 Verifying : rubygem-json-1.7.7-29.el7.x86_64 11/16 Verifying : 1:npm-3.10.8-1.6.9.1.4.el7.x86_64 12/16 Verifying : 1:nodejs-6.9.1-4.el7.x86_64 13/16 Verifying : rubygem-psych-2.0.0-29.el7.x86_64 14/16 Verifying : ruby-2.0.0.648-29.el7.x86_64 15/16 Verifying : rubygem-rdoc-4.0.0-29.el7.noarch 16/16
Installed:
nodejs.x86_64 1:6.9.1-4.el7 ruby.x86_64 0:2.0.0.648-29.el7 ruby-devel.x86_64 0:2.0.0.648-29.el7 rubygem-bundler.noarch 0:1.7.8-3.el7
Dependency Installed:
libuv.x86_64 1:1.9.1-1.el7 npm.x86_64 1:3.10.8-1.6.9.1.4.el7 ruby-irb.noarch 0:2.0.0.648-29.el7 ruby-libs.x86_64 0:2.0.0.648-29.el7 rubygem-bigdecimal.x86_64 0:1.2.0-29.el7 rubygem-io-console.x86_64 0:0.4.2-29.el7 rubygem-json.x86_64 0:1.7.7-29.el7 rubygem-net-http-persistent.noarch 0:2.8-5.el7 rubygem-psych.x86_64 0:2.0.0-29.el7 rubygem-rdoc.noarch 0:4.0.0-29.el7 rubygem-thor.noarch 0:0.19.1-1.el7 rubygems.noarch 0:2.0.14.1-29.el7
Complete! </code> Das
rpm
-Paket mit der Compiler-Umgebunggcc-c''** soll hier **absichtlich** extra installiert werden, **damit dieses und dessen Abhängigkeiten** nach der **kompletten Installation** wieder **entfernt werden können**. <code> # yum install gcc-c++ Loaded plugins: changelog, priorities 382 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package gcc-c++.x86_64 0:4.8.5-11.el7 will be installed --> Processing Dependency: libstdc++-devel = 4.8.5-11.el7 for package: gcc-c++-4.8.5-11.el7.x86_64 --> Processing Dependency: gcc = 4.8.5-11.el7 for package: gcc-c++-4.8.5-11.el7.x86_64 --> Processing Dependency: libmpfr.so.4()(64bit) for package: gcc-c++-4.8.5-11.el7.x86_64 --> Processing Dependency: libmpc.so.3()(64bit) for package: gcc-c++-4.8.5-11.el7.x86_64 --> Running transaction check ---> Package gcc.x86_64 0:4.8.5-11.el7 will be installed --> Processing Dependency: cpp = 4.8.5-11.el7 for package: gcc-4.8.5-11.el7.x86_64 --> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc-4.8.5-11.el7.x86_64 ---> Package libmpc.x86_64 0:1.0.1-3.el7 will be installed ---> Package libstdc++-devel.x86_64 0:4.8.5-11.el7 will be installed ---> Package mpfr.x86_64 0:3.1.1-4.el7 will be installed --> Running transaction check ---> Package cpp.x86_64 0:4.8.5-11.el7 will be installed ---> Package glibc-devel.x86_64 0:2.17-157.el7_3.1 will be installed --> Processing Dependency: glibc-headers = 2.17-157.el7_3.1 for package: glibc-devel-2.17-157.el7_3.1.x86_64 --> Processing Dependency: glibc-headers for package: glibc-devel-2.17-157.el7_3.1.x86_64 --> Running transaction check ---> Package glibc-headers.x86_64 0:2.17-157.el7_3.1 will be installed --> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers-2.17-157.el7_3.1.x86_64 --> Processing Dependency: kernel-headers for package: glibc-headers-2.17-157.el7_3.1.x86_64 --> Running transaction check ---> Package kernel-headers.x86_64 0:3.10.0-514.2.2.el7 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: gcc-c++ x86_64 4.8.5-11.el7 base 7.2 M Installing for dependencies: cpp x86_64 4.8.5-11.el7 base 5.9 M gcc x86_64 4.8.5-11.el7 base 16 M glibc-devel x86_64 2.17-157.el7_3.1 updates 1.1 M glibc-headers x86_64 2.17-157.el7_3.1 updates 668 k kernel-headers x86_64 3.10.0-514.2.2.el7 updates 4.8 M libmpc x86_64 1.0.1-3.el7 base 51 k libstdc++-devel x86_64 4.8.5-11.el7 base 1.5 M mpfr x86_64 3.1.1-4.el7 base 203 k Transaction Summary ================================================================================ Install 1 Package (+8 Dependent packages) Total download size: 38 M Installed size: 84 M Is this ok [y/d/N]: y Downloading packages: (1/9): cpp-4.8.5-11.el7.x86_64.rpm 5.9 MB 00:00 (2/9): gcc-4.8.5-11.el7.x86_64.rpm | 16 MB 00:01 (3/9): gcc-c-4.8.5-11.el7.x86_64.rpm | 7.2 MB 00:00 (4/9): glibc-devel-2.17-157.el7_3.1.x86_64.rpm | 1.1 MB 00:00 (5/9): glibc-headers-2.17-157.el7_3.1.x86_64.rpm | 668 kB 00:00 (6/9): libmpc-1.0.1-3.el7.x86_64.rpm | 51 kB 00:00 (7/9): kernel-headers-3.10.0-514.2.2.el7.x86_64.rpm | 4.8 MB 00:00 (8/9): libstdc-devel-4.8.5-11.el7.x86_64.rpm 1.5 MB 00:00 (9/9): mpfr-3.1.1-4.el7.x86_64.rpm | 203 kB 00:00 ——————————————————————————– Total 19 MB/s | 38 MB 00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction
Installing : mpfr-3.1.1-4.el7.x86_64 1/9 Installing : libmpc-1.0.1-3.el7.x86_64 2/9 Installing : cpp-4.8.5-11.el7.x86_64 3/9 Installing : libstdc++-devel-4.8.5-11.el7.x86_64 4/9 Installing : kernel-headers-3.10.0-514.2.2.el7.x86_64 5/9 Installing : glibc-headers-2.17-157.el7_3.1.x86_64 6/9 Installing : glibc-devel-2.17-157.el7_3.1.x86_64 7/9 Installing : gcc-4.8.5-11.el7.x86_64 8/9 Installing : gcc-c++-4.8.5-11.el7.x86_64 9/9 Verifying : glibc-headers-2.17-157.el7_3.1.x86_64 1/9 Verifying : glibc-devel-2.17-157.el7_3.1.x86_64 2/9 Verifying : gcc-c++-4.8.5-11.el7.x86_64 3/9 Verifying : mpfr-3.1.1-4.el7.x86_64 4/9 Verifying : kernel-headers-3.10.0-514.2.2.el7.x86_64 5/9 Verifying : cpp-4.8.5-11.el7.x86_64 6/9 Verifying : gcc-4.8.5-11.el7.x86_64 7/9 Verifying : libstdc++-devel-4.8.5-11.el7.x86_64 8/9 Verifying : libmpc-1.0.1-3.el7.x86_64 9/9
Installed:
gcc-c++.x86_64 0:4.8.5-11.el7
Dependency Installed:
cpp.x86_64 0:4.8.5-11.el7 gcc.x86_64 0:4.8.5-11.el7 glibc-devel.x86_64 0:2.17-157.el7_3.1 glibc-headers.x86_64 0:2.17-157.el7_3.1 kernel-headers.x86_64 0:3.10.0-514.2.2.el7 libmpc.x86_64 0:1.0.1-3.el7 libstdc++-devel.x86_64 0:4.8.5-11.el7 mpfr.x86_64 0:3.1.1-4.el7
Complete! </code> WICHTIG - Nach der erfolgreicher und kompletten Installation, könnten das
rpm
-Paket -gcc-c++
und dessen Abhängigkeiten auch wieder entfernt werden, was mit nachfolgendem Befehl durchgeführt werden kann:# yum remove gcc-c++ cpp gcc glibc-devel glibc-headers kernel-headers libmpc libstdc++-devel mpfr
==== GEM-Pakete ==== Nachdem die vorhergehenden
rpm
-Pakete, wie unter nachfolgendem internen Link beschrieben * Icinga2 - Dashing - Installation - RPM-Pakete installiert wurden, können auch diegem
-Pakete nun installiert werden, was mit nachfolgendem Befehlen durchgeführt werden kann: HINWEIS - Damit die Installation nicht zu lange dauert und falls keine Dokumentation dergem
-Pakete benötigt wird, ist es sinnvoll die Option–no-document
bei der Installation zu verwenden!bundler
# gem install bundler --no-document Fetching: bundler-1.13.7.gem (100%) Successfully installed bundler-1.13.7 1 gem installed
dashing
# gem install dashing --no-document Fetching: sass-3.2.19.gem (100%) Successfully installed sass-3.2.19 Fetching: coffee-script-source-1.12.2.gem (100%) Successfully installed coffee-script-source-1.12.2 Fetching: execjs-2.0.2.gem (100%) Successfully installed execjs-2.0.2 Fetching: coffee-script-2.2.0.gem (100%) Successfully installed coffee-script-2.2.0 Fetching: rack-1.5.5.gem (100%) Successfully installed rack-1.5.5 Fetching: tilt-1.4.1.gem (100%) Successfully installed tilt-1.4.1 Fetching: rack-protection-1.5.3.gem (100%) Successfully installed rack-protection-1.5.3 Fetching: sinatra-1.4.7.gem (100%) Successfully installed sinatra-1.4.7 Fetching: backports-3.6.8.gem (100%) Successfully installed backports-3.6.8 Fetching: rack-test-0.6.3.gem (100%) Successfully installed rack-test-0.6.3 Fetching: multi_json-1.12.1.gem (100%) Successfully installed multi_json-1.12.1 Fetching: sinatra-contrib-1.4.7.gem (100%) Successfully installed sinatra-contrib-1.4.7 Fetching: eventmachine-1.2.1.gem (100%) Building native extensions. This could take a while... Successfully installed eventmachine-1.2.1 Fetching: daemons-1.2.4.gem (100%) Successfully installed daemons-1.2.4 Fetching: thin-1.6.4.gem (100%) Building native extensions. This could take a while... Successfully installed thin-1.6.4 Fetching: thread_safe-0.3.5.gem (100%) Successfully installed thread_safe-0.3.5 Fetching: tzinfo-1.2.2.gem (100%) Successfully installed tzinfo-1.2.2 Fetching: rufus-scheduler-2.0.24.gem (100%) Successfully installed rufus-scheduler-2.0.24 Fetching: hike-1.2.3.gem (100%) Successfully installed hike-1.2.3 Fetching: sprockets-2.10.2.gem (100%) Successfully installed sprockets-2.10.2 Fetching: dashing-1.3.7.gem (100%) Successfully installed dashing-1.3.7 21 gems installed
execjs
# gem install execjs --no-document Fetching: execjs-2.7.0.gem (100%) Successfully installed execjs-2.7.0 1 gem installed
==== icinga2-dashing ==== Mit nachfolgendem Befehl kann die zuvor, wie unter nachfolgendem internen Link beschrieben * Icinga2 - Dashing - Herunterladen - icinga2-dashing heruntergeladene Datei, in das Zielverzeichnis * /usr/share/icinga2-dashing entpackt werden:
# unzip /tmp/master.zip -d /usr/share
Abschließend muss nun noch das durch das entpacken neu entstandene Verzeichnis mit nachfolgendem Befehl umbenannt werden:
# mv /usr/share/dashing-icinga2-master/ /usr/share/icinga2-dashing
===== Konfiguration ===== ==== /etc/icinga2/conf.d/api-users.conf ==== Die Icinga2-API benötigt entweder „basic auth“ oder Client-Zertifikate für die Authentifizierung. Nachfolgende API-User-Berechtigungen werden entsprechend den Anforderungen festgelegt. Standardmäßig werden nur Daten von den Endpunkten
/v1/status
und/v1/objects
abgerufen, und daher werden auch keine Schreibberechtigungen benötigt. Nachfolgende Ergänzungen in den Konfigurationsdatei/etc/icinga2/conf.d/api-users.conf
müssen am Ende der Konfigurationsdatei angehängt werden, damit zur Icinga2-Konfiguration ein neues API-User-Objekt hinzugefügt wird: (Komplette Konfigurationsdatei)/********************************************************************** * The APIUser objects are used for authentication against the API. * **********************************************************************/ object ApiUser "root" { password = "supergeheim" // client_cn = "" permissions = [ "*" ] } object ApiUser "dashing" { password = "geheim" // client_cn = "" permissions = [ "status/query", "objects/query/*" ] }
Ergänzungen: *
object ApiUser "dashing" { password = "geheim" // client_cn = "" permissions = [ "status/query", "objects/query/*" ] }
Hinzufügen eines neuen neues API-User-Objekts zur Icinga2-Konfiguration. ==== /usr/share/icinga2-dashing/config/icinga2.json ==== Nachfolgende Konfigurationsdatei
/usr/share/icinga2-dashing/config/icinga2.json
muss wie nachfolgend dargestellt angepasst werden. Es ist das password und die url abzuändern!: (Komplette Konfigurationsdatei){ "icinga2": { "api": { "host": "localhost", "port": 5665, "user": "dashing", "password": "geheim" } }, "icingaweb2": { "url": "http://dashing-icinga2.tachtler.net/icingaweb2" }, "dashboard": { "show_only_hard_state_problems": false } }
Erklärungen: *
"password": "geheim"
Ändern des Passworts auf das zuvor in der Konfigurationsdatei
/etc/icinga2/conf.d/api-users.conf
gesetzten Passworts. *"url": "http://dashing-icinga2.tachtler.net/icingaweb2"
Ändern der URL um das eigene und bereits lauffähige Icinga bzw. icingaweb2 - siehe auch nachfolgenden Internen Link * Icinga Web 2 bei einer Host/Service-Meldung in die Anzeige von Icinga Dashing einzubinden. *
}, "dashboard": { "show_only_hard_state_problems": false }
Beeinflusst die Anzeige dahingehend, dass nicht nur „Harte“ Probleme angezeigt werden, sondern auch Probleme im Status „Soft“. ==== /usr/share/icinga2-dashing/restart-dashing ==== Nachfolgende Anpassungen sind nicht erforderlich, tragen aber meiner Meinung nach, zu einer besseren Systemintegration bei.
#!/bin/bash #/****************************************************************************** # * Icinga 2 Dashing Restart Script * # * Copyright (C) 2016 Icinga Development Team (https://www.icinga.org) * # * * # * This program is free software; you can redistribute it and/or * # * modify it under the terms of the GNU General Public License * # * as published by the Free Software Foundation; either version 2 * # * of the License, or (at your option) any later version. * # * * # * This program is distributed in the hope that it will be useful, * # * but WITHOUT ANY WARRANTY; without even the implied warranty of * # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * # * GNU General Public License for more details. * # * * # * You should have received a copy of the GNU General Public License * # * along with this program; if not, write to the Free Software Foundation * # * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * # ******************************************************************************/ # Tachtler # default: if [ -d '/usr/share/dashing-icinga2' ]; then # default: DASHING_PWD='/usr/share/dashing-icinga2' if [ -d '/usr/share/icinga2-dashing' ]; then DASHING_PWD='/usr/share/icinga2-dashing' else DASHING_PWD=`pwd` fi DASHING_PORT=8005 # Tachtler # default: DASHING_PID_FILE="tmp/pids/thin.pid" DASHING_PID_FILE="/var/run/thin.pid" # Tachtler # default: DASHING_BIN=dashing DASHING_BIN=/usr/local/bin/dashing usage(){ cat << EOF usage: $0 options This script restarts the Dashing daemon. OPTIONS: -h Show this message -p Port where Dashing will listen (defaults to 3030) -P PID file path (defaults to tmp/pids/thin.pid) -D Change to this directory before starting the daemon (defaults to current directory) -b Path to the dashing binary (defaults to just 'dashing' from system path) EOF } while getopts ":p:P:D:b:h" opt; do case $opt in h) usage exit 1 ;; p) DASHING_PORT=$OPTARG ;; P) DASHING_PID_FILE=$OPTARG ;; D) DASHING_PWD=$OPTARG ;; b) DASHING_BIN=$OPTARG ;; \?) echo "Invalid option: -$OPTARG" >&2 usage exit 1 ;; :) echo "Option -$OPTARG requires an argument." >&2 usage exit 1 ;; esac done # ensure that dashing runs with utf8 export LANG=en_US.UTF-8 export LC_CTYPE=en_US.UTF-8 export LC_ALL=en_US.UTF-8 export PATH="/usr/local/bin:$PATH" cd $DASHING_PWD if [ -f "$DASHING_PID_FILE" ]; then kill -9 $(<"$DASHING_PID_FILE") > /dev/null 2>&1 rm -f $DASHING_PID_FILE fi $DASHING_BIN start -d -p $DASHING_PORT --pid $DASHING_PID_FILE ERR=$? if [ $ERR != 0 ]; then echo "Restart failed. Bailing out." exit $ERR fi # dashing might take a while to start while [ ! -f "$DASHING_PID_FILE" ]; do sleep 1 done PID=$(<"$DASHING_PID_FILE") echo "Restarted Dashing with PID $PID listening on port $DASHING_PORT." exit $ERR
Erklärungen: *
# Tachtler # default: if [ -d '/usr/share/dashing-icinga2' ]; then # default: DASHING_PWD='/usr/share/dashing-icinga2' if [ -d '/usr/share/icinga2-dashing' ]; then DASHING_PWD='/usr/share/icinga2-dashing' else DASHING_PWD=`pwd` fi
Standardmäßige Änderung des Pfades, da damit alle installierten icinga-Produkte mindestens mit dem Wort
icinga
beginnen. *# Tachtler # default: DASHING_PID_FILE="tmp/pids/thin.pid" DASHING_PID_FILE="/var/run/thin.pid"
PID-File sollte grundsätzlich unter
/var/run
beheimatet sein. *# Tachtler # default: DASHING_BIN=dashing DASHING_BIN=/usr/local/bin/dashing
Angabe des absoluten Pfads zum binary von Icinga Dashing ===== icinga2: Neustart ===== Danach kann der icinga2-Server mit nachfolgendem Befehle neu gestartet werden:
# systemctl restart icinga2
Mit nachfolgendem Befehl kann der Status des Icinga-Servers abgefragt werden:
# systemctl status icinga2.service ● icinga2.service - Icinga host/service/network monitoring system Loaded: loaded (/usr/lib/systemd/system/icinga2.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2016-12-26 10:53:37 CET; 16s ago Process: 32190 ExecStart=/usr/sbin/icinga2 daemon -d -e ${ICINGA2_ERROR_LOG} (code=exited, status=0/SUCCESS) Process: 32127 ExecStartPre=/usr/lib/icinga2/prepare-dirs /etc/sysconfig/icinga2 (code=exited, status=0/SUCCESS) Main PID: 32221 (icinga2) CGroup: /system.slice/icinga2.service ├─32212 /usr/lib64/icinga2/sbin/icinga2 --no-stack-rlimit daemon -... └─32221 /usr/lib64/icinga2/sbin/icinga2 --no-stack-rlimit daemon -... Dec 26 10:53:36 server11.idmz.tachtler.net icinga2[32190]: [2016-12-26 10:53:... Dec 26 10:53:36 server11.idmz.tachtler.net icinga2[32190]: [2016-12-26 10:53:... Dec 26 10:53:36 server11.idmz.tachtler.net icinga2[32190]: [2016-12-26 10:53:... Dec 26 10:53:36 server11.idmz.tachtler.net icinga2[32190]: [2016-12-26 10:53:... Dec 26 10:53:36 server11.idmz.tachtler.net icinga2[32190]: [2016-12-26 10:53:... Dec 26 10:53:36 server11.idmz.tachtler.net icinga2[32190]: [2016-12-26 10:53:... Dec 26 10:53:36 server11.idmz.tachtler.net icinga2[32190]: [2016-12-26 10:53:... Dec 26 10:53:36 server11.idmz.tachtler.net icinga2[32190]: [2016-12-26 10:53:... Dec 26 10:53:36 server11.idmz.tachtler.net icinga2[32190]: [2016-12-26 10:53:... Dec 26 10:53:37 server11.idmz.tachtler.net systemd[1]: Started Icinga host/se... Hint: Some lines were ellipsized, use -l to show in full.
Nachfolgende LOG-Dateien sollten Auskunft darüber geben, wie der Start und der Status des Icinga-Servers ist. *
/var/log/icinga2/icinga2.log
*/var/log/icinga2/error.log
Die LOG-Datei/var/log/icinga2/error.log
sollte hingegen leer sein! ===== Systemkonfiguration ===== Abschließend ist es einmalig erforderlich alle benötigten RubyGems in den Systempfad zu installieren, was mit nachfolgendem Befehl durchgeführt werden kann:# bundle install --system Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine. Fetching gem metadata from https://rubygems.org/......... Fetching version metadata from https://rubygems.org/.. Fetching dependency metadata from https://rubygems.org/. Resolving dependencies... Rubygems 2.0.14.1 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation. Using backports 3.6.8 Using coffee-script-source 1.12.2 Using execjs 2.0.2 Using daemons 1.2.4 Using rack 1.5.5 Using thread_safe 0.3.5 Using sass 3.2.19 Using tilt 1.4.1 Using multi_json 1.12.1 Using hike 1.2.3 Using eventmachine 1.2.1 Installing thor 0.19.4 Installing unf_ext 0.0.7.2 with native extensions Installing json 2.0.2 with native extensions Installing mime-types-data 3.2016.0521 Installing netrc 0.11.0 Using bundler 1.13.7 Using coffee-script 2.2.0 Using rack-protection 1.5.3 Using rack-test 0.6.3 Using tzinfo 1.2.2 Using sprockets 2.10.2 Using thin 1.6.4 Installing unf 0.1.4 Installing mime-types 3.1 Using sinatra 1.4.7 Using rufus-scheduler 2.0.24 Installing domain_name 0.5.20161129 Using sinatra-contrib 1.4.7 Installing http-cookie 1.0.3 Using dashing 1.3.7 Installing rest-client 2.0.0 Bundle complete! 5 Gemfile dependencies, 32 gems now installed. Use `bundle show [gemname]` to see where a bundled gem is installed.
===== icinga2-dashing: Start ===== Jetzt kann der icinga2-dashing-Server mit nachfolgendem Befehle erstmalig gestartet werden:
# /usr/share/icinga2-dashing/restart-dashing Restarted Dashing with PID 10956 listening on port 8005.
===== icinga2-dashing: Erster Aufruf ===== Unter Nachfolgendem Link, kann nun Icinga Dashing aufgerufen werden: * http://localhost:8005 und sollte standardmäßig eine Ausgabe wie die nachfolgende zur Ansicht bringen: Version 2.7.x: Version 2.8.1: ===== systemd Konfigurationen ===== ==== systemd-Startskript ==== Nachfolgendes
systemd
-Startskript kann verwendet werden, um Icinga Dashing auch nach einem Neustart des Servers automatisiert zu starten: Dassystemd
-Startskript sollte z.B. in nachfolgendem Verzeichnis mit nachfolgendem Namen angelegt werden: */etc/systemd/system/icinga2-dashing.service
(Komplette Konfigurationsdatei)[Unit] Description=Icinga2-Dashing host/service/network monitoring system After=syslog.target network.target postgresql.service mariadb.service carbon-cache.service icinga2.service [Service] Type=forking WorkingDirectory=/usr/share/icinga2-dashing ExecStart=/usr/local/bin/dashing start -d -p 8005 --pid /var/run/thin.pid ExecStop=/usr/local/bin/dashing stop [Install] WantedBy=multi-user.target
Nach der Erstellung des
systemd
-Startskript, muss nachfolgender Befehl ausgeführt werden, um diese Änderung demsystemd
auch bekannt zu machen:# systemctl daemon-reload
==== Dienst/Deamon-Start einrichten ==== Um Icinga Dashing, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:
# systemctl enable icinga2-dashing.service Created symlink from /etc/systemd/system/multi-user.target.wants/icinga2-dashing.service to /etc/systemd/system /icinga2-dashing.service.
Eine Überprüfung, ob beim Neustart des Server der
icinga2-dashing
-Dienst/Daemon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:# systemctl list-unit-files --type=service | grep -e icinga2-dashing.service icinga2-dashing.service enabled
bzw.
# systemctl is-enabled icinga2-dashing.service enabled
==== icinga2-dashing: systemd Start ==== Danach kann der icinga2-dashing-Server mit nachfolgendem Befehle gestartet werden:
# systemctl start icinga2-dashing.service
Mit nachfolgendem Befehl kann der Status des Icinga Dashing-Servers abgefragt werden:
# systemctl status icinga2-dashing.service ● icinga2-dashing.service - Icinga2-Dashing host/service/network monitoring system Loaded: loaded (/etc/systemd/system/icinga2-dashing.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2016-12-27 16:12:54 CET; 4s ago Process: 31679 ExecStop=/usr/local/bin/dashing stop (code=exited, status=0/SUCCESS) Process: 1198 ExecStart=/usr/local/bin/dashing start -d -p 8005 --pid /var/run/thin.pid (code=exited, status=0/SUCCESS) Main PID: 1227 (bundle) CGroup: /system.slice/icinga2-dashing.service └─1227 thin server (0.0.0.0:8005) Dec 27 16:12:53 server11.idmz.tachtler.net systemd[1]: Starting Icinga2-Dashi... Dec 27 16:12:54 server11.idmz.tachtler.net systemd[1]: Started Icinga2-Dashin... Hint: Some lines were ellipsized, use -l to show in full.
HINWEIS - Auch ein Stoppen über das
systemd
-Skript ist nun möglich! ===== icingaweb2 einbinden ===== Nachfolgende Änderungen sind erforderlich, um das eigene und bereits lauffähige Icinga bzw. icingaweb2 - siehe auch nachfolgenden Internen Link * Icinga Web 2 bei einer Host/Service-Meldung in die Anzeige von Icinga Dashing einzubinden. ==== /usr/share/icinga2-dashing/dashboards/icinga2.erb ==== HINWEIS - NUR bis Version 2.7.x erforderlich, NICHT mehr ab Version 2.8.1 !!! Nachfolgende Änderungen müssen in der Konfigurationsdatei/usr/share/icinga2-dashing/dashboards/icinga2.erb
durchgeführt werden: (Nur relevanter Ausschnitt):... <!-- Icinga Web 2 iFrame --> <li data-row="4" data-col="1" data-sizex="2" data-sizey="2"> <!-- Tachtler --> <!-- default: <div data-id="iframe" data-view="Iframe" data-url="http://192.168.33.5/icingaweb2/monitoring/list/hosts?host_problem=1&sort=host_severity&showFullscreen&showCompact"></div> --> <div data-id="iframe" data-view="Iframe" data-url="http://dashing-icinga2.tachtler.net/icingaweb2/monitoring/list/hosts?host_problem=1&sort=host_severity&showFullscreen&showCompact"></div> </li> <li data-row="4" data-col="3" data-sizex="2" data-sizey="2"> <!-- Tachtler --> <!-- default: <div data-id="iframe" data-view="Iframe" data-url="http://192.168.33.5/icingaweb2/monitoring/list/services?service_problem=1&sort=service_severity&dir=desc&showFullscreen&showCompact"></div> --> <div data-id="iframe" data-view="Iframe" data-url="http://dashing-icinga2.tachtler.net/icingaweb2/monitoring/list/services?service_problem=1&sort=service_severity&dir=desc&showFullscreen&showCompact"></div> </li> </ul> </div>
Erklärung: *
<div data-id="iframe" data-view="Iframe" data-url="http://dashing-icinga2.tachtler.net/icingaweb2/monitoring/list/hosts?host_problem=1&sort=host_severity&showFullscreen&showCompact"></div>
Es muss jeweils die IP-Adresse
192.168.33.5
gegen die eigene URL zur Anzeige der Hosts mit Problemen ausgetauscht werden! *<div data-id="iframe" data-view="Iframe" data-url="http://dashing-icinga2.tachtler.net/icingaweb2/monitoring/list/services?service_problem=1&sort=service_severity&dir=desc&showFullscreen&showCompact"></div>
Es muss jeweils die IP-Adresse
192.168.33.5
gegen die eigene URL zur Anzeige der Services mit Problemen ausgetauscht werden! HINWEIS - Falls der Webserver mit derX-Frame_option: „SAMEORIGIN“
betrieben wird, ist hier eine mögliche Lösung, die Einbindung vonicingaweb2
als erreichbarenAlias
zur Verfügung zu stellen, falls sich dieicingaweb2
unddashing-icinga2
auf dem selben Webserver befinden! Unter Nachfolgendem Link, kann nun Icinga Dashing aufgerufen werden: * http://localhost:8005 und sollte angepasst um die Einbindung vonicingaweb2
eine Ausgabe wie die nachfolgende zur Ansicht bringen: ===== Optische Modifikationen ===== ==== /usr/share/icinga2-dashing/dashboards/icinga2.erb ==== HINWEIS - NUR bis Version 2.7.x erforderlich, NICHT mehr ab Version 2.8.1 !!! Durch Aufhebung des Kommentars am Anfang der Konfigurationsdatei */usr/share/icinga2-dashing/dashboards/icinga2.erb
können Werte aus der eigentlichen Konfigurationsdatei */usr/share/icinga2-dashing/assets/javascripts/application.coffee
überschrieben werden: Nachfolgendes Beispiel ändert die anzuzeigenden Spalten von 6 auf 4: (Nur relevanter Ausschnitt) Vorher:<!-- <script type='text/javascript'> $(function() { // These settings override the defaults set in application.coffee. You can do this on a per dashboard basis. Dashing.widget_base_dimensions ||= [300, 420] Dashing.numColumns ||= 6 }); </script> --> ...
Nachher:
<!-- Tachtler - enabled - --> <script type='text/javascript'> $(function() { // These settings override the defaults set in application.coffee. You can do this on a per dashboard basis. Dashing.widget_base_dimensions = [300, 300] Dashing.numColumns = 4 }); </script> <!-- Tachtler - enabled - --> ...
HINWEIS - AB bis Version 2.11.x erforderlich !!! Änderung der Zeitzine in der Konfigurationsdatei *
/usr/share/icinga2-dashing/dashboards/icinga2.erb
Nachfolgendes Beispiel ändert die Zeitzone: (Nur relevanter Ausschnitt) Vorher:<li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> <div data-view="Clock" data-title="UTC" data-timezone="UTC"></div> </li>
Nachher:
<li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> <!-- Tachtler --> <!-- default: <div data-view="Clock" data-title="UTC" data-timezone="UTC"></div> --> <div data-view="Clock" data-title="Date/Time" data-timezone="Europe/Berlin"></div> </li>