Seite wählen

NETWAYS Blog

Linux Monitoring mit Icinga – so löst du bekannte Probleme

Beim Betrieb von Computerinfrastrukturen treten früher oder später Probleme auf. Typischerweise schon bei der Einrichtung und später bei Änderungen, aber auch im “Normalbetrieb”. Die Ursachen dafür sind entweder extern, intern oder eine Mischung aus beidem. Zu regelmäßig auftretenden externen Ursachen zählen zum Beispiel eine Änderung des Kontextes der Maschinen, wie etwa ein Strom- und/oder Netzwerkausfall oder Updates, die etwas am äußeren Verhalten eines Programmes ändern.
Aber auch schlicht der Fortlauf der Zeit muss hier erwähnt werden. Eine tragische und unaufhaltsame Gewissheit, die durchaus technische Bedeutung hat, etwa in der Gültigkeit von Zertifikaten oder Problemen mit der Zeitsynchronisation.

Intern können Probleme durch eine bestehende Fehlkonfiguration entstehen. Dieser Begriff ist jedoch etwas Vorsicht zu genießen, da es durchaus Szenarien gibt, in denen eine bestimmte Konfiguration zum Zeitpunkt der Entstehung durchaus richtig und angemessen war. Oftmals zeigt sich erst im Verlauf von Monaten oder Jahren oder durch Änderung des Kontextes, dass die damals „richtigen“ Einstellungen problematisch sind.

An dieser Stelle tritt Monitoring auf den Plan und nimmt seinen Platz in einer gut geplanten IT-Infrastruktur ein. Enterprise-Monitoringlösungen wie Icinga versuchen bei der Voraussage, Entdeckung und Behebung von Problemen zu helfen. Um dir einen guten und vielfältigen Eindruck von den Möglichkeiten eines gut eingerichteten Monitoringtools zu geben, gehe ich in diesem Blogpost auf einige klassische und häufige Probleme, speziell im Kontext von Linux (und damit häufig auch anderen unixoiden Betriebssystemen) ein.

Im Laufe meines Beitrags werde ich regelmäßig auf die Monitoring Plugins eingehen, da diese beim Erkennen von Problemen eine wichtige Rolle spielen. Diese Zusammenstellung an Plugins ist neben Icinga auch für den Einsatz mit anderen Monitoring-Systemen geeignet, solange diese die Monitoring Plugins unterstützen.

Gängige Probleme auf Linux-Maschinen und Monitoringlösungen mit Icinga

Dateisysteme erreichen die Kapazitätsgrenzen

Ein nicht sehr häufiges (bezogen auf die Auftretenswahrscheinlichkeit), aber fatales Problem ist ganz klassisch, dass im Betrieb ein Dateisystem bis an die Kapazitätsgrenzen vollläuft. Dies führt üblicherweise dazu, dass das System seinen Betrieb ganz oder teilweise einstellt, jedoch ist das Fehlerbild potenziell auf den ersten Blick nicht offensichtlich. Beispielsweise können Programme keine großen Dateien mehr anlegen, beziehungsweise wird das Schreiben derselben abgebrochen, aber kleine, temporäre Dateien sind vielleicht (für den Moment) noch möglich.
Das führt je nach betrachteter Software und deren Fehlerbehandlung dazu, dass erst mal noch alles in Ordnung erscheint. Ein Webdienst wird weiterhin ansprechbar sein und kleine Abfragen durchaus beantworten, dann aber bei anderen (bei denen dann versucht wird größere Dateien zu schreiben) die Bearbeitung abbrechen und nur noch Fehler ausgeben, aber nicht vollständig abstürzen.

Ein anderes Beispiel ist eine Datenbank, die zwar noch lesende Zugriffe durchführen kann, aber eben keine Schreibenden. In diesen Fällen wird ein einfacher Test auf die Funktionalität des Dienstes (das init-System des Systems bescheinigt, dass der Dienst läuft; entsprechende Anfragen auf bestimmten Ports werden noch angenommen) ein positives Ergebnis bescheinigen. Trotzdem ist die eigentliche Hauptfunktionalität nicht mehr gegeben.

In einem typischen Szenario, in dem die Checks für das System lokal (oder aus der Ferne über gängige Transportwege wie SSH) ausgeführt werden, ist die klassische und gängigste Wahl beim Monitoring mit Icinga check_disk ( aus den Monitoring Plugins (Debian- und Suse-artige Distributionen) bzw. nagios-plugins (RedHat-Familie)). Zwar ist die Benutzung teilweise etwas ungewöhnlich (Stichwort Gruppierung), aber für unkomplizierte Dateisystem-Setups (und damit die häufigsten) durchaus noch ausreichend.

Ein typischer Aufruf könnte etwa so aussehen:

# ./plugins/check_disk -w 2% -c 1% \
    -X none -X tmpfs -X fuse.portal -X fuse.gvfsd-fuse \
    -X sysfs -X proc -X squashfs -X devtmpfs
DISK OK - free space: / 32892MiB (58% inode=83%); /boot 257MiB (57% inode=99%); /var 147782MiB (65% inode=92%); /home 154929MiB (34% inode=96%); /boot/efi 503MiB (98% inode=-);| /=24961351680B;61414781747;62041463193;0;62668144640 /boot=197132288B;482974105;487902412;0;492830720 /var=83065044992B;245826626519;248335061483;0;250843496448 /home=314740572160B;492755872645;497783993794;0;502812114944 /boot/efi=7340032B;524078284;529426022;0;534773760

