f.zz.de

f.zz.de

icinga2 check scheduler

Posted Fri May 19 12:09:37 2017 Florian Lohoff in

For me icinga2 has been a pain in the ass as of its release. My primary problem with icinga1 was the inflexibility of defining dependeny. A host could not depend on a service which imho is broken. The host connected to a switch depends on the switch, and on the vlan/bridge on the switch. So i would like to construct/define a dependency on the vlan check. Icinga1 could not do this, as does icinga2.

Now - one needs to do the transition on day or the other so i did. The next issue came up. Icinga2 does not include the embedded perl interepreter anymore. This means you'll be fighting against a 10 fold increase in check runtime. The reasoning here is that this could not be made stable. I wonder why Apache is able to this but not the Icinga2 devs. So i rewrote my most performance sensitive checks from Perl to c++.

Lately i am having trouble because on my larger network devices i am seeing flapping interfaces. That means - from time to time (multiple times a day) a bulk of interfaces goes into the "Unknown" state which means my check could not get an SNMP response from the Device.

This came up when i migrated the Icinga2 instance from a virtual machine to bare metal. I could not explain the symptom and started debugging on a firewall which had been installed inbetween the host and the network.

No luck so far.

Today then i had another look because my collectd/influx/grafana host monitoring showed network traffic more like a heart beat. Every hour exporting the configuration was a beat which swung out into an "null line" e.g. an average.

After investigating a bit more i found that reloading the icinga2 config would erradicate the check scheduling queue which caused icinga2 to do a recalculation which made the check scheduling very much spikey in the check_interval interval.

It seems the Icinga2 (in my case 2.6.3) check scheduler does a very bad job in averaging out the check executions over their check_interval.

This is a graph i created using some shell and gnuplot vodoo. The event at 9:36:44 is the config generation issueing an service icinga2 reload which causes icinga2 to not issue/schedule checks for nearly a minute.

Mr Fox

Posted Wed May 17 19:09:17 2017 Florian Lohoff in

Wenn die Kollegen einem auf Amazon einen Foxplug bestellen.

Spass im Büro

Kühe am Morgen

Posted Wed May 3 07:15:07 2017 Florian Lohoff in

Beim Aufwachen in Kuhaugen schauen.

Verschlüsselung erfolgreich

Posted Mon Apr 3 22:56:29 2017 Florian Lohoff in

Netzpolitik veröffentlicht einen Beschluss der Arbeitstagung des Generalbundesanwalts mit den Generalstaatsanwältinnen und Generalstaatsanwälten vom 7. bis 9. November 2016 in Leipzig.

Sehr spannend ist hier das es ein Anerkenntnis der Funktion der Standardmäßigen Verschlüsselung in den Standardapps gibt:

Die technische Entwicklung hat jedoch dazu geführt, dass der für die Sicherheitsbehörden auswertbare Anteil an der Kommunikation rapide abgesunken ist und weiter rasant abnimmt. Die Telekommunikationsüberwachung nach geltendem Recht fällt deshalb als Ermittlungsinstrument weitgehend aus.

Sehr schön - Das Mitschnorcheln am heimischen DSL Anschluss bringt schonmal nichts mehr für den Staat.

Aktuell ist festzustellen, dass nur noch in weniger als 15 % aller Fälle vollständig unverschlüsselte Kommunikation auf Seiten der Beschuldigten durchgeführt wird und damit von den Strafverfolgungsbehörden überwacht werden kann.

15% to go ... Wer von euch macht noch etwas ohne Verschlüsselung? Alles was ich hier mache ist ssh, https, smtps, imaps, stunnel etc ... Und selbst die over-the-tops WhatsApp, Telegram, Signal etc machen alle Verschlüsselung die der Staat scheinbar nicht ohne größeren Aufwand sehen kann.

Ich finde das Ergebniss zutiefst beruhigend. Was machen wir nur mit den 15% gefährdeten?

Fuhre #2

Posted Sat Apr 1 13:53:22 2017 Florian Lohoff in

Serielle, PS2, Busmäuse, 50 Netzwerkkarten. Multiserielladapter.

Und ein weitere Kubikmeter.

Morgen der Erkenntnis

