Seite wählen

NETWAYS Blog

Neues vom Icinga-Installer

Mein letzter Blog Icinga Installation mit Director in 10 Minuten zeigte wie man mit dem Icinga-Installer und etwas Nacharbeit per Hand zu einem arbeitsfähigen Icinga-Server mit Director bekam.

Inzwischen ist eine neue Version 0.5.0 vom Icinga-Installer veröffentlicht, die einem auch komplett die Installation und Konfiguration des Directors inkl. Datenbank-Setup und erstem Kickstart-Lauf abnimmt.

Abschließend noch ein kleiner Tipp, wie unter zur Hilfenahme des Installers, die GUI des Icinga Webs ausschließlich per HTTPS ereichbar gemacht wird. Voraussetzung sind natürlich ein vorhandenes Zertifikat nebst privatem Schlüssel und das CA-zertifikat bzw. ein Chain-File. Diese müssen zuvor an den angegeben Orte im Dateisystem abgelegt werden. Die erforderlichen Einstellungen können nicht interaktiv vorgenommen werden, lassen sich aber in /etc/icinga-installer/custom-hiera.yaml (hier ein Beispiel für ein RedHat basiertes System) festlegen:


---
apache::default_vhost: false
apache::default_ssl_vhost: true
apache::default_ssl_cert: /etc/pki/tls/certs/apache.crt
apache::default_ssl_key: /etc/pki/tls/private/apache.key
apache::default_ssl_ca: /etc/pki/tls/certs/my-ca.crt

Möchte oder muss man eine CA-Chain angeben, lautet die Option apache::default_ssl_chain. Diese ersetzt die Zeile mit default_ssl_ca.

Lennart Betz
Lennart Betz
Senior Consultant

Der diplomierte Mathematiker arbeitet bei NETWAYS im Bereich Consulting und bereichert seine Kunden mit seinem Wissen zu Icinga, Nagios und anderen Open Source Administrationstools. Im Büro erleuchtet Lennart seine Kollegen mit fundierten geschichtlichen Vorträgen die seinesgleichen suchen.

Meerkat (Dashboard für Icinga 2)

Was ist Meerkat? Wie kann man Meerkat installieren, und konfigurieren?

Meerkat ist ein Dienstprogramm, geschrieben in go und javascript, und nicht nur zum Erstellen und Teilen von Dashboards für Icinga 2 geeignet, sondern auch leicht zu installieren und bedienen. Meerkat hat ein Web-Interface, in dem man Dashboards mit beliebigem Hintergrund und Elemente festlegt und aktualisiert, wobei das Meerkat-Backend Abfragen an die Icinga-2-Api zur Darstellung des Status schickt. Hier werden wir Meerkat installieren und konfigurieren und zudem auch Dashboards – als Beispiel für die verschiedenen Visualisierungen und darstellbaren Objekte – bauen.

  • Hier wird Meerkat  mittels Docker als Container installiert, wofür die Installation von docker und docker-compose erforderlich ist.
  • Es gibt auch die Möglichkeit, Meerkat ohne Docker zu installieren.
  • Meerkat wird auf Centos7 mit aktiviertem SELinux installiert, weshalb die SELinux-Berechtigungen für Schreiben und Lesen bei den ContainerVolumes zu beachten sind.

 

Installation

Wir laden zuerst die Meerkat-Repository runter und passen die Konfiguration-Datei docker-compose.yml an, wobei hier nur die Mount-Option Z gesetzt wird, damit das SELInux-Label für private Volumes gesetzt werden und die Volumes lesbar und beschreibbar eingehängt werden können.

Zunächst wird der Meerkat-Zugriff auf das Icinga-2-System konfiguriert – wie vorhin erwähnt, erfolgt dieser über API-Anfragen. Dafür legen wir eine API-User auf dem Icinga-2-System an und starten den Icinga2-Service neu. Danach muss die Datei meerkat.toml auf dem Meerkat-System angepasst werden. Im Anschluss können wir den Meerkat-Container starten!

 

Auf dem Host für den Meerkat-Container:
$ git clone https://gitlab.sol1.net/oss/meerkat.git
$ vim ~centos/meerkat/docker-compose.yml
...
    volumes:
      - ./config:/meerkat/config:Z
      - ./dashboards:/meerkat/dashboards:Z
      - ./dashboards-data:/meerkat/dashboards-data:Z
...
 
 
Auf dem Icinga-2-System:
$ vim cd /etc/icinga2/conf.d/api-user.conf
object ApiUser "meerkat" {
  password = "meerkatpassword"
permissions = [ "objects/query/Host""objects/query/Service"
"objects/query/ServiceGroup""objects/query/HostGroup" ]
}
$ systemctl restart icinga2.service
Auf dem Host für den Meerkat-Container:
$ cd ~centos/meerkat/config
$ cp meerkat.toml.example meerkat.toml
$ vim meerkat.toml
 