# ./plugins/check_disk -w 2% -c 1% -N ext2 -N ext4
DISK OK - free space: / 32892MiB (58% inode=83%); /boot 257MiB (57% inode=99%); /var 147782MiB (65% inode=92%); /home 154935MiB (34% inode=96%);| /=24961351680B;61414781747;62041463193;0;62668144640 /boot=197132288B;482974105;487902412;0;492830720 /var=83065044992B;245826626519;248335061483;0;250843496448 /home=314734280704B;492755872645;497783993794;0;502812114944

In diesem Beispiel werden die Grenzwerte für Dateisysteme so gesetzt, dass der Warnzustand bei weniger als zwei Prozent freiem Speicherplatz und der Kritische bei weniger als einem Prozent auftritt. Die Sammlung an -X-Parametern (beziehungsweise das komplementäre -N) schließt diverse Dateisystemtypen aus, die nicht geprüft werden sollen. Die von mir in diesem Beispiel ausgeschlossenen Dateisystemtypen fallen nicht unter die Kategorie, die man hier im Auge hat. Hierbei handelt es sich um Dateisysteme die meine Dateien persistent auf magnetische Platten oder Halbleiterspeicher fixieren.

Alternativ können check_disk gezielt ein oder mehrere Befestigungspunkte übergeben werden:

./plugins/check_disk -w 2% -c 1% -p /home -p /boot
DISK OK - free space: /home 154935MiB (34% inode=96%); /boot 257MiB (57% inode=99%);| /home=314733232128B;492755872645;497783993794;0;502812114944 /boot=197132288B;482974105;487902412;0;492830720

Zur Feinjustierung existieren noch mehr Optionen, ein check_disk --help kann sehr hilfreich sein. Das Setzen von Grenzwerten für die Benutzung von Inodes mittels -W und -K ist leider ein viel zu häufig vergessenes Problem. Ein Mangel an freien Inodes bietet ein sehr ähnliches Bild wie eine Mangel an freiem Platz, jedoch ist es weniger offensichtlich (und tritt auch deutlich seltener auf).

Alternativen zu check_disk sind diverse andere Monitoring Plugins, wie etwa disk_usage der Linuxfabrik. Damit wird zu großen Teilen dieselbe Problematik abgedeckt. Weiterhin gibt es Plugins, die Rand- oder Sonderfälle behandeln, die außerhalb des Funktionsumfangs der klassischen Plugins liegen.
Sonderfälle dieser Art wären etwa kompliziertere Setups mit Dateisystemen mit einer größeren Menge an Funktionen wie etwas btrfs, xfs oder zfs. Hier ist eine einfache Aussage, wie die von mir bereits betrachtete “Wie viel Platz ist frei/belegt?” nicht so einfach zu treffen. Als wäre das noch nicht genug, gibt es hierbei noch die Problematik von Netzwerk- und verteilten Dateisystemen, die auch etwas komplexer ist.

TLDR

Mindestens das root-Dateisystemen sollte mit check_disk oder etwas Ähnlichem überwacht werden, als Checkintervall reichen fünf Minuten locker aus. Zusätzliche Dateisysteme für das Persistieren von Daten sollten äquivalent überwacht werden. Auch sollte überwacht werden, ob noch genügend Inodes frei sind.

Swapping

Swap-Speicher ist ein Bereich im Langzeitspeicher, der zur Auslagerung von Arbeitsspeicherinhalten dienen kann (Stichwort “Auslagerungsdatei” unter Windows). In Zeiten von sehr limitierter Arbeitsspeicherkapazität eine nützliche Funktion, um kurzfristige Kapazitätsengpässe handhaben zu können, ohne Nutzerprogrammen den angeforderten Speicher zu verweigern. Zusätzlich dient der Swap-Bereich heutzutage oft als Speicherort für Arbeitsspeicherinhalte, wenn eine Maschine in einen Ruhezustand versetzt und der (physikalische) Arbeitsspeicher ebenfalls außer Betrieb geht (Stichwort: “Hibernation”).

Diese Möglichkeiten kommen natürlich mit einem Preis. Festspeicher (“long term storage”) ist immer noch um Größenordnungen langsamer als Arbeitsspeicher (der wiederum deutlich langsamer als die
Speicher (“L*-Caches”) in der CPU ist). Die Auslagerung von aktiv genutzten Arbeitsspeicherinhalten kann dazu führen, dass ein System langsam bis an die Grenze der Benutzbarkeit gebracht wird. Das ist bei einem PC störend und frustrierend, kann jedoch bei Produktivmaschinen teilweise noch schlimmere Konsequenzen haben.
Eine Maschine, die ohnehin gerade unter Last steht, weil sie zum Beispiel sehr viele Abfragen erhält, wird, wenn das Swapping beginnt, sehr viel langsamer werden, was dann die Belastung typischerweise nicht senkt. Es sollte deshalb sichergestellt sein, dass die Nutzung von Swapspeicher (im Normalbetrieb) sowohl in Hinsicht der Quantität (Prozent an freiem/benutzten Speicher) als auch im zeitlichen Rahmen begrenzt ist.

Klassisch bietet sich hier check_swap (wiederum Monitoring Plugins|nagios-plugins) an, beispielsweise:

# ./plugins/check_swap -w 60% -c 20%
SWAP OK - 100% free (36863MB out of 36863MB) |swap=38653657088B;23192194200;7730731400;0;38653657088

In diesem Beispiel wird getestet, ob weniger als 60 Prozent des Swapspeichers frei ist (Grenzwert für WARNING) bzw. 20 Prozent (Grenzwert für CRITICAL). Eine temporär hohe Nutzung mag (je nach Szenario) durchaus erlaubt sein, aber längerfristig dürfte dies ein Problem darstellen.
Als groben Richtwert könnte man vielleicht fünfzehn Minuten anlegen, nach denen jemand alarmiert werden sollte. Das Checkintervall dürfte mit ein, zwei oder drei Minuten ausreichend bedient sein.

