Unser nächstes Ansible Training ist ausgebucht, aber es gibt bereits neue Termine!

Eines meiner Lieblingszitate lautet wie folgt: „Every expert was once a beginner“.

Jede*r fängt mal bei null an und eignet sich sein*ihr Wissen Stück für Stück an – am besten natürlich von Expert*innen. Daher freut es uns sehr, dass sich so viele für das Ansible Training im Oktober angemeldet haben! Für diejenigen, die gerne teilgenommen hätten: keine Sorge! Wir haben schon neue Termine in den Startlöchern. Lass‘ am besten keine Zeit mehr verstreichen und sichere Dir Deinen Platz:

Ansible Training | Nürnberg | 09.-11. März 2021 | 9 – 17 Uhr & Online | 22.-24. Juni 2021 | 9 – 17 Uhr

 

Falls Du Dich nicht mehr bis zum nächsten Termin im März 2021 gedulden kannst, wie wäre es mit ein paar anderen Schulungen in der Zwischenzeit? Hier aufgeführt findest Du alle demnächst anstehenden Trainings:

 

MONITORING TRAININGS

Icinga 2 Fundamentals | Online | 1.-4. Dezember 2020 | 9-17 Uhr
Icinga 2 Advanced | Nürnberg | 8.-10. Dezember 2020 | 9 – 17 Uhr

Icinga Director Workshop | Nürnberg | 20.-21. Oktober 2020 | 9 – 17 Uhr

 

LOGGING & METRICS TRAININGS

Graylog | Nürnberg | 27.-28. Oktober 2020 | 9 – 17 Uhr
Elastic Stack | München | 24.-26. November 2020 | 9 – 17 Uhr

 

ADMINISTRATION TRAININGS

PostgreSQL Fundamentals | Nürnberg | 1.-3. Dezember 2020 | 9 – 17 Uhr
PostgreSQL Advanced | Nürnberg | 15.-18. Dezember 2020 | 9 – 17 Uhr

 

AUTOMATION TRAININGS

Ansible Tower | Nürnberg | 12. März 2021 | 9 – 17 Uhr

Foreman | Nürnberg | 1.-2. Dezember 2020 | 9 – 17 Uhr
Terraform mit OpenStack | Online | 8.-9. Dezember 2020 | 9 – 17 Uhr

 

DEVELOPMENT TRAININGS

GitLab Fundamentals | Online | 27.-28. Oktober 2020 & Nürnberg | 15.-16. Dezember 2020 | 9 – 17 Uhr

 

Wie Du siehst, gibt es einige Schulungen, die online stattfinden und einige, die vor Ort gehalten werden.

Während Dein Wissensdurst mit einer Online-Schulung auf kurzem Wege und überall gestillt wird, genießt Du bei einer Präsenz-Schulung andere Vorteile: Diskussionsrunden lassen sich leichter starten und der face-to-face Wissensaustausch ist ein anderer. Es gibt noch unzählige weitere Vorteile, die für Online-Schulungen und für Schulungen vor Ort sprechen!

Bist du eher der learn-from-home oder learn-on-site Typ? Was auch immer du bevorzugst, wir haben das Passende für Dich! Falls Du Dich für einen Kurs interessierst, der nicht in Deiner Nähe stattfindet, dann helfen wir Dir gerne bei der Suche eines Hotels! Kontaktiere uns einfach und gemeinsam finden wir eine Lösung.

Hast Du Fragen? Immer her damit, wir helfen Dir gerne weiter! Wir freuen uns auf Dich!

Jessica Kupfer
Jessica Kupfer
Online Marketing Manager

Jessica ist seit September 2020 bei NETWAYS dabei und freut sich unglaublich darüber! Unser Marketing Team bereichert sie mit ihrem Wissen über Social Media und Performance Marketing. Nach 3 Jahren als Au Pair in Boston, L.A. und London und weiteren 6 Jahren in Wien, hat es die gebürtige Saarländerin mit ungarischen Wurzeln nun nach Nürnberg verschlagen. In ihrer Freizeit besucht sie Freunde & Familie, reist gerne und ergreift jede sich bietende Chance, Hunde und Katzen...