HTTPAddr = "[::]:8585"
IcingaURL      = "https://icinga.example.com:5665"
IcingaUsername = "meerkat"
IcingaPassword = "meerkatpassword"
IcingaInsecureTLS = true
 
$ cd ~centos/meerkat
$ docker-compose up
Zunächst loggen wir uns in den Container ein, um herauszufinden, welcher User der Besitzer von dem meerkat-Prozess im Container ist. Anhand der User-ID legen wir einen User auf dem Host-System an und berechtigen ihn Zugang zu den Verzeichnissen, um darunter neue Dashboards anlegen zu können.
$ docker exec -it meerkat_app_1 /bin/sh
/meerkat $ ps -ef
PID   USER     TIME  COMMAND
1 9001      0:00 /meerkat/meerkat -config /meerkat/config/meerkat.toml
27 9001      0:00 /bin/sh
33 9001      0:00 ps -ef
$ sudo useradd -u 9001 meerkat 
$ sudo chown meerkat:meerkat dashboards/ dashboards-data/

 

Meerkat Web-Interface

Nachdem der Meerkat-Container installiert und aktiviert ist, rufen wir das Meerkat-Webinterface auf. Hier habe ich ein paar Dashboards zum Testen gebaut.

  • Create New Dashboard: Dashboardsname eingeben.
  • Background Image: Hintergrund hochladen – hier kann man jedes Bild-Format hochladen, welches im Browser angezeigt werden kann. Getestet wurden die Formate PNP,JPEG,WebP und GIF.
  • Global Status Alerts: Hier kann man den status-alert festlegen – Meerkat bietet neben Visual-Aufbau auch die Möglichkeit, einen status-alert-sound für verschiedene Status festzulegen. In diesem Projekt habe ich diese auf Mute eingestellt.
  • Element: Hier werden die ElementEigenschaften festgelegt, wie Visual-Type (also in welcher Form das Element auf dem Hintergrund angezeigt werden soll) und Element-Type (für Host, Service, Groups oder Filter).
  • Linking URL: Man kann das Element zu einer URL linken.
  • Performance Data: Es gibt die Möglichkeit, Abfragen, die einen Performance-Wert haben, anzeigen zu lassen.

 

Icinga SVG (für Hosts)

 

Icinga Card (für Hosts und Services)

Icinga Image, static Image und Text, Icinga Line

Im folgenden Beispiel sieht man die restlichen Element-Typen wie Icinga-Image (Status-Element für Hosts), static-Image (Logo), static-Text (IP-Adressen) und Icinga-Line (SSh-Verbindung Status).

Saeid Hassan-Abadi
Saeid Hassan-Abadi
Systems Engineer

Saeid hat im Juli 2022 seine Ausbildung als Fachinformatiker für Systemintegration bei uns abgeschloßen, und arbeitet nun in Operation-Team. Der gebürtige Perser hat in seinem Heimatland Iran Wirtschaftsindustrie-Ingenieurwesen studiert. Er arbeitet leidenschaftlich gerne am Computer und eignet sich gerne neues Wissen an. Seine Hobbys sind Musik hören, Sport treiben und mit seinen Freunden Zeit verbringen.

NETWAYS Online Store – mit PrestaShop