Posted Sat Apr 1 07:41:55 2017 Florian Lohoff in

Brötchen morgens um 5

Posted Sat Apr 1 04:41:55 2017 Florian Lohoff in

Entsorgung

Posted Thu Mar 30 08:33:58 2017 Florian Lohoff in

2 Minuten suchen. 1 Kubikmeter für die Entsorgung.

Simplify your IT

Zerstörung von Festplatten

Posted Wed Mar 29 18:13:06 2017 Florian Lohoff in

Ein Artikel auf Golem zum zerstören von Festplatten hat mich fragend hinterlassen? Warum nicht verschlüsseln und bei Bedarf nur das irgendwo Zentral gelagerte Key Material zerstören?

D.h. ich habe ein off-site system das die Keys der jeweiligen Block Storage Volumes hat und bei Bedarf den Systemen zur Verfügung stellt.

Dieses System muss gestoppt werden, und die Systeme die eine run-time Kopie des key materials halten im Speicher müssen abgeschaltet werden.

D.h. das iLO, iDrac, IPMI muss angewiesen werden das System abzuschalten - Nicht nur resetten - Das löscht den Speicher nicht, sondern abschalten. Wenn dann die Behörden mehrere Minuten brauchen an das System zu kommen helfen auch Kühlverfahren um das DRAM zu retten nicht mehr. Damit wäre ein System geschaffen was eine mehr oder minder beliebige Menge an Systemen, Disk Volumes oder Systemen innerhalb von 60 Sekunden unerreichbar macht.

Schiffsmeldungen

Posted Tue Mar 28 14:40:10 2017 Florian Lohoff in

Weil ich es gerade hier erwähnt habe. Ein schöner Film mit Kevin Spacey im wunderschönen Neufundland.

Vergrab es und erzähl es keinem

Unfalldaten Gütersloh 2016

Posted Tue Mar 28 14:30:07 2017 Florian Lohoff in

Die Unfalldaten für den Kreis Gütersloh für 2016 sind da. Ich habe die ersten beiden Städte extrahiert und als Karte produziert.

Hier sind die Karten für Gütersloh und Rheda-Wiedenbrück.

Mittagspause

Posted Tue Mar 28 13:13:35 2017 Florian Lohoff in

Targeted Ads

Posted Tue Mar 28 08:36:35 2017 Florian Lohoff in

Das ist echt spannend was da so läuft. Vorletzte Woche habe ich einen Tag in der Maschinenbaufirma eines Kumpels verbracht. Mein Telefon war nicht in den WLANs dort eingebucht. Trotzdem bekommen ich jetzt Werbung für Automatisierungstechnik.

Fahrradsaison

Posted Mon Mar 27 18:09:18 2017 Florian Lohoff in

blog.rfc822.org

Posted Mon Mar 27 16:00:30 2017 Florian Lohoff in

So - Nach ein paar Jahren der Konservierung von Altdaten habe ich heute mein altes Blog mal entsorgt - blog.rfc822.org ist mal dann weg.

Programmer Competency

Posted Mon Mar 27 14:14:01 2017 Florian Lohoff in

Eine sehr spannende Matrix um sich selber in seinen Fähigkeiten mal einzuschätzen. Was fehlt mir selber als Softwareentwickler.

Es gibt auch eine Kritik in den Kommentaren die ich teilweise für Berechtigt halte. Bestimmte Bücher zu lesen ist nicht unbedingt ein Qualitätsmerkmal. Und "The mythical man month" ist ja auch nicht unbedingt Softwareentwicklung sondern eher Arbeitsorganisation und Informationsmanagement - Nichts desto trotz eine spannende Lektüre.

Tinyhouse 1

Posted Sun Mar 26 19:22:24 2017 Florian Lohoff in

Henris Tagwerk für heute ... Ein Mobiles Tinyhouse ... Mit Tür und Sitzbank ...

Digitale Archaeologie

Posted Sun Mar 26 09:40:37 2017 Florian Lohoff in

Für die alten mediaWaysler unter euch die noch Schmalbandeinwahl mitgemacht haben. Es gab - ich wollte sagen - gibt immer noch das Neptun Frontent um dinge in den LDAP Einzutragen. Ich habe da noch dinge in meinem Password Safe gefunden und das ist alles scheinbar noch aktiv. Nicht die Schmalbandeinwahl - aber das Frontend.

