Wie bekomme ich bessere Informationen über Züge als die DB

marudor.de screenshotAls reisender Consultant mit Bahncard 100 verbringe ich sehr viel Zeit in Zügen der Deutschen Bahn. Das ist auf der einen Seite erfreulich, denn ich verbringe die Zeit nicht auf der Autobahn. Auf der anderen Seite macht es die Bahn einem manchmal schwer, sinnvoll von A nach B zu kommen. Es soll ja schon einmal vorgekommen sein, dass Züge ausfallen oder zu spät kommen. Möglicherweise ist auch mal ein Zug überfüllt, Klima defekt, Bier alle oder sonst etwas.

Die DB selber bietet für so etwas ja seit einiger Zeit den DB Navigator. Die wichtigsten Daten bekommt man hier auch. Allerdings weiß die Bahn eigentlich über ihre Züge viel mehr als sie uns sagt. Dieses Problem löst sehr gut und schon seit einiger Zeit die Seite marudor.de

Man sieht auf der Seite, wenn man nach einem Bahnhof, einem Zug oder einer Route sucht, ein gute Übersicht über den gewünschten Zug. Hier sieht man auf einen Blick:

  • Reihenfolge der Waggons mit EXAKTER Positon am Bahnsteig
  • ICE Baureihe inkl. Revision (dadurch weiß man auch, ob man alte bequeme oder neue unbequeme Sitze bekommt)
  • Die Postition der Comfortsitze im Zug, so dass man direkt da einsteigen kann (roter Punkt)
  • Die Position von Bordrestaurant, Kinderabteil, Behindertenbereich und -toilette
  • Ruhe und Handy-abteil
  • Wifi Accespoints (und ob er funktioniert)
  • Aktuelle UND vergangene Störungen auf der Fahrt

Teilweise bekommt man diese Infos auch woanders, allerdings sind sie bei marudor meistens aktueller und vor allem alles in einem Rutsch. Und nicht zuletzt: Verspätungen und Verspätungsprognosen sind besser und zuverlässiger.

Warum das alles so ist und wieso der marudor das alles macht kann man hier erfahren. Das Video kommt von der GPN 19 und ist sehr interessant anzuschauen.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

NoCode, Security by Design

NoPicture

Bei Netways sind wir immer am Puls der Zeit und probieren für euch den neuesten heißen Sch**ß aus. Heute möchte ich euch deswegen NoCode vorstellen. Wenn man NoCode noch nicht kennt; es kann als logische Fortsetzung aller aktuellen Cloud Technologien und Everything as Code Initiativen gesehen werden. So konnte sich NoCode innerhalb kurzer Zeit einen zentralen Platz auf der CloudNative Landscape sichern
Am Anfang steht die Lochkarte. Auf dieser sind Programme binär abgespeichert und werden von damaligen Großrechnern ausgeführt. Leider enthält der Code dieser Anwendungen einige wenige Bugs, was allgemein Verunsericherung führte. Lochkarten werden nach kurzer Zeit wieder abgeschafft.

Weiter geht es mit solide programmierten Unix und Windows Serveranwendungen, die innerhalb von vielen Unternehmen hervorragende Dienste leisteten. Da mit zunehmender Vernetzung die Probleme dieser Lösungen offensichtlicher wurden und man nicht schnell genug hinterher kam einen Fehler immer wieder durch zwei neue zu ersetzen, schaffte man vielerorts diese Insellösungen wieder ab und setzte auf Standards. Das Glück für die schon beinahe von Arbeitslosigkeit bedrohten Admins, es gibt derlei sehr viele.
Mittlerweile haben wir Virtualisierung und können mit P(roblem)aaS, I(nsecure)aaS und S(anduhr)aaS fast alle Kundenwünsche im keim … erfüllen. Ab diesem Zeitpunkt, wo man dank DevOps und dezentralen verbindungslosen Orchestrierungstools seine Bugfixes auf tausende Container gleichzeitig deployen kann, wird es Zeit sich von diesen noch beinah beherrschbaren Problem Factories zu verabschieden.
Jetzt können papierlos, hardwareless, connectionless und configurationless einpacken. Wir machen serverless und führen Funktionen ‘direkt in der Cloud’ aus.
Da wir alles vom Strom, über das Netzwerk bis zum Server abschaffen, fehlt nur noch der Code.
Genau hier springt NoCode ein. Mit wenigen Zeilen NoCode kann man sich fast alle Anwendungsfälle moderner Applikationen vorstellen. Das beste an NoCode, es enthält niemals Bugs und kann für die verschiedensten Einsatzzwecke genutzt werden. Als erste Enterprise Monitoring Lösung hat auch icinga2 die NoCode notation eingeführt. Jedes in NoCode geschriebene config file wird klaglos von der Syntax Prüfung akzeptiert. Ein Kollege arbeitet gerade daran ein neues Backend Feature in NoCode zu implementieren. Ich habe noch keine Details gesehen, aber es rennt wie Sau.