Einige werden sich bereits gefragt haben, welche Shop-Software wir in unserem neuen Store eigentlich verwenden. Die Antwort ist PrestaShop, eine elegante Open-Source Lösung aus einer französischen Softwareschmiede, welche  inzwischen schon über 115.000 aktive Shop-Systeme zählt. Nun haben wir sie auch und sind wirklich positiv überrascht. PrestaShop ist natürlich kostenlos und bringt viele wirklich tolle Features mit sich. Was noch nicht vorhanden ist kann relativ einfach mit (meistens) kostenfreien Plugins nachgerüstet werden. Der alte NETWAYS-Online-Store lief übrigens mit der weitaus bekannteren Software Magento.
Warum hat NETWAYS plötzlich PrestaShop im Einsatz?
Unser alter Shop hatte wirklich ein Redesign nötig, lange haben wir überlegt, das bestehende System nochmal komplett aufzuarbeiten, haben uns letztendlich dagegen entschieden. Aktuell kursiert das Gerücht, die Magento Community Edition wird nicht mehr weiter entwickelt, doch gerade bei einem Online-Shop mit sensiblen Kundendaten ist ein stets aktuelles und sicheres System sehr wichtig. Deshalb fiel die Entscheidung auf eine Migration auf ein neues System. Nach ein paar Vergleichen, mit spezieller Gewichtung auf grafische Anpassbarkeit, B2B-Shop Funktionalität und natürlich Open-Source ist die Wahl dann auf Presta gefallen.
War der Umzug kompliziert?
Wir haben uns außerdem dazu entschieden, die komplette Produktpalette anstatt sie einfach nur zu importieren, neu anzulegen, so wird eine gewisse Aktualität der Produkte sichergestellt. Außerdem wurden die Kundendaten aus unserem alten System exportiert und in das neue System importiert, dabei haben wir jedem Kunden ein eigenes, nahezu unknackbares Kennwort mit 32 Zeichen hinterlegt. Die Kunden wurden per Mail aufgefordert, ein neues Passwort anzufordern und dieses dann zu ändern. In Summe war die Migration der Daten zwar von der Menge her viel, jedoch war der Aufwand mit der richtigen „Taktik“ überschaubar.
Wieso stimmen die Links mit dem alten Shop überein?
PrestaShop ist von Haus aus, was die Links angeht relativ einfach gestrickt und kann einen Artikel-Link im Normalfall nur so darstellen: http://shop.netways.de. Was natürlich problematisch ist, da wir unsere Links mit allen Unterkategorien darstellen möchten z.B. so: http://shop.netways.de/alarmierung/gsm-modem-ethernet/multi-tech-smsfinder.html. „alarmierung“ ist die erste Unterkategorie und „gsm-modem-ethernet“ die Unterkategorie von Alarmierung, dies ermöglicht unseren Kunden stets einen guten Überblick, in welcher Kategorie sie sich gerade befinden. Realisiert haben wir diese Link-Erzeugung mit dem AddOn URL Rewriting +.
Was ist so besonders an PrestaShop?
PrestaShop fand ich von Anfang an sehr interessant, z.B. die Möglichkeit von einem Produkt mehrere Varianten anzulegen, dadurch wirkt der Shop sehr aufgeräumt und erleichtert dem Kunden die Auswahl der richtigen Lösung. Anhand des Beispiels unserer SecurityProbe sieht man sehr deutlich das Feature der Variantenauswahl. So kann der Kunde auswählen, ob das Produkt eine SMS-Alarmierung mitbringen soll und ob und in welcher Anzahl Anschlussmöglichkeiten für potentialfreie Kontakte vorhanden sein sollen. Der Preis sowie die Artikelnummer werden automatisch angepasst. Magento sollte dieses Feature zwar auch mitbringen, jedoch funktionierte das nicht wirklich.
Außerdem besticht PrestaShop durch viele tolle Designs (welche zum Teil auch wieder Geld kosten) und tollen Effekten z.B. dem Ajax-basierten Warenkorb. Demnächst wird Version 5 von Presta angeboten, dieses besticht dann mit einer vollständigen B2B-Integration, sowie einem überarbeitetem Backend und reichlich neuen Features.
Welche Plugins sind verfügbar?
Eigentlich gibt es für alle denkbaren Anforderungen Add-Ons, sei es nur das PayPal Zahlungsmodul, über die Möglichkeit den Smarty-Cache zu leeren, URL-Rewrites, Slideshows usw. ..
Ist der neue Shop schon online?
Ja, der neue Shop ist seit Anfang August online und muss seither dem Ansturm unserer Kunden standhalten. Bisher können wir von keinen Ausfällen oder Schwächen berichten. Zu sehen ist unserer Shop rund um die Uhr unter http://shop.netways.de

Jasper Reporting – Die Installation

Jasper-ReportingDie Installation des JasperServers, also der Serverkomponente für die Erzeugung und den automatischen Versand der Berichte, ist durch die verfügbare Linux-Installation ein Kinderspiel. Zwar sind die Komponenten auch ohne Tomcat und MySQL paketiert auf JasperForge.org verfügbar, jedoch empfiehlt sich für den Einstieg der Download des Linux-Installers.
Leicht gekürzt erfolgt die Installation des Installers in etwa so:
[code lang=“shell“]
chmod +x jasperserver-3.5.0-linux-installer.bin
./jasperserver-3.5.0-linux-installer.bin
[/code]
Auswahl des Installationsverzeichnisses:
[code lang=“shell“]
Please specify the directory where JasperServer 3.5.0 will be installed.
Installation directory: [/opt/jasperserver-3.5.0]:
[/code]
Integration in einen bestehenden Tomcat-Server:
[code lang=“shell“]
[1] I wish to use the bundled Tomcat
[2] I wish to use an existing Tomcat
Please choose an option [1] :
[/code]
Verwendung einer vorhandenen Datenbank:
[code lang=“shell“]
[1] I wish to use the bundled MySQL database
[2] I wish to use an existing MySQL database
Please choose an option [1] :
[/code]
Nach Angabe der Ports für Tomcat können Optional noch die Demo-Schemas und Reports installiert werden. Das empfilet sich insbesonderen aller Jasper Neulingen, da dadurch ein guter Überblick über die vorhandenen Features gegeben wird. Die Installation von iReports empfiehlt sich nur, wenn der entsprechender Server z.B. auch die Linux-Workstation ist. Allen anderen sollten sich iReport lokal auf ihrer Workstation installieren und später die Reports durch den Wizard auf den Server deployen.
Sobald die Installation beendet ist, ist der Server unter folgender URL erreichbar und die Demo-Reports stehen zur Verfügung.
[code lang=“shell“]
http://servername:8080/jasperserver/login.html
[/code]