Wie hoch ist die Systemlast?

Ganz generell sind Systemressourcen limitiert, seien es CPU-Zeit, Speicher, andere Prozessoren und natürlich die ganzen Schnittstellen dazwischen. Manchmal lässt sich nicht oder nur schlecht an einzelnen kleinen Metriken ablesen, wenn ein Engpass besteht, zumindest wenn die Werte nur eine Teilmenge aller Werte darstellen und die wichtigen Metriken nicht enthalten sind. In unixoiden Systemen gibt es aus diesen und anderen Gründen die load-Metrik, die zwar die Details vermissen lässt, aber zuverlässig einen Indikator für ein Problem liefert.

Händisch kann die load mit dem Programm uptime (beispielsweise) abgerufen werden:

# uptime
 12:21:58 up  1:25,  1 user,  load average: 0.40, 0.38, 0.23

Die load besteht hier aus den drei Zahlenwerten 0.40,0.38 und 0.23, mit einem Aggregatswert über eine Minute, fünf Minuten und fünfzehn Minuten.

Alternativ direkt aus dem Proc-Dateisystem:

# cat /proc/loadavg
0.00 0.06 0.12 1/1316 27272

Und in “proc (5)” findet sich dann auch eine Erklärung der Zahlen.

Wer sich jetzt nicht jedes Mal die Arbeit machen will, diese Werte mit einem händisch eingegebenen Befehl aufzurufen und auszulesen, kann auf eine automatisierte Überwachung durch Check-Plugins, in diesem Fall check_load (Monitoring Plugins|nagios-plugins) setzen. Die Grenzwerte sind in diesem Fall etwas schwierig zu bestimmen, da die “zu hohe Last” stark vom Kontext abhängt.
Generell lässt sich sagen, dass eine load von eins fast der Idealwert ist, da sich damit (im Durchschnitt) immer ein Prozess in der Warteschlange befindet.

Für Werte größer als eins wird die Beurteilung schwieriger. Die Zahlenwerte aus meinem Beispiel stammen von einem Laptop ohne größere Aktivitäten (nur zwei Webbrowser). Für eine größere Maschine, etwa einen Datenbankserver mit 16 (oder mehr) CPU-Kernen, kann ein Wert von 40 auch normal sein und durchaus noch einen akzeptablen Betriebszustand darstellen. Die Option -r für check_load dividiert die load-Werte durch die Anzahl der CPU-Kerne, um eine gewisse “Normalisierung” der Werte zu erreichen, die meistens angemessen ist.

Ein angemessenes Monitoring wäre ein Checkintervall von einer bis drei Minuten mit Benachrichtigung nach fünfzehn Minuten. Als Grenzwerte wären 3,3,3 für WARNING und 5,5,5 für CRITICAL als einigermaßen konservative Einschätzung angemessen.

Ausfälle von Services (systemd) und Prozessen

In den meisten Fällen stellen Maschinen Dienste für Menschen oder andere Maschinen bereit und es ist normalerweise von gesteigertem Interesse, ob dieser Dienst auch läuft. In den meisten Linux-Distributionen ist systemd als Event- und Servicemanager im Einsatz und sollte dazu benutzt werden, durchgängig laufende Programme zu verwalten.

Mittels check_systemd lässt sich ermitteln, ob Dienste (bzw. generalisiert, systemd-units) in einem fehlerhaften Zustand sind oder nicht.

Dazu ein Beispiel mit dem SSH-Serverdienst (openssh):

# ./check_systemd.py -u ssh
SYSTEMD OK - ssh.service: active | count_units=490 data_source=cli startup_time=6.193;60;120 units_activating=8 units_active=332 units_failed=2 units_inactive=148

Im Hintergrund sind Dienste am Ende aber auch “nur” Prozesse und du möchtest potenziell diverse Eigenschaften von Prozessen überprüfen (etwa CPU-Nutzungszeit (in Prozent), oder die Größe des benutzten Speicherbereichs). Erste Anlaufstelle ist für mich check_procs.

Beispielsweise kannst du damit überprüfen, ob Zombieprozesse vorhanden sind:

# ./plugins/check_procs -s Z -w 1
PROCS OK: 0 processes with STATE = Z | procs=0;1;;0;

Ein weiterer Anwendungsfall ist die Überprüfung aller Prozesse, die mehr als zwei Prozent der CPU-Zeit verschlingen:

# ./plugins/check_procs --metric CPU -w 2
CPU WARNING: 1 warn out of 310 processes | procs=310;;;0; procs_warn=1;;;0; procs_crit=0;;;0;

Dateieigenschaften – warum Probleme auftreten können

An vielen Stellen muss überprüft werden, ob eine oder mehrere Dateien vorhanden sind und/oder bestimmte Eigenschaften aufweisen, beispielsweise ob sie älter oder jünger als ein gewisses (relatives) Datum sind, größer oder kleiner als ein Grenzwert sind oder bestimmte Berechtigungen haben. Die Ergebnisse einer solchen Überprüfung können als Indikator für ein Problem in einem Programm dienen, etwa, dass Dateien in einem Spooler-Verzeichnis nicht schnell genug abgeholt werden.

Glücklicherweise ist das ein Bereich, der sich relativ einfach durch selbstgeschriebene, auf den Nutzungsfall abgestimmte Skripte abdecken lässt. Wenn man den passenden find Befehl zusammengebaut hat, kann man nach den Monitoring Plugins Guidelines dann ein Monitoring Plugin bauen, dass den eigenen Spezialfall abdeckt.