Schaut euch unbedingt das NoCode github Repo von Kelsey Hightower, dem verantwortlichen google Hacker, an. Hier könnt ihr das Projekt auschecken und mit docker testen.

Wer jetzt heiß ist und mal eine Anwendung im live Betrieb sehen möchte. Die vom führenden Crypto Anbieter ROT26 angeboteny Crpyto API ist gerüchteweise in NoCode implementiert. Probiert es direkt aus

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Ein paar vim tricks

Ich benutze in meiner täglichen Arbeit vim als Editor. Im Laufe der Zeit habe ich dabei ein paar Dinge gelernt, die mir das Leben einfacher machen. Ein paar dieser “Tricks” möchte ich euch heute einmal zeigen.

Autovervollständigung

Mit vim kann man seine Texte und Scripte autovervollständigen lassen. Das funktoniert mit normalen Wörtern, die schon einmal im Text vorgekommen sind STRG + n, mit ganzen Zeilen STRG + x + l oder mit Dateien und Ordnern im Filesystem.

Einfügen auf mehreren Zeilen


Es ist zwar nicht intuitiv, aber man kann relativ einfach viel Text auf einmal einfügen. Man kann entweder vor der Curserposition, z.B. am Anfang der Zeile, oder am Ende der Zeile Zusätzliche Zeichen hinzufügen.
In jedem Fall muss man erstmal mit STRG + v die Zeilen markieren, die bearbeitet werden sollen.
Das # am Anfang der Zeilen fügt man jetzt mit SHIFT + i (instert mode), gefolgt von #, gefolgt von ESC ein.
Der . am Ende der Zeilen funktioniert ähnlich. Aber statt SHIFT + i kommt $A zum Einsatz. Wieder gefolgt von dem Zeichen . und einem ESC.

History im vim

Lange zeit dachte ich, wenn ich zweimal dd benutze ist dar erste Inhalt weg. Genauso wie bei Word’s “auschneiden/einfügen”. Das ist allerdings nicht wahr. mit :reg kommt man in die History vom vim. Möchte man z.B. den dritten eintrag einfügen, geht das mit “3p.

json, jq und vim

In vergangen Blogposts wurde ja schon über die Macht von API, json und jq geschrieben. Das lässt sich wunderbar auch im vim kombinieren. Wenn ich mir Beispielsweise die Services einer icinga2 API ausgeben lasse, schaut das erstmal im vim recht unleserlich aus.

curl -k -u root:icinga 'https://127.0.0.1:5665/v1/objects/services' |vim -


Erst durch ein :%!jq ‘.results[].attrs | select(.active==true) | {__name, display_name, enable_perfdata}’ wird daraus etwas schönes.
Jetzt wird nur noch Name, display_name und enable_perfdata angezeigt. Und das nur von Services, die “active” sind.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Einfaches verschlüsseltes Backup