Benachrichtigungen mit Icinga 2 mal anders

Vor Kurzem stand ich im Rahmen eines Kundentermins vor der Anforderung noch die Benachrichtigungen für das Icinga 2 Setup umzusetzen. “Soweit kein Problem” dachte ich mir, allerdings war die genaue Anforderung dann doch etwas speziell: Sowohl bei Hosts als auch bei Services können SLA’s gesetzt werden (“gold”, “silver” oder “bronze”). Wenn bei einem Service kein SLA gesetzt ist, greift das Servicelevel des Hosts. Hier der erste Entwurf dazu:

apply Notification "host-mail-gold" to Host {
  import "mail-host-notification"

  period = "gold"
  users = host.vars.contacts

  assign where host.vars.sla == "gold"
}

apply Notification "service-mail-gold" to Service {
  import "mail-service-notification"

  period = "gold"
  users = service.vars.contacts

  assign where (host.vars.sla == "gold" && ! service.vars.sla) || (service.vars.sla == "gold")
}

(more…)

Markus Waldmüller
Markus Waldmüller
Lead Senior Consultant

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Lead Senior Consultant gelandet. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.

Ceph OSDs mit BlueStore erstellen

BlueStore ist das neue Speicher-Backend für Ceph ab Luminous. v12.2.x. Es wird standardmäßig verwendet, wenn neue OSDs durch ceph-disk, ceph-deploy oder ceph-volume erzeugt werden.

Es bietet einen großen Vorteil in Bezug auf Leistung, Robustheit und Funktionalität gegenüber dem bisherigen Ansatz.

Bei einer SSD erzeugt man die OSD mit BlueStore zusammen mit dem Journal (DB/WAL). Ist die Festplatte allerdings eine HDD, dann ist man gut damit beraten wenn man das Journal auf eine extra SSD packt. Für den BlueStore-Cache sollte man 1 GB für Festplatten-gestützte OSDs und 4 GB für SSD-gestützte OSDs an RAM einplanen.

Beispiel1: Festplatte ist eine SSD und wurde als sdh erkannt.

:~# ceph-deploy osd create --data /dev/sdh

Eine andere Möglichkeit ist manuell auf dem Node selbst.

:~# ceph-volume lvm create --data /dev/sdh
:~# dmesg
...
--> ceph-volume lvm activate successful for osd ID: 10
--> ceph-volume lvm create successful for: /dev/sdh

 

Beispiel2: Festplatte ist eine HDD und wurde als sdh erkannt. Die SSD für das Journal wurde als sdb erkannt.

Wir erzeugen auf der SSD eine Volume Group, die wir z.B. ceph-wal nennen. Diese kann dann auch für alle weiteren Journals verwendet werden.

:~# vgcreate ceph-wal /dev/sdb

Dann erzeugen wir eine Volume Group mit einem Logical Volume auf der HDD.

:~# vgcreate ceph-block-h /dev/sdh
:~# lvcreate -l 100%FREE -n block-h ceph-block-h

Nun erzeugen wir ein Logical Volume mit einer Größe von z.B. 10GB

:~# lvcreate -L 10GB -n wal-b ceph-wal

Nun erzeugen wir die OSD mit dem dazugehörigen WAL Device.

:~# ceph-volume lvm create --bluestore --data ceph-block-h/block-h --block.wal ceph-wal/wal-b
:~# dmesg
...
Running command: /bin/systemctl start ceph-osd@10
--> ceph-volume lvm activate successful for osd ID: 10
--> ceph-volume lvm create successful for: ceph-block-h/block-h
Martin Schuster
Martin Schuster
Senior Systems Engineer

Martin gehört zu den Urgesteinen bei NETWAYS. Wenn keiner mehr weiss, warum irgendwas so ist, wie es ist, dann wird Martin gefragt. Er hat es dann eigentlich immer mal schon vor Jahren gesehen und kann Abhilfe schaffen :). Vorher war er bei 100world als Systems Engineer angestellt. Während er früher Nürnbergs Partykönig war, ist er nun stolzer Papa und verbringt seine Freizeit damit das Haus zu renovieren oder zieht einfach um und fängt von vorne...