Um den Zugriff auf den Server zu erleichtern, ist auch die Anbindung via Apache und Einsatz der Module mod_proxy und mod_rewrite möglich. Hier ein Beispiell:
[code lang=“shell“]
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
RewriteEngine on
RedirectMatch ^/$ http://servername/jasperserver
ProxyPass /jasperserver http://servername:8080/jasperserver
ProxyPassReverse /jasperserver http://servername:8080/jasperserver
[/code]
Der nächste Post widmet sich der Installation von iReport und der Erstellung eines Demoberichts.

Bernd Erk
Bernd Erk
CEO

Bernd ist Geschäftsführer der NETWAYS Gruppe und verantwortet die Strategie und das Tagesgeschäft. Bei NETWAYS kümmert er sich eigentlich um alles, was andere nicht machen wollen oder können (meistens eher wollen). Darüber hinaus startete er früher das wöchentliche Lexware-Backup, welches er nun endlich automatisiert hat. So investiert er seine ganze Energie in den Rest der Truppe und versucht für kollektives Glück zu sorgen. In seiner Freizeit macht er mit sinnlosen Ideen seine Frau verrückt und verbündet sich dafür mit seinen beiden Söhnen und seiner Tochter.

Installation von NConf unter Debian

Das NConf ein interessantes Web-Konfig-Tool für Nagios ist, haben wir ja hier im Blog schon ein paar Mal erwähnt. Hier eine kurze Anleitung zur Installation von NConf unter Debian Lenny.
Folgende Pakete müssen vor der Installation auf dem System vorhanden sein:

  • Apache Webserver
  • PHP4.4 oder höher mit php-mysql (bei LDAP Auth auch php-ldap)
  • MySQL 5.0.2 inkl. InnoDB
  • Perl 5.6 oder höher mit perl-DBI und perl-dbd-mysql
  • ein Nagios Binary

Zur Installation geht man nun die folgenden Schritte durch:

  1. Entpacken des Tarballs
    [code lang=“shell“]mv nconf-1.2.4-0.tgz /var/www
    tar –zxvf nconf-1.2.4-0.tgz[/code]
  2. Anpassen der Schreibrechte für den Webserver
    [code lang=“shell“]chown www-data:www-data ./config ./output ./temp[/code]
  3. Anlegen der Datenbank
    [code lang=“shell“]$> mysql -u root –p
    Enter password:
    mysql> create database nconf;
    mysql> grant select, insert, update, delete, create, drop, alter ON `nconf`.* to ’nconf’@’localhost‘ identified by ‚PASSWORT‘;[/code]
  4. Importieren der Datenbank Grundstruktur
    [code lang=“shell“]mysql -u root -p nconf < INSTALL/create_database.sql[/code]
  5. Aufrufen des NConf Webinterface unter
    http://<IP Adresse>/nconf/INSTALL.php
    Dort startet nur der Installationsassistent von NConf, der nacheinander die folgenden Schritte durchläuft:

    1. Im ersten Schritt wird geprüft ab auf dem System alle benötigten Pakete vorhanden sind
    2. Im zweiten Schritt müssen die Angaben zur Datenbankverbindung gemacht werden
    3. Und zuletzt werden die erkannten Pfade angegeben, die man hier nochmal anpassen könnte
  6. Als aller letzer Schritt, bevor man das Webinterface starten kann, muss man an der Konsole noch die temporären Installationsdateien entfernen. Aus Sicherheitsgründen ist das sehr sinnvoll.

Nun kann man NConf über die URL http://<IP Adresse>/nconf/ starten und benutzen.
Viel Erfolg

Julian Hein
Julian Hein
Executive Chairman

Julian ist Gründer und Eigentümer der NETWAYS Gruppe und kümmert sich um die strategische Ausrichtung des Unternehmens. Neben seinem technischen und betriebswirtschaftlichen Background ist Julian häufig auch kreativer Kopf und Namensgeber, beispielsweise auch für Icinga. Darüber hinaus ist er als CPO (Chief Plugin Officer) auch für die konzernweite Pluginstrategie verantwortlich und stösst regelmässig auf technische Herausforderungen, die sonst noch kein Mensch zuvor gesehen hat.