Seit In­kraft­tre­ten der DSVGO  ist Datenschutz in aller Munde. Da wird es einmal Zeit auch den Datenschutz des Monitoring-Servers zu überdenken. Dabei denke ich in diesem Fall nicht an die diversen Härtungsmaßnamen wie SSL für Webserver und Datenbank. Auch Icinga2 erzwingt bei seinen API Verbindungen immer verschlüsselte Verbindungen.
Wo bleiben aber die Backup Dateien? Einmal erzeugt, verlassen sie den Server und liegen dann ‘woanders’. Zum Glück ist es nicht unbedingt nötig, dass man dem File Server voll vertraut. Eventuell ist es günstig die Backup in irgendeine Cloud zu schieben, oder auf den semi public File Server der Unternehmens. Mit Hilfe von GPG kann man seine Daten einfach verschlüsseln und sicherstellen, dass alle Berechtigten sie auch wieder entschlüsseln können. Im folgenden wird erklärt wie man GPG benutzt um ein icinga2 Backup für eine Gruppe von Berechtigten zu verschlüsseln ohne das der private key einer Person den Monitoring Server oder den Backup Server berührt.

1.) gpg Schlüsselpaar erstellen

Am einfachsten benutzt man das CLI tool gpg um den key zu erzeugen. Das sollte man aber auf einem sicheren System machen, z.B. dem eigenen Laptop oder Arbeitsplatz PC. Anschließend wird der öffentliche Teil an einen Keyserver gesendet um den Schlüsselaustausch zu vereinfachen.

$ gpg --full-gen-key
[...]
Ihr Name ("Vorname Nachname"): Max Mustermann
Email-Adresse: max.mustermann@example.org
pub rsa2048 2018-05-31 [SC] [verfällt: 2023-05-30]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX0BA2D8D6
Max Mustermann <max.mustermann@example.org>
$ gpg --keyserver pool.sks-keyservers.net --send-key 0BA2D8D6

2.) Monitoring Server mit Schlüsseln versorgen

Auf dem Server kann man mit Hilfe der gpg group Funktion die Daten mit den public keys einer ganzen Gruppe verschlüsseln. Hierfür muss man diese Gruppe in der ~/.gnupg/gpg.conf anlegen.

$ vim .gnupg/gpg.conf +80
group icingabackup = max.mustermann@example.org john.doe@example.org

Anschließend kann man die public keys vom keyserver laden und ihnen das Vertrauen aussprechen. Nur wenn man allen Schlüsseln “absolutes Vertrauen” ausspricht läuft der encryption Prozess ohne weitere Rückmeldungen ab.

$ gpg --keyserver pool.sks-keyservers.net --search-keys max.mustermann@example.org
gpg: suche nach "max.mustermann@example.org" auf hkp-Server pool.sks-keyservers.net
(1)  Max Mustermann (Test) <mustermann@example.org>
      4096 bit RSA key 0BA2D8D6, erzeugt: 2013-11-18
$ gpg --keyserver pool.sks-keyservers.net --recv-keys 0BA2D8D6
$ gpg --edit 0BA2D8D6 trust
  5 = Ich vertraue ihm absolut
$ gpg --keyserver pool.sks-keyservers.net --search-keys johndoe@example.org
gpg: suche nach "johndoe@example.org" auf hkp-Server pool.sks-keyservers.net
(1)  John Doe (Work email) johndoe@example.org
      4096 bit RSA key 732D8994, erzeugt: 2018-04-20, verfällt: 2020-04-19
$ gpg --keyserver pool.sks-keyservers.net --recv-keys 732D8994
$ gpg --edit 732D8994 trust
  5 = Ich vertraue ihm absolut

3.) Backup erzeugen und verschlüssen

Das kurze bash Script sammelt Dateien von icinga2 und icingaweb, erzeugt einen mysqldump, packt alles zusammen und verschlüsselt es zum Schluss. Alle Schritte sind im Script kommentiert. Bitte lesen sie unbedingt auch die Hinweise in der icinga2 Dokumentation zu diesem Thema.