Stichworte: leonardo, mwdsltest, Toyota, WinShuttle

Geht zurück bis in die frühen 2000er Jahre ... Das Frontend ist zwar komplett obsolete aber das hat in 10 Jahren keiner gemerkt, daher läuft das immer noch.

Digitale Identitäten entsorgen

Posted Sun Mar 26 09:05:04 2017 Florian Lohoff in

Man muss schon aufpassen in welcher Reihenfolge man Accounts in diversen Social Media und Plattformen löscht. Facebook Account ist so mit das letzte was man löschen sollte ist mir dann mal aufgefallen. Da hängen noch 23 dinge dran die man dann nicht mehr los wird. Gut das man den nochmal schnell aktivieren kann. Es sollte jetzt aber so einiges meiner Digitalen Identität weg sein.

Veränderung

Posted Sat Mar 25 21:31:08 2017 Florian Lohoff in

Bye bye SixXS

Posted Thu Mar 23 18:44:44 2017 Florian Lohoff in

Lang lang ist es her das wir uns über SixXS mit IPv6 versorgen mussten. Jetzt da IPv6 überall verfügbar ist hust brauchen wir SixXS nicht mehr.

Dear Florian Lohoff,

TL/DR: SixXS is shutting down on 2017-06-06 (in ~10 weeks).

In 1999, Jeroen and I started SixXS, a project which aimed to provide IPv6 connectivity to users who wanted to learn about the network protocol and gain experience operating IPv6 networks. Our vision was to facilitate migration to IPv6 in content and access providers. [ ... ]

Lektüre zur Nacht

Posted Thu Mar 23 10:32:52 2017 Florian Lohoff in

MISRA C++:2008 Guidelines for the use of the C++ language in critical systems

220 Seiten

WWW::Mechanize

Posted Tue Mar 21 21:04:52 2017 Florian Lohoff in

Nach einer halben Stunde rumhampeln mit LWP::UserAgent, HTTP::Request, HTML::TreeBuilder um die Anmeldeseite von Roundcube auseinanderzudröseln um das Monitoring um die Cross-Site-Scripting protection drumherum hinzubekommen Stolpere ich über WWW::Mechanize .... Nach 11 Zeilen Fertig. Es kann so einfach sein - Noch ein bischen Nagios::Plugin drumherum und fertig ist der Check ...

my $mech=WWW::Mechanize->new();
$mech->get($np->opts->uri);
my $r=$mech->submit_form(
                form_number => 1,
                fields => {
                        _user => $np->opts->username,
                        _pass => $np->opts->password
                }
        );