Für etwas generellere Fälle gibt es mit check_file_age aber bereits eine Option, die zumindest das Überprüfen auf Alter und Größe erlaubt.

# ./plugins-scripts/check_file_age -f plugins-scripts/check_file_age -w 300:30000000 -c 1: -W 1:300
FILE_AGE WARNING: plugins-scripts/check_file_age is 516096 seconds old and 5193 bytes | age=516096s;300:30000000;1: size=5193B;1:300;0:;0

In diesem Beispiel sollte die Datei plugin-scripts/check_file_age älter als eine Sekunde sein (kritische Bedingung), zwischen 300 und 30000000 Sekunden alt (Bedingung für den WARNING-Zustand) und zwischen einem und 300 Bytes gross (zweite Bedingung für WARNING).

Für alle die es etwas vielfältiger mögen, wären die Monitoring Plugins der Linuxfabrik, die mit file beginnen, eine Option.

Schlusswort

Die angesprochenen Probleme sind natürlich nur ein kleiner Teil der möglichen Problemstellungen, mit denen man als Systemadministrator konfrontiert wird. Zudem habe ich mich für diesen Beitrag auch ausschließlich auf Themen innerhalb einer Maschine limitiert. Die Thematik der Netzwerkproblembehandlung hätte den Rahmen mehr als gesprengt, bietet aber ein gutes Thema für weitere Blogposts.

Ich hoffe, ich konnte anhand meiner gewählten Beispiele verdeutlichen, welche Möglichkeiten der Einsatz von Monitoringlösungen wie Icinga bietet, besonders dann, wenn du ein Unix-basiertes Rechner- oder Servernetz betreibst. Und auch wenn ich mich im Rahmen dieses Posts auf die Ausführung der Checks über die Konsole beschränkt habe, lass dich davon bitte nicht abschrecken. Natürlich können all diese Eingaben auch (bis zu einem gewissen Punkt) mit der grafischen Lösung Icinga Director und die Weboberfläche Icinga Web durchgeführt werden.

Falls du und dein Unternehmen jetzt noch Hilfe bei der Einrichtung und Konfiguration von Icinga benötigt, lass es uns einfach wissen!

In der Zwischenzeit, bleibt zu hoffen dass diese Lektüre jemandem geholfen hat und wenn (aber auch wenn nicht), dann würde sich der Autor über Kommentare freuen.

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.

NETWAYS Professional Services – 360° oder: Was Dich bei uns erwartet

NETWAYS ist ein Dienstleister für Open Source IT Infrastruktur. Wir bieten Dir 360° IT Services an und versorgen Dich rund um Deine Open Source Software und Infrastruktur mit allem, was Du für einen reibungslosen und sorgenfreien IT-Betrieb brauchst. Bei uns bekommst Du die passende Unterstützung, zusätzliche Arbeitskraft und das notwendige Wissen, um Deine Projektziele zu erreichen. Wir bieten Consulting, Outsourcing, Support und Trainingsalles aus einer Hand.

Das hört sich super an! Aber was bedeutet das genau? Bei welchen Themen, kannst Du Dich an uns wenden und was erwartet Dich dann? Wichtige Fragen, die ich heute für Dich klären möchte.

Unser Portfolio – ein Überblick

Unser Portfolio kannst Du Dir grob gesagt wie eine Matrix vorstellen. Während auf der horizontalen Achse unsere Dienstleistungen Consulting, Outsourcing, Support und Trainings stehen, sind auf der vertikalen Achse Produkte aus dem Open Source Bereich zu finden. Für den Bereich Monitoring & Metrics sind das Icinga, Prometheus, Grafana und InfluxDB, für den Bereich DevOps & Container Kubernetes und GitLab, für den Bereich Logging & Security Elastic und Graylog und für Automation Ansible, Puppet, Foreman und Terraform.

Als Dienstleister mit Leidenschaft versuchen wir, möglichst viele Felder dieser Matrix zu füllen. Stets am Zahn der Zeit bilden wir uns selbst ständig weiter, um für Dich die neuesten Tools und Technologien im Angebot zu haben. Also, was darfs sein? Und wie geht es weiter, wenn Du Dich für eines unserer Angebote interessierst? Wir stellen uns das so vor:

Schritt 1 – Kontaktaufnahme

Zuallererst trittst Du mit uns in Kontakt. Eine kurze Mail an sales@netways.de oder ein Anruf unter +49 911 92885-44 genügt. Hinter diesen Kontaktdaten verbirgt sich, Du ahnst es, unter Sales-Team. An dieser Stelle möchte ich ausdrücklich erwähnen, dass unser Sales-Team technisch sehr versiert ist. Unser Sales-Profi Christian beispielsweise beantwortet gerne alle technischen Fragen zu Icinga.

Christian ist seit über 10 Jahren bei NETWAYS, präsentiert unseren Kunden die Vorteile von Open Source Lösungen und bespricht die Möglichkeiten der Integration mit ihnen. Er arbeitet selbst intensiv mit Tools wie Icinga und ist der leitende Entwickler für Icinga für Windows. Du willst die Überwachung von Windows-Umgebungen so einfach wie möglich gestalten? Call Christian! Nur um hier keinen falschen Eindruck zu hinterlassen: Alle anderen im Team sind genauso versiert und wir können Dir nicht nur zu Icinga, sondern zu allen weiteren Produkten in unserem Portfolio weiterhelfen.

Schritt 2 – Vom Auftrag zum Projekt