#!/bin/bash
DATE=`date +%Y%m%d%H%M`
# Backup script for icinga2 and icingaweb2
# Choose which parts will be backed up.
BACKUP_ICINGA2=true
BACKUP_ICINGAWEB2=true
BACKUP_MYSQL=true
ENABLE_ENCRYPTION=true
DELETE_OLD_FILES=true
# Backup target dir
BACKUPDIR=/data/icinga2_backup
# Backup retention time. Files will be deleted after 14 days
RETENTION_TIME=14
# Icinga2 settings
ICINGA2FILES="/etc/icinga2 /var/lib/icinga2 /etc/default/icinga2"
# Icingaweb2 settings
ICINGAWEB2FILES="/etc/icingaweb2 /usr/share/icingaweb2"
HTTPD_ETCDIR="/etc/apache2"
# mysql settings
MYSQL_DATABASES="mysql icinga icingaweb director"
MYSQL_ETCDIR="/etc/mysql"
MYSQL_DUMP="$BACKUPDIR/tmp/icingaMysqlDump.sql.gz"
# encryption settings
GPG_RECIPIENT=icingabackup
# Ensure Backupdir exists
[ ! -d $BACKUPDIR ] && mkdir -p $BACKUPDIR/tmp
# Add icinga2 folders
if [ $BACKUP_ICINGA2 = true ]; then
  BACKUPFILES+=" $ICINGA2FILES"
fi
# Add icingaweb2 folders
if [ $BACKUP_ICINGAWEB2 = true ]; then
  BACKUPFILES+=" $ICINGAWEB2FILES"
  BACKUPFILES+=" $HTTPD_ETCDIR"
fi
# Add my folders and mysqldump
if [ $BACKUP_MYSQL = true ]; then
  BACKUPFILES+=" $MYSQL_ETCDIR"
  if [ ! -z "$MYSQL_DATABASES" ]; then
    mysqldump --create-options --databases ${MYSQL_DATABASES} | gzip > $MYSQL_DUMP
    BACKUPFILES+=" $MYSQL_DUMP"
  fi
fi
# make archive
TAR=$BACKUPDIR/icingaBackup_${DATE}.tar.gz
if [ ! -z "$BACKUPFILES" ]; then
  # Archive all files and delete mysqldump
  tar -czf $TAR $BACKUPFILES 2> /dev/null && [ -e $MYSQL_DUMP ] && rm $MYSQL_DUMP
fi
# encrypt archive
if [ $ENABLE_ENCRYPTION = true ]; then
  gpg --encrypt --recipient icingabackup $TAR && rm $TAR
fi
# delete everything older than 14 days
if [ $DELETE_OLD_FILES = true ]; then
  find $BACKUPDIR -mtime +$RETENTION_TIME -exec rm \{\} \;
fi

4.) Cron

Um das Backupscript jeden Tag auszuführen kopiert man es auf den Server und trägt es im crontab ein:

root@icingaMaster# crontab -e
  @daily /root/backup_icinga2.sh

5.) Decrypt

Da beim verschlüsseln alle User der Gruppe icingabackup berechtigt wurden kann jeder aus dieser Gruppe die Dateien wieder entschlüsseln.
gpg –output icinga2Backup.tar.gz –decrypt icinga2Backup.tar.gz.gpg
 

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Samba Samba die ganze Nacht

samba.org logoWer in seinem Unternehmen heterogene Umgebungen vorfindet ist oftmals gezwungen Brücken zwischen der Linux/Unix Welt und Windows zu schlagen. Hierfür wird gerne der freie und quelloffene Samba Server eingesetzt. Dieser stellt per SMB Protokoll Freigaben bereit.
Nun ist es eine Sache die Windows Kollegen zu hetzen, alte Windows XP Maschinen abzustellen. Die andere Seite der Medaille ist die Absicherung der eigenen Serverdienste. Denn wenn der Linux Server immer noch SMBv1 spricht ist der nächsten WannaCrypt/WannaCry Attacke Tür und Tor geöffnet. Microsoft warnt z.B. im Technet Blog vor dieser Möglichkeit.
Die Abhilfe dagegen ist relativ einfach, man verbiete SMBv1. Die Änderung erfolgt in /etc/samba/smb.conf innerhalb der “global” section.

 [global]
 ...
 #min protocol = SMB2
 client min protocol = SMB2
 server min protocol = SMB2
 ...

 

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Ungewöhnliche Überwachungen

Kuh auf WieseBei meinen Einsätzen als Consultant bei Netways bin ich oft bei Kunden vor Ort und darf mich immer wieder von der Unterschiedlichkeit der Monitoring Installationen überzeugen. Dabei fallen mir immer wieder kreative und ungewöhnliche Methoden auf neue Dinge zu überwachen. Über den Sinn und Unsinn dieser Checks darf zwar gerne gestritten werden, dennoch wollte ich euch ein paar Ideen nicht vorenthalten.