if ($mech->status() ne 200) {
[ ... ]

git fix - read later

Posted Sun Mar 12 17:23:51 2017 Florian Lohoff in

Nur um es mal zu verlinken - Muss ich mir bei gelegenheit im Detail ansehen und auch mal ausprobieren.

dont amend - fix

Die Antwort auf den Rest

Posted Wed Mar 8 12:51:11 2017 Florian Lohoff in

Das nächste Jahr bin ich dann mal die Antwort nach dem Leben, dem Universum und dem ganzen Rest, und natürlich mit Handtuch.

Cognitive Load

Posted Wed Mar 8 12:42:26 2017 Florian Lohoff in

Sehr spannender und eigentlich offensichtlicher Artikel zur Softwareentwicklung. Der Titel finde ich bringt es aber ganz besonders auf den Punkt.

Wenn Funktionen oder Methoden beim ersten Blick nicht offenbaren was ihr Zweck oder Sinn ist, macht der Softwareentwickler einen Fehler. Die Struktur ist falsch oder die Abstraktion ist zu komplex oder das Problem ist falsch zerlegt.

Writing good code: how to reduce the cognitive load of your code

Random number generator

Posted Tue Mar 7 13:16:14 2017 Florian Lohoff in

Es ist schon spannend wie man sich so die Karten legen kann und das monatelang nicht findet. Ich habe für das Monitoring mit Icinga2 einen interface check in c++ geschrieben der alle möglichen Dinge pollt. D.h. nicht nur die Standard ifAdminStatus oder ifOperStatus sondern auch ifIn/OutPackets, Bytes, Errors, Discards etc. Dann gibt es Schwellwerte die überwacht werden. Zusätzlich polle ich noch die optischen Pegel der SFPs d.h. rxPower, txPower, Current und Temperature.

Das ganze fliesst dann über eine Influxdb in ein Grafana um es sich ansprechend ansehen zu können.

Leider hatte ich seit dem Umzug von einer VM auf richtige Hardware das Problem das immer wieder sporadisch Messwerte fehlten oder auch auch mal kaputt waren d.h. eindeutig falsche Messwerte. Die Fehlermeldungen die ich jedoch sah war "SNMP Timeout" als wenn das Gerät nicht antworten würde.

Also mit tcpdump mal nachgesehen und nein - Es werden alle requests beantwortet. Nach einer Schleife mit der SNMP library snmp++, in der das timeout handling auch noch kaputt war, war ich noch ratloser als vorher.

Bis ich heute mal debug logging eingebaut habe und feststellte das zu dem Zeitpunkt wenn die SNMP Timeouts auftreten alle Requests für das Device eine identische RequestID haben.

Die RequestID wird typischerweise dafür verwendet, das das Target retransmits erkennen kann. D.h. sollte es einen SNMP Request bekommen wird die Antwort erzeugt und diese Antwort zusammen mit der RequestID in einen cache gepackt. Sollte dann ein transmit kommen wird der request mit der Antwort aus dem cache beantwortet um ein paar CPU cycles zu sparen.

Wenn jetzt natürlich unterschiedliche Interfaces und EntitySensors gepollt werden, und alle mit einer identischen RequestID, dann kommen natürlich willkürliche Antworten zurück, je nachdem welcher Request zuerst bearbeitet wurde.

Wenn die Anzahl der Variable bindings aber nicht passt wird jedoch natürlich die Antwort verworfen. Wenn jedoch die Antwort passt d.h. es ist auch Interface oder auch ein EntitySensor werden die Daten durcheinandergewürfelt. TengigabitEthernet0/0/1/0 daten tauchen dann auf TengigabitEthernet0/2/3/2 auf ... Das alles absolut unvorhersagbar und willkürlich.

Des Rätsels Lösung war, das der random number generator initialisiert werden muss. In Wirklichkeit ist das ja nur ein "Pseudo Random Number Generator" PRNG. Dieser erzeugt für ein Seed immer dieselbe Reihe an Zufallszahlen.

Wenn man den Random Number Generator jetzt mit "time(0)" initialisiert, kommt natürlich für alle Prozesse die in derselben Sekunde gestartet werden identische Zufallszahlen bei raus. Es fehlt an Entropie.

Der schnelle fix ist ein

std::srand(std::time(0)^getpid());

gewesen. Der nimmt dann nicht nur die Zeit sondern ein XOR zwischen Zeit und Process ID. Immer noch nicht optimal, aber zumindest fixed es das Problem das zeitgleich gestartete Prozesse identische Zufallszahlen verwenden.

Spass mit protokollen

Posted Wed Feb 15 15:21:39 2017 Florian Lohoff in

Netconf spielereien ... Wir machen es mal zu Fuß - Und die Juniper sind gaaaanz lieb - Keine zombies gekillt ...

<!-- No zombies were killed during the
    creation of this user interface -->
<!-- user flo, class j-super-user -->
<hello xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">

Mein Opa

Posted Sun Feb 12 16:47:19 2017 Florian Lohoff in

Per Zufall wieder in die Hand bekommen. Mein Opa Friedrich Dziock bei seinem Hobby der Fliegerei. Das Bild ist von 1928 und vermutlich beim Luftsportverein Essen aufgenommen.

Bedeutung von Facebook

Posted Sun Feb 5 14:35:10 2017 Florian Lohoff in

... oder warum Facebook für mich nur ein Spielzeug ist und bleibt.

Wenn man nicht der Kunde ist, ist man die Ware - Und so ist das nicht nur bei Facebook, sondern und gerade bei Google. Man sollte sich nicht zu sehr auf diese Dienst verlassen:

National Public Radio - Building, And Losing, A Career On Facebook