Nach dem Gespräch mit Sales, bekommst Du selbstverständlich ein Angebot zugesendet. Nachdem Eure Beauftragung bei uns eingegangen ist, landet diese in unserer Projektplanung. Grob gesagt werden hier die Projekte den Consultants zugeschlüsselt. Wir betrachten es als „technische Disposition“. Was sich erstmal wie eine 0815 Verwaltungstätigkeit anhört, ist… Verwaltung, klar, aber nicht nur und sicher nicht 0815. Hier arbeiten ausgebildete Informatiker:innen, die einen Überblick über unsere Ressourcen und euer Projekt haben. Sie verstehen euer Projekt sowohl technisch als auch organisatorisch und können unsere technischen Kolleg:innen in ihrem Fachwissen einschätzen. So finden wir die bestmögliche Lösung für Dein Projekt. Kein Problem!

  • Ihr benötigt jemanden für einen Tag, um ein Review eurer Installation durchzuführen? Kein Problem! (Consulting)
  • Ihr benötigt Unterstützung für ein größeres Projekt das Mona te oder gar Jahre dauern kann? Kein Problem! (Consulting, Outsourcing)
  • Ihr benötigt Hilfe beim Aufbau einer Proof-of-Concept Umgebung? Kein Problem! (Consulting)
  • Ihr hättet gerne eine Installation, ein Training und Support im Anschluss? Kein Problem! (Einmal alles – also Consulting, Trainings, Support)
  • Ihr benötigt kurzfristig einen Termin? Es klappt leider nicht immer, aber „Challenge accepted!“ (Was auch immer Du kurzfristig brauchst!)

Meine Kolleg:innen planen denjenigen ein, der oder die am besten zu euren Anforderungen passt. Wir finden die beste, organisatorische Lösung und die beste, technische Ansprechperson für Euch und euer Projekt.

Zudem versuchen wir immer wieder dieselben Kolleg:innen zu Dir zu schicken. Wenn ein Consultant einen Proof-of-Concept mit Dir erarbeitet, dann wird diese Person auch die produktive Installation und das dazu passende Training durchführen. Bei uns bekommst Du alles aus einer Hand – im wahrsten Sinne des Wortes! Und dennoch die Sicherheit, dass immer jemand da ist. Denn mit uns buchst Du nicht nur eine einzelne Person, sondern die Unterstützung und das Wissen einer ganzen IT-Firma.

Schritt 3 – Dein Projekt, Deine Lösung

Nun ist der Tag gekommen: Wir haben einen Termin und damit beginnt die Arbeit an Deinem Projekt. Virtuell aus dem Homeoffice, physisch bei euch im Büro oder in unserem Trainingszentrum, dem Kesselhaus. Nun bearbeiten wir euer Projekt, lösen konkrete Probleme, erstellen neue Konzepte, besprechen eure Themen und geben unser Wissen an euch weiter. Je nachdem, was ihr benötigt.

Consulting | Wir helfen Dir bei Konzeption, Installation, Integration und Betrieb Deiner Enterprise Open Source Umgebung. Wir empfehlen neue Wege und Lösungen für Deine Infrastruktur und geben Dir konkrete Handlungsanweisungen mit. Der Kickstart samt neuem Wissen für Deine Umgebung.

Outsourcing | Als externe IT-Abteilung übernehmen wir den vollständigen Betrieb ganzer IT-Umgebungen auf Basis von Linux und Open Source. Hier kriegst Du dauerhaft Management von IT-Prozessen nach Best Practices. Eine Welt, in der Du ruhig schlafen kannst und Deine business-kritischen Anwendungen und Systeme bestens betreut sind, ist möglich!

Support | Wir halten Dir den Rücken frei, damit Du dich um Dein Business kümmern kannst. Mit telefonischer Beratung und Remote-Support. 24 Stunden am Tag, 7 Tage die Woche.

Trainings | Unsere Consultants arbeiten auch als Trainer und geben ihr weitreichendes und profundes Praxiswissen in verschiedenen Schulungen und Workshops gerne an Dich weiter.

Schritt 4 – Wir sind weiterhin für Dich da

Und was passiert danach? Sobald das Projekt beendet ist, bieten wir gerne weiterhin Unterstützung. In Form von Consulting-Terminen, falls ihr eure Umgebung projektweise weiterentwickeln wollt. In der Form von Support für die schnelle Hilfe oder Outsourcing für kontinuierliche Zusammenarbeit. Unsere Supportverträge decken den Fehlerfall ab, beim Outsourcing darf es jegliche Art der permanenten Betreuung eurer Umgebung sein. Natürlich passen wir unsere Verträge im Laufe der Zeit entsprechend an, damit ihr immer genau die richtige Leistung bekommt.

Ich hoffe, ich konnte hiermit ein wenig Transparenz in unsere Philosophie und Arbeitsweise bringen. Solltest Du Fragen haben, kannst Du diese selbstverständlich bei mir und meinen Kolleg:innen anbringen. Unabhängig davon, ob ihr gerade jemanden aus dem Sales-Team, dem Consulting, dem Support oder den Trainer „an der Strippe“ habt. Euer Anliegen findet intern den richtigen Weg!

In den kommenden Wochen und Monaten wollen wir Dir und Euch hier im Blog unsere Open Source Dienstleistungen im Einzelnen näherbringen. Wir werden Best Practices teilen und aus dem Nähkästchen plaudern. Bleib dran! Es bleibt spannend.

Tobias Redel
Tobias Redel
Head of Professional Services

Tobias hat nach seiner Ausbildung als Fachinformatiker bei der Deutschen Telekom bei T-Systems gearbeitet. Seit August 2008 ist er bei NETWAYS, wo er in der Consulting-Truppe unsere Kunden in Sachen Open Source, Monitoring und Systems Management unterstützt. Insgeheim führt er jedoch ein Doppelleben als Travel-Hacker und renoviert, baut und bastelt als Heimwerker an allem was er finden kann.

Icinga – so wählst du Plattform und Betriebssystem

Aus zahlreichen Kundenprojekten, die ich im Laufe meiner Zeit bei NETWAYS durchgeführt habe, haben sich für mich einige Best Practices bei der Einrichtung und Konfiguration von Icinga ergeben. Um diese state-of-the-art Icinga-Installation zu beschreiben, dachte ich mir, ich gehe hier im Blog so vor wie ich es im Consulting auch würde. Das heißt, als Erstes gehe ich auf die richtige Plattform ein also primär das Betriebssystem, aber auch ob Hardware, virtuelle Maschine oder gar Container.
Um den Rahmen nicht zu sprengen wird es einen zweiten Teil geben, in dem ich ich dann die Frage „Pet or Cattle“ beantworte, darauf eingehe, welche Icinga-Komponenten für mich einfach dazu gehören und nebenbei beantworte ich hoffentlich noch die Frage nach der Icinga-Repository-Subscription.

Hardware, virtuelle Maschine oder gar Container?

Starten wir also einmal ganz am Anfang und überlegen uns, welche Vor- und Nachteile wir von einer Hardware-Lösung hätten. Für mich gibt es hier immer noch einen großen Vorteil und zwar, dass man mit Hardware eine Icinga-Monitoring-Lösung aufbauen kann, die unabhängig von der zu überwachenden Umgebung ist. Leider ist dies in der Praxis in den meisten Fällen nicht so gegeben, wie man sich das als Consultant erhofft. Oder es ist mit viel Planung und weiteren Komponenten verbunden. Denn schon allein so etwas wie der Alarmierungsweg per Mail verkompliziert dies ungemein.
Daher überwiegen für mich in den meisten Fällen die Vorteile virtueller Maschinen und die damit verbundenen komfortablen Managementmöglichkeiten. Man muss sich nur bewusst machen, wovon dann das Monitoring abhängt, was davon vielleicht zu kompensieren ist und was einen Ausfall auslöst, der im schlimmsten Fall einen Blindflug bedeutet.
Wenn virtuelle Maschinen aus meiner Sicht die meisten Vorteile bieten, sind Container dann der nächste logische Schritt? Das Icinga-Projekt bietet auf jeden Fall eigene Container an, hat den Icinga-Prozess container-freundlich gebaut und einige Kunden laufen sehr erfolgreich mit diesem Konzept. Aber wenn ich mir die Plugin-Fähigkeit von Icinga und Modularität von Icinga Web so anschaue, so stehen diese Eigenschaften, die ich als Vorteile ansehe, dem Container-Ansatz doch etwas im Weg. Vor allem wenn dann ein Plugin durch ein Icinga-Web-Modul zur Verfügung gestellt wird, welches ohne Agent im Container nicht aufrufbar ist.

Wahl des Betriebssystems

Bei der Wahl des Betriebssystems bin ich ein großer Fan davon, auf bereits bestehendes Know-how zu setzen. Daher rate ich meinen Kunden Icinga auf der gewohnten Linux-Plattform zu installieren. Da aber jede Distribution ihre Eigenheiten sowie Vor- und Nachteile hat, müssen wir das Thema Betriebssystem etwas detaillierter betrachten. Und da sie direkt mit der Wahl der Distribution zusammenhängen, gibt es einen kleinen Exkurs in Richtung Monitoring-Plugins.

Debian-Familie

Hier ist es relativ einfach, denn für Debian und Ubuntu stellt das Icinga-Projekt Pakete frei zur Verfügung. Diese gibt es für jede bekannte Version, auch für einen ARM-Build in Raspberry Pi OS ist gesorgt.
Einzige kleine Einschränkung: Support gibt es im Falle von Ubuntu nur für LTS-Releases.
Damit Icinga nicht nur schön aussieht, sondern auch die gewünschte Überwachung liefert, werden Plugins benötigt. Monitoring-Plugins ist in der Debian-Familie die Quelle für die gleichnamigen Pakete. Hier bekommen wir eine paketierte und gut supportete Standard-Plugin-Sammlung, die zudem noch einfach zu installieren und gut gepflegt ist.
Etwas verwirrend ist der Benutzer „nagios„, der im weiteren Verlauf von den Icinga-Paketen weiterverwendet wird, die Nagios-/Icinga-1-Konfiguration, die durch die Plugins abgelegt wird, und die grobe Aufteilung auf Pakete.
Dass hier statt mit setuid mit Filesystem-Capability gearbeitet wird, finde ich persönlich sehr gut. Heißt, wir haben bei den Check Plugins Vor- und Nachteile, die aber vor allem dann eine Rolle spielen, wenn wir verschiedene Distributionen im Einsatz haben.
Einzig meine persönlichen teils negativen Erfahrungen mit Ubuntu lassen mich eher ein Debian empfehlen, Stichwort „Sonderwege“.

Red-Hat-Familie