Check boss / Schwiegermutter

Dieser Check ist perfekt wenn du nicht von einem plötzlichen Besuch deines Chefs im Büro oder der Schwiegermutter zu Hause überrascht werden willst. Da heutzutage ja alle ein Smartphone mit sich herumtragen kann man einfach checken, ob bzw. auf welchem Accesspoint jemand eingeloggt ist um Frühzeitig über sein erscheinen informiert zu sein. Wie ich aus zuverlässiger Quelle gehört habe geht das zu Hause bequem mit einem Raspberry und einem Check, der den arp table überwacht. Im Unternehmen hat man häufig bessere Accesspoints, die per snmp auf angemeldete devices geprüft werden können. Hier kann man die Daten auch noch mit Geo Koordinaten versehen und anzeigen wo der Boss sich auf dem Betriebsgelände versteckt 😉

Check bitcoin/pool

In einem Unternehmen mit bitcoin affiner IT-Abteilung haben mehrere Admin’s zu Hause ein paar mining Server stehen. Hier hat es sich angeboten, die mining Rate mit check_btcpool zu überwachen und bei einem Abfall zu informieren.
Da hier sowieso schon gebastelt wurde haben die Herren gleich noch eine flotte Überwachung der bitcoin Kurse auf Basis der bitcoin.de API hinzugefügt. Bei Ausbruch aus einem bestimmten Korridor wird auch hier informiert.

Check bot

Überraschenderweise kann man sogar Pflanzen monitoren. Ein Botanik-Check überwacht EC, PH und Feuchtigkeit im Boden und setzt im Eventfall 5 Sekunden lang eine Pumpe in Gang die das Beet bewässert. Auf Grund der Langzeitdaten über EC und PH Wert kann man das Gießwasser mit Dünger und anderen Stoffen vorbehandeln und hat so eine perfekte Nährlösung. Allerdings ist die Ausrüstung hierfür wohl nicht ganz günstig. Das Ganze bietet sich also wohl nur für den professionellen Gemüsebauer an.

Check meat

In der Landwirtschaft geht es weiter. Der moderne Bauer hat schon einiges an IT bei sich herumstehen. Das Rind ist überwacht, der Biogastank blubbert. Doch wer überwacht die Überwacher dieser Prozesse? Natürlich Icinga. Neben der Überwachung der eigentlichen IT sowie der Melk und Futtersysteme bin ich hier auf die Idee gestoßen die Rinder mit Hilfe des maps moduls für icinga2 zu lokalisieren. Hierfür war es natürlich nützlich, dass alle Rinder ein RFID Halsband tragen und sich an den Trinkstellen selbst “anmelden”. Einer interessanter Einsatz des Netways Monitors war hier die Temperaturüberwachung der Ställe. Dabei ging es vor allem um ein Überschreiten der Temperatur im Sommer.
Wenn ihr noch ungewöhnliche Checks kennt oder eine irre Idee habt schreibt es gerne in die Kommentare.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Was macht eigentlich . . .

. . . NSClient++ ? Länger haben wir hier im Blog nichts mehr zum Thema NSClient geschrieben. Grund genug um mal wieder den aktuellen Entwicklungsstand zu überprüfen.
Aktuell wird der Monitoring Agent in 2 Strängen weiterentwickelt. Die Version 0.4.4 ist als stable markiert und bekommt nur noch bugfixes und kleinere Erweiterungen. In Version 0.5.0 wurden einzelne Module komplett neu geschrieben. Mit der aktuellen 0.5.0.59 wurde weiter an der Stabilität und einzelnen Checks gearbeitet.
nsclient-logoBesonders hervorzuheben sind im 0.5er Release der Webserver, der ssl gesichert und REST-apifiziert Kommandos entgegen nimmt und Informationen zurückliefert, Auch ist es in der aktuellen Version möglich Performancedaten direkt an graphite zu schreiben, was besonders in Großen Umgebungen zu einer starken Entlastung des monitoring servers (egal ob icinga 1 oder 2) führen kann. Um den überwachten Server besser zu schützen beendet NSClient jetzt alle von ihm angestoßenen Skripte wenn es selbst beendet wird, damit keine Langläufer mehr verloren gehen.
Bei allen Verbesserungen in 0.5 sollte man aber nicht vergessen, dass diese Version noch beta ist und nur mit der nötigen Vorsicht verwendet werden sollte.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Wenn einer eine Reise tut