NETWAYS stellt sich vor – Jessica Kupfer

This entry is part of 30 in the series NETWAYS stellt sich vor

 

Name: Jessica Kupfer

Alter: 28

Position bei NETWAYS: Online Marketing Manager

Bei NETWAYS seit: September 2020

 

 

Wie bist du zu NETWAYS gekommen und was genau gehört zu Deinem Aufgabenbereich?

Nach 6 Jahren studieren und arbeiten in Wien, wollte ich wieder bei bzw. näher an meiner Familie in Deutschland leben und so hat es mich nach Nürnberg verschlagen; ich komme aber gebürtig aus dem Saarland, wo auch meine Eltern und mein Bruder leben. Über einen kleinen Umweg bin ich dann zu NETWAYS gekommen, worüber ich mich unglaublich freue – früher oder später fügt sich dann doch alles irgendwie zum Guten. Vor meinem Bewerbungsgespräch habe ich mir auf der NETWAYS Website einen ersten Eindruck vom Team und Unternehmen verschaffen können und was soll ich sagen – ich war begeistert und habe mich sofort beworben! Also ich freue wirklich sehr, hier zu sein!

Im Marketing Team bin ich u.a. für Social Media und Performance Marketing zuständig, helfe aber auch gerne jedem und auch überall aus!

 

Was macht Dir an Deiner Arbeit am meisten Spaß?

Ich bin noch relativ frisch dabei, daher kann ich dazu noch nicht allzu viel sagen – aber die familiäre Atmosphäre, gepaart mit spannenden Projekten und super netten Leuten, ergibt für mich eine Kombination, die mich mehr als gerne zur Arbeit kommen lässt!

 

Welche neuen Themen wünschst Du Dir?

Ich bin wunschlos glücklich!

 

Was machst Du, wenn Du mal nicht bei NETWAYS bist?

In meiner Freizeit liebe ich es, neue Städte und Länder zu entdecken und so oft es geht meine verstreute Familie zu besuchen. Ansonsten backe ich recht gerne, leihe mir Hunde von Freunden aus, auf die ich dann aufpassen darf und natürlich verbringe ich auch gerne Zeit mit meinen Freunden: am liebsten bei einem guten Abendessen oder Spieleabend!

 

Wie geht es in Zukunft bei Dir weiter?

Ich bin ja erst seit Kurzem wieder zurück in Deutschland, daher lebe und arbeite ich mich erst einmal ein wenig ein und komme mal an. Beruflich möchte ich immer Neues dazu lernen, mich weiterentwickeln und irgendwann mal die Möglichkeit haben, das Wissen, das ich mitbekommen habe, weitergeben zu dürfen!

Jessica Kupfer
Jessica Kupfer
Online Marketing Manager

Jessica ist seit September 2020 bei NETWAYS dabei und freut sich unglaublich darüber! Unser Marketing Team bereichert sie mit ihrem Wissen über Social Media und Performance Marketing. Nach 3 Jahren als Au Pair in Boston, L.A. und London und weiteren 6 Jahren in Wien, hat es die gebürtige Saarländerin mit ungarischen Wurzeln nun nach Nürnberg verschlagen. In ihrer Freizeit besucht sie Freunde & Familie, reist gerne und ergreift jede sich bietende Chance, Hunde und Katzen...

Back to the Future: Icinga2 notifications via XMPP

The commonly used method of notifying users in Icinga2 is (similar to other systems) sending an email. For more urgent and mobile notifications SMS, voice calls and a few other options are possible.

The grow and spreading of chat services made the ussage of such a service the obvious next step (or at least a great gadget). There are scripts for Slack, Rocket Chat, Matrix, Telegram, naturally IRC and, from hearsay, Iridium. As one might have deducted from the head line, the topic here is one more service, namely XMPP/Jabber (Jabber is the deprecated name of the protocol).