Bei der Red-Hat-Familie wird es aus meiner Sicht komplizierter. Fangen wir mit Red Hat Enterprise Linux (RHEL) an. Hier gibt es die Pakete vom Icinga-Projekt auf Basis einer Repository-Subscription. Nachdem hier explizit auf RHEL gebaut wird, Partnerverträge bestehen etc. finde ich das ein berechtigtes Vorgehen!
Nächste in der Familie wären eigentlich CentOS Linux bzw. CentOS Stream. Ich sage hier eigentlich, denn CentOS Stream wird zukünftig nicht mehr aktiv unterstützt. Was heißt das für aktuelle Nutzer von CentOS? Es wird (Stand heute) keine Pakete für CentOS Stream 8 und 9 geben. Da es sich bei diesen Distributionen um den Upstream zu RHEL handelt, könnten theoretisch die RHEL-Pakete genutzt werden.
Leider werden auch die RHEL-Derivate Rocky Linux, AlmaLinux und Oracle Linux nicht aktiv als Icinga-Systeme unterstützt. Hier findet sich auf der Icinga-Homepage jedoch der Hinweis, dass die RHEL-Pakete bei Systemen, die zu 100-Prozent binär-kompatibel sind, genutzt werden können. Das ist zumindest bei Rocky Linux und AlmaLinux der Fall. Ob es sich dabei um eine gute Lösung für den Einzelfall handelt, muss man selbst entscheiden.
Erfreulicher sieht es dahingehend bei Amazon Linux aus. Im Rahmen der Icinga-Subscription bekommt man Zugriff auf die entsprechenden Pakete.
Alternativ kann mit Fedora auf Community-Support gesetzt werden.

Kommen wir zu den Check Plugins für Red-Hat. Hier befinden sich die Nagios-Plugins in einem zusätzlichen Repository, den „Extra Packages for Enterprise Linux“ oder im Fall von Fedora in den normalen Repos des Fedora-Projekts. Es handelt sich also um eine andere Quelle als diejenige, die bei Debian-basierten Systemen zum Einsatz kommt. Wie bei Debian wird aus „historischen Gründen“ die Gruppe „nagios“ verwendet und mit setgid gearbeitet, um Plugins höhere Rechte zu geben.
Man merkt, dass die Situation bei Red-Hat-Derivaten deutlich komplexer ist als bei Debian. Und besonders CentOS-Nutzer müssen sich aktuell nach Alternativen umsehen, was innerhalb der Community zu der einen oder anderen kritischen Stimme geführt hat.

Um der Komplexität etwas entgegenzuwirken, bauen wir bei NETWAYS wieder selbst Pakete. Unsere Buildplattform orientiert sich am Icinga-Projekt, daher bauen wir auf CentOS Linux 7, RHEL 8 und 9. Unsere Buildziele orientieren sich an unseren Kunden. Wir bauen und testen also für CentOS und RHEL, gehen von Funktion auf Rocky Linux und AlmaLinux aus, aber betrachten nicht Fedora, Oracle Linux und Amazon Linux.

SUSE-Familie

Bleibt noch SUSE Linux Enterprise Server (SLES). Diese Pakete sind ebenfalls nur für Subscription-Kunden zugänglich. Eine Alternative für alle SUSE-Fans wäre openSUSE, welches ich persönlich ebenso wie Fedora normalerweise nicht in einem Unternehmensumfeld sehe. Es soll jedoch ab 15 SP 3 zu 100-Prozent binär-kompatibel mit SLES sein, wodurch es vielleicht für den einen oder anderen in Frage kommt. Hier gibt es direkt Monitoring-Plugins über das Packagehub-Repository und da wir als NETWAYS bisher wenig Anfragen in dem Bereich hatten, bauen wir aktuell noch nicht standardmäßig für SLES.

Andere Systeme kommen nicht als Plattform für das zentrale System infrage, aber als Agent wird auch noch Windows supportet und bauen lässt sich die Software selbst auf weiteren Plattformen. Im Fall von FreeBSD und Alpine Linux werden sogar Pakete von der Community bereitgestellt.

Zusammenfassung

Welche Distribution kann ich nun empfehlen?
Debian ist sinnvoll für all diejenigen, denen der Community-Support ausreicht. Wer eh schon auf Enterprise-Support beim Betriebssystem setzt, für den lohnen sich die RHEL-Pakete, auch wenn diese mit einer Icinga-Subscription verbunden sind. Alle anderen Optionen sind auch valide, aber fühlen sich einfach nicht optimal an.
Wer eine heterogene Umgebung zu überwachen hat, findet im Icinga-Umfeld neben der Verfügbarkeit, wie man oben raus lesen konnte, ein paar kleinere Baustellen, die mit Erfahrung aber leicht zu handhaben sind. Für diese kann aber das Icinga-Projekt recht wenig, denn auch wenn man versucht hat, in der Vergangenheit in Zusammenarbeit mit allen Distributionen einen gemeinsamen Kurs zu finden, ist dies leider nicht immer gelungen.

Damit sind wir am Ende des ersten Teils meiner Vorstellung meiner persönlichen state-of-the-art Icinga-Installation. Ich hoffe Dir damit weiterhelfen zu können!
Falls Du bereits jetzt Interesse an Icinga gefunden hast und es auch in Deinem Unternehmen vorschlagen oder sogar einführen willst, führen ich oder ein:e Kolleg:in gerne eine individuelle Betrachtung der vorhanden IT-Umgebung durch. Im Rahmen eines solchen Consultingtermins erstellen wir gerne zunächst ein Proof of Concept. Natürlich können wir auch gleich mit der Implementierung von Icinga beginnen.

Dirk Götz
Dirk Götz
Principal Consultant

Dirk ist Red Hat Spezialist und arbeitet bei NETWAYS im Bereich Consulting für Icinga, Puppet, Ansible, Foreman und andere Systems-Management-Lösungen. Früher war er bei einem Träger der gesetzlichen Rentenversicherung als Senior Administrator beschäftigt und auch für die Ausbildung der Azubis verantwortlich wie nun bei NETWAYS.

Monthly Snap April 2019

Springtime in Nuremberg! In this month of Easter-eggs and chocolate bunnies our colleagues wrote about various interesting subjects. You missed some of these? Just click the links below!

No Aprils fools at NETWAYS!