zur Zeit bin ich für Netways dabei, einen Kunden in Beijing vor Ort zu Betreuen. 3 Wochen dauert das Spektakel und ich bin in dieser Zeit in einem äußerst komfortablen Hotel in der Nähe des Diplomatenviertels der Chinesischen nördlichen(bei) Hauptstadt(jing) untergebracht.
Da so eine weite Tour auch für einen reiseerfahrenen Consultant wie mich nichts ganz gewöhliches ist, möchte ich euch mal ein paar Dinge berichten. Gestartet bin ich nämlich mit einigen Erwartungen und auch Vorurteilen die sich allerdings größtenteils nicht bestätigt haben.

way to work in beijing

Mein Arbeitsweg Beijing

Zuersteinmal:

der smog ist vorhanden, aber lange nicht so schlimm wie ich Ihn mir vorgestellt habe. Man sieht die Sonne und den blauen Himmel nahezu jeden Tag (außer es regnet). Viel dazu beigetragen hat wahrscheinlich, dass der allgegewärtige Motorroller zu 99,9% elektrisch voran kommt. Rücksicht auf Fußgänger wird deswegen zwar nicht genommen, d.h. es hält Keiner an Ampeln oder Zebrastreifen, aber auch nicht viel anders als z.B. in Paris oder Rom. Und da wo es an Verkehrssicherheit fehlt ist die persönliche Sicherheit um so höher. In Beijing braucht man keine Angst haben nachts im Dunkeln irgendwo entlang zu laufen. Es gibt sehr viel Polizei und ähnliches.
Ich fühle mich hier definitiv sicherer als z.B. in Berlin. Und dabei hat Beijing nach vorsichtigen Schätzungen 20, nach etwas offensiveren 30 Millionen Bewohner. Also mehr als 1/4 Deutschlands in einer Stadt.
Funfact: es gibt mehr als 180 Millionenstädte in China.

Die Ubahn funktioniert super.

DrollerSie ist komplett auch auf englisch beschildert und es gibt in jedem Wagon einen Plan auf dem man nicht nur die Stationen der Linie sieht, sondern auch wo man gerade ist. Die automatischen Ansagen sind auf Englisch und verständlich. Da könnten sich Nürnberg und Berlin eine Scheibe von abschneiden. Man hat eine elektronische Bezahlkarte, da lädt man ein paar RMB auf und kann dann frei fahren. Vor der ubahn an einen Scanner, nach der ubahn wieder und das Geld wird automatisch abgebucht. Eine Fahrt durch die halbe Stadt kostet umgerechnet ca. 50cent.
Da wären wir beim Preis. Beijing ist nicht so billig wie man durch chinesische Billigimporte vermuten könnte. Es ist hier und da zwar günstiger (bei Zigaretten und Ubahn z.B.) aber es gibt auch eine wachsende chinesische Oberschicht die nicht geizt und zeigt was sie hat. Ich habe zumindest noch nie so viele italienische und deutsche Luxuskarren auf einem Haufen gesehen.

last but not least . . .

der Mensch. Der Chinese als solcher ist ein Freundlicher. Egal ob auf der Arbeit (dauert wie bei uns geregelte 40 Stunden pro Woche) oder auf der Straße. Es hapert zwar auf der Straße häufiger mal am Englisch, was die leute allerdings nicht aus der Ruhe bringt. Ich habe an diversen Imbissen mit Händen und Füßen bestellt, war jedes mal überrascht was ich am Ende bekomme, aber nie negativ.
Es gibt noch so viel mehr was ich schreiben könnte aber der Platz auf der Seite geht langsam aus. Also möchte ich nur sagen: China ist eine Reise wert! Machen! Ganz dringend!

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Neues vom Reporting