XMPP is a free standard (as in freedom, not only as in “free beer”), extensible and there are several implementations for server and client. Although it is not well known, the scope of application is huge. A small example are the chat services of several big tech companies which were simply based on XMPP at the beginning (and also mostly based on free software). Of course, as they grew, this environment was converted to a “walled garden”. The communication follows a procedure similar to email, a client (meaning the device of a user) connects to a server and hands over a message. This message will then be transfered to the target server (if necessary), which will deliver it to a user’s device. Comparably to email, XMPP is intented as a federated system; everybody can (in principle) operate a server and communicate with everybody else.
Accordingly an user is identified by a JID, consisting of a local part (user name) and a domain part in the form of user@domain.tld.

There are three reasons for notifications via XMPP:

  1. In general a second channel for notifications is useful, because the first one might fail. If the mail setup breaks down, nobody gets notified about it (or anything else anymore).
  2. XMPP is a very flexible and powerful protocol and a user can be notified in a short time span and on a wide range of devices (if the device is online or supports a PUSH-like behaviour). Additionaly an XMPP infrastructure of the necessary size can be operated without the need for external dependencies.
  3. The author of this article is a XMPP fan and wants to advertise XMPP a bit. Especially as an alternative to proprietary services of companies with questionable intent.

On the question of the implementation, there are several samples available, for example this article, which appeared in this blog. After six years an update seems appropriate though. Two details  are especially relevant here:

  1. The migration from Python2 to Python3.
  2. The XMPP library used there is deprecated.

For those reasons this variant was developed, but the usage of enviroment variables for the handover of sensible data (login credentials) is not (yet) supported, if one uses the Director for configuring this script. Addiotionaly the sleekxmpp library is deprecated. These and a few other change are implemented in this version, which is the reason and topic of this article.

If one wants to receive XMPP notifications from Icinga2, the ability to send XMPP messages in general is needed, meaning at least an account on a server, for example conversation.im or jabber.at. Alternatively the infra structure could be self operated, for example with an instance of ejabberd. As for dependencies of the script itself, Python3 with standard libraries and the slixmpp library is needed. The script has to copied to a fitting directory (possible /etc/icinga2/scripts) and the configuration from the icinga2_configdirectory has to be integrated in the icinga2 configuration. Especially the path of the script and the details of the sending and the receiving xmpp account have to replaced.

An example for this in action looks like this in conversations:

The whole thing is rather minimalistic at this point and helpful ideas, critic or proposals are welcome.

Finally there isn’t anything left, but to hope, that this might be helpful for someone. If this is the case, it would be really nice to hear about it 🙂

Lorenz Kästle
Lorenz Kästle
Consultant

Lorenz hat seinen Bachelor der Informatik an der FAU gemacht und sich zuletzt mit Betriebssystemen dort beschäftigt. In seiner Freizeit beschäftigt er sich ein wenig mit XMPP und der Programmiersprache Erlang.

Apache Rewrite von HTTP auf HTTPS am Beispiel von Icinga Web 2

Heute gibt es einen kleinen Tipp, wie man seine über einen Apache ausgelieferten Seiten, von HTTP einfach auf HTTPS umleiten kann. Eine einfache Rewrite-Regel sorgt dafür, dass beliebige URLs korrekt auf HTTPS umgeleitet werden. So sind auch als HTTP-URLs gespeicherte Bookmarks weiterhin uneingeschränkt nutzbar. Voraussetzung ist das Laden der Modules rewrite.

Das nun folgende Beispiel bezieht sich auf die Default-Site, es kann aber leicht für weitere Sites abgewandelt werden. Hierzu ist das Beispiel um die Direktiven ServerName und optional ServerAlias zu ergänzen.


<VirtualHost *:80>
RewriteEngine on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>


<VirtualHost _default_:443>
SSLEngine on
Alias /icingaweb2 "/usr/share/icingaweb2/public"
...
</VirtualHost>

Alle weiteren für TLS und Icinga Web 2 nötigen Einstellungen wurden hier ausgelassen.

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.