Nicole started the month with a post from the NETWAYS shop on the Expert Sensor Box von GUDE, with which you can monitor your infrastructure. Alerts are sent by E-Mail if the temperature, the humidity or the air pressure deviates from your set limits.
A week later Nicole presented the Expert Net Control von Gude. A bigger monitoring system which can also monitor water leaks and detect smoke.
The summer can really cause damage to your data center. Rising temperatures and higher humidity need to be reined in. Nicole explained how the NETWAYS Monitor alerts you if needed in her blog Der Sommer kommt!
Our apprentice Tobias visited our shop for a week and had a look at some of our products. In his blogpost Und der Sommer kommt immer noch! he presented the Ares 12 von HW group, with which you can monitor not only the usual temperature and humidity, but among others also wind strength! Last month Henrik wrote about testing Tinkerforge. Now Nicole offers it in the NETWAYS Shop: RackMonitoring Kits von TinkerForge! The brick-based system can be extended individually to meet your Needs.

Why should you attend a conference?

Julia keeps giving us reasons to attend the OSDC. In her Blog Series 17 reasons why you should join OSDC. In April reasons number 12-14 were quite convincing! But that was not all! Check out OSDC: DevOps Culture meets Technology for more information about talks on DevOps at the upcoming conference!
Meanwhile Keya keeps showing us highlights from last year’s OSMC in her series OSMC | Take a glance back… Whether you missed some of the talks or the entire conference, these highlights remind us why attending the OSMC is such a great idea! Which leads us to Julia’s call for papers for OSMC 2019.
Get on stage! Have you already gotten a ticket for the OSCamp on Ansible? Julia finally revealed: Agenda out now! And Pamela made sure we all knew what we would miss if we didn`t register for the OSCamp on Ansible in her post Sign up for ANSIBLE Automation

Developers developing!

Marius shared his experience on different tools which are helpful if working with Finder Mac Helper: Finder
Did you read Verschachtelte Listen mit Sortable.js? Johannes let us take part in his obstacle-filled journey. Michael wrote the most thorough blog of the month: Modern C++ programming: Coroutines with Boost.

Consultants consulting!

How To: Director Import #1 Max showed us how to import with the director using the Fileshipper CSV import. David took a look at the Terraform Changes, as version 0.12.0-beta 1 was due.

Junior consultants consulting!

Our apprentices Aleksander and Philipp were also busy consulting us!
Philipp taught us i-doit API Ruby-Scripting and Aleksander let us know basics on SSL/TLS certificates. SSL/TLS Zertifikate für die Nutzung im internen Netz (Apache)

NWS – Quick and dirty?

Gabriel showed how to easily set up a GitLab Runner VM per CLI in OpenStack Quick and Dirty: OpenStack + CoreOS + GitLab Runner

Stay tuned on netways.de/blog/

Catharina Celikel
Catharina Celikel
Office Manager

Catharina unterstützt seit März 2016 unsere Abteilung Finance & Administration. Die gebürtige Norwegerin ist Fremdsprachenkorrespondentin für Englisch. Als Office Manager kümmert sie sich deshalb nicht nur um das Tagesgeschäft sondern übernimmt nebenbei zusätzlich einen Großteil der Übersetzungen. Privat ist der bekennende Bücherwurm am liebsten mit dem Fahrrad unterwegs.

Request Tracker Starterpakete verfügbar

rt_centred_200x100 Seit vielen Jahren setzen wir nun bei uns intern die Ticket Lösung Request Tracker ein und bieten hierfür Dienstleistungen im Bereich Konzeptionierung, Einrichtung, Entwicklung und Support an.
Um einen kostengünstigen und vereinheitlichten Einstieg in die Open Source Ticketlösung zu ermöglichen, haben wir unser Portfolio in diesem Zuge um zwei Starterpakete erweitert. Somit kann ohne große finanzielle Vorleistungen ein Basissetup aufgebaut werden, welches als Test- und Reviewumgebung dient. Ein späterer Ausbau bzw. eine Erweiterung kann im Vorfeld natürlich berücksichtigt werden, sollte die Ticketlösung Produktiv genommen werden.
Im Standard-Paket sind hierbei folgende Leistungen zum Festpreis beinhaltet:

  • Grundinstallation des Request Trackers auf Debian / Ubuntu / CentOS
  • Anbindung an ein Mail-System per SMTP-Transport oder Fetch-Mail
  • Anbindung an einen ActiveDirectory / LDAP-Dienst
  • Beispielhafte Einrichtung von Queues und Benutzern
  • Beispielhafte Einrichtung von Berechtigungen
  • Grundeinführung in die Bedienung der Oberfläche

Für das Premium-Paket gibt es weiterführende Leistungen, wie bspw. Anbindung externer Datenquellen, Customizing und RT-Assets:

  • Anbindung Externer Datenquellen per Schnittstellen (API, Soap, Sql)
  • Grundeinrichtung und Einführung in RT Assets
  • Customizing von Templates und Articles
  • Konfiguration von Lifecycles, Status, SLA’s

Wer sich allgemein über den Request Tracker informieren möchte, kann dies mit unserer Übersichtsseite Warum Request Tracker oder unserem RT Webinar tun.
Selbstverständlich stehen wir bei Rückfragen natürlich zur Verfügung und bieten weiterführende Dienstleistungen und Workshops für Projekte an. Nehmen Sie hierfür einfach direkt Kontakt mit uns auf.

Christian Stein
Christian Stein
Manager Sales

Christian kommt ursprünglich aus der Personalberatungsbranche, wo er aber schon immer auf den IT Bereich spezialisiert war. Bei NETWAYS arbeitet er als Manager Sales und berät unsere Kunden in der vertrieblichen Phase rund um das Thema Monitoring. Gemeinsam mit Georg hat er sich Mitte 2012 auch an unserem Hardware-Shop "vergangen".