Jaspersoft Studio
Lange Zeit war iReport die führende Lösung, wenn es daran ging Reportingaufgaben für Icinga im speziellen und im Allgemeinen zu übernehmen. Dieses Kapitel wird allerdings im kommenden Monat geschlossen, da iReport  ab Ende Dezember nicht mehr aktiv weiterentwickelt wird. Das bedeutet zwar nicht, dass iReport sofort verschwindet, aber mehr als ein paar Bugfixes für bestehende Probleme wird es nicht mehr geben.
Eine gute Gelegenheit also, sich mal das nächste Tool zum erstellen und managen von Reports anzuschauen.
Der designierte Nachfolger von iReport nennt sich Jaspersoft Studio und weist ein paar unterschiede zu iReport auf.
Während iReport auf der IDE Netbeans basierte, basiert Studio auf Eclipse. Beide Programme kann man zwar als Bundle herunterladen, es lohnt sich aber gerade bei Eclipse sich die Software über den integrierten Marketplace zu besorgen, weil man so eine neuere Version von Eclipse erhält.
Einige Verbesserungen von Studio sind der übersichtlichere SQL-Designer und eine bessere Integration von Bibliotheken und Subreports. Neuerdings muss man nur noch auf speichern klicken, und der einmal publizierte Report wandert in aktualisierter Form direkt wieder auf den JasperServer.
Und zum Schluss die wichtigste Verbesserung: Alle Buttons sind jetzt beschriftet und mit Quicktips erklärt!

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Monitoring Plug-Ins selbst gemacht

Es heißt ja immer mit Icinga ließe sich alles überwachen. Prinzipiell ist das auch richtig, aber manchmal gibt es einfach noch nicht das passende Plug-In. Da es aber schon Tausende Plug-Ins auf exchange.icinga.org gibt, kann es ja nicht so schwer sein ein eigenes Plug-In zu schreiben.

Was macht das Stück Code zum Plug-In?

Kürzeste Antwort: Der Exit Code. Jedes Nagios/Icinga/Shinken/Naemon Plug-In hat 4 Exit Codes. Diese Rückgabewerte lassen sich mit “echo $?”, nach dem Ausführen, überprüfen. Sie haben folgende Bedeutung: 0=OK, 1=Warning, 2=Critical, 3=Unknown

schulung_icinga2Was gibt es noch zu beachten?

Plug-Ins können in jeder auf dem jeweiligen System zur Verfügung stehenden Sprache geschrieben werden. Für einfache Fälle und schnelle Hilfe bietet sich Shell-Skripte an. Schöner sind oft aber perl oder python.
Ich möchte heute einmal ein schönes Shell Plugin schreiben. Um das umzusetzen lohnt sich als erstes ein Blick in die Monitoring Plugins Development Guidelines. Dort kann man unter anderem folgende Voraussetzungen für ein Plugin nachlesen.

Params

  • Es muss bei -h oder –help eine Hilfe bereitstellen
  • Es muss bei -v oder –verbose mehr Output liefern
  • Schwellwerte können als range definiert werden.
    “-c 5:  ” bedeutet z.B. alles kritisch, was unter 5 ist. Praktischerweise übernimmt die Interpretation der Ranges eine Funktion aus der utils.sh. Sie ist Bestandteil des Monitoring Plug-In Pakets

Perfdata

Plugins können Performancedaten ausgeben. Mit Hilfe dessen ist es tools wie pnp4nagios, ingraph oder graphite möglich Kurven über die ermittelten Werte zu zeichnen. Performancedaten müssen in folgendem Format vorliegen:
| ‘label’=value[UOM];[warn];[crit];[min];[max]
Also z.B. ‘Drive C’ = 15GB;5;3;0;20 bedeutet folgendes: Drive C hat noch 15GB frei. Bei 3 bzw. 5 GB wird’s kritisch bzw. gewarnt.
Obacht: Es gibt nur bestimmte Maßeinheiten, die hier nachgelesen werden können. Diese sind s(Sekunden), %(Prozent), B (Bytes, auch MB KB usw) und c (counter)

Los geht’s

Nicht lang schnacken sondern losgelegt. Wir schreiben ein Plugin, dass die Files in /tmp zählt. Auf die gleiche Weise lassen sich auch alle anderen Plugins schreiben die auf zählbaren Werten basieren. (more…